No właśnie używam tego samego portu USB na tej płytce, używam serial monitora z Arduino, zawsze wszystko chodziło, a tutaj taka niespodzianka. Po skanowaniu bluetooth wrzucam do seriala dane o odczytanych czujnikach i wartości w ten sam sposób jak to zrobił kolega @Duch__klew wrote: Tue Feb 14, 2023 8:30 pmPodgląd seriala jest na tych samych pinach, co wgrywanie danych, także powinno działać.veeroos wrote: Tue Feb 14, 2023 8:23 pm Ale chciałbym podglądać logi z działania urządzenia, a nic nie widzę, może trzeba jakoś inaczej skonfigurować interfejs, albo na innych pinach czytać?
Czego używasz do podglądu? Spróbuj różnych programów do tego (u mnie w sumie serial monitor z Arduino IDE działa prawie zawsze, putty też się dobrze sprawdza).
Jak nie będzie nadal działać, to wrzuć tam prawie pusty program w Arduino i dodaj tylko logowanie (np. "jesteś super" co 1 s).
XIAOMI LYWSD03MMC - odczyt przez ESP32
-
veeroos
- Posts: 1081
- Joined: Sun Mar 20, 2022 9:30 am
- Location: Głogów
- Has thanked: 1 time
- Been thanked: 9 times
Zamel Mew-01, Zamel PEW-01, Zamel SBW-01, Zamel THW-01, Zamel SRW-01, Zamel mSLW-02, Auraton BOX + Indor Sensor, Airly Gate By Veeroos, Zigbee to Supla Gateway + sensors, Zamel SGW-01 and more
https://github.com/v33r005
https://github.com/v33r005
-
kurus
- Posts: 1312
- Joined: Wed Jan 15, 2020 8:17 pm
Myślałem że jestem w miarę zaawansowanych użytkownikiem supli, cały dom osuplowałem na różnych modułach od gotowcow zamela po sonoffy gosundy, shelly, loratap, wemosy i inne nodem mcu gdzie trzeba lutowac, wgrywać softy łączyć czujniki przekaźniki itp, i jak czytam taki temat to stwierdzam ze ja mocno początkujący jestem

-
veeroos
- Posts: 1081
- Joined: Sun Mar 20, 2022 9:30 am
- Location: Głogów
- Has thanked: 1 time
- Been thanked: 9 times
Ja tam w ogóle nie jestem zaawansowanykurus wrote: Wed Feb 15, 2023 8:33 am Myślałem że jestem w miarę zaawansowanych użytkownikiem supli, cały dom osuplowałem na różnych modułach od gotowcow zamela po sonoffy gosundy, shelly, loratap, wemosy i inne nodem mcu gdzie trzeba lutowac, wgrywać softy łączyć czujniki przekaźniki itp, i jak czytam taki temat to stwierdzam ze ja mocno początkujący jestem![]()
![]()
Zamel Mew-01, Zamel PEW-01, Zamel SBW-01, Zamel THW-01, Zamel SRW-01, Zamel mSLW-02, Auraton BOX + Indor Sensor, Airly Gate By Veeroos, Zigbee to Supla Gateway + sensors, Zamel SGW-01 and more
https://github.com/v33r005
https://github.com/v33r005
-
veeroos
- Posts: 1081
- Joined: Sun Mar 20, 2022 9:30 am
- Location: Głogów
- Has thanked: 1 time
- Been thanked: 9 times
Dlatego iż program powstał na szybko może posiadać błędy, wiem, że wysyłanie danych można załatwić jedną klasą, ale tak jak pisałem na szybko wszystko pisałem tak aby sprawdzić funkcjonalność urządzenia.
Urządzenie chodzi od wczoraj, jak zerwie połączenie z serwerem to łączy się ponownie od razu. Brakuje w kodzie jeszcze deklaracji jak parę razy nie znajdzie urządzenia to żeby wykasowało dane z serwera, ale to kosmetyka tylko.
Code: Select all
/*
Copyright (C) AC SOFTWARE SP. Z O.O.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#define STATUS_LED_GPIO 2
#define BUTTON_CFG_RELAY_GPIO 0
#include <sstream>
#include <BLEDevice.h>
#include <BLEScan.h>
#include <BLEAdvertisedDevice.h>
#include <SuplaDevice.h>
#include <supla/network/esp_wifi.h>
#include <supla/control/button.h>
#include <supla/control/action_trigger.h>
#include <supla/device/status_led.h>
#include <supla/storage/littlefs_config.h>
#include <supla/network/esp_web_server.h>
#include <supla/network/html/device_info.h>
#include <supla/network/html/protocol_parameters.h>
#include <supla/network/html/status_led_parameters.h>
#include <supla/network/html/wifi_parameters.h>
#include <supla/device/supla_ca_cert.h>
#include <supla/sensor/therm_hygro_meter.h>
#define SCAN_TIME 8 // 8 sekund wykrywa urządzenia
int urzadzenie1 = 0;
int urzadzenie2 = 0;
int urzadzenie3 = 0;
int wilg1 = 0;
float temp1 = -275;
int wilg2 = 0;
float temp2 = -275;
int wilg3 = 0;
float temp3 = -275;
int bat1;
int bat2;
int bat3;
unsigned long czas_pomiedzy_skanowaniem;
unsigned long wifimilis;
boolean METRIC = true; //Set true for metric system; false for imperial
String text01;
String text02;
String text03;
String text04;
String text05;
String text06;
String text07;
String text08;
String text09;
String text10;
String text11;
String text12;
String text13;
String text14;
String text15;
String zmienna;
String MAC_ADR;
byte BLE_DEVICE;
bool wyswietl = 0;
//================================Tutaj deklarujemy adresy MAC naszych czujników=================
#define XIAOMI_BLE_DEVICE_1_MAC "A4:C1:38:0D:AE:08"
#define XIAOMI_BLE_DEVICE_2_MAC "A4:C1:38:10:3D:44"
#define XIAOMI_BLE_DEVICE_3_MAC "A4:C1:38:43:6A:FE"
//===============================================================================================
#include <supla/storage/eeprom.h>
Supla::Eeprom eeprom;
Supla::ESPWifi wifi;
Supla::LittleFsConfig configSupla;
Supla::Device::StatusLed statusLed(STATUS_LED_GPIO, true); // inverted state
Supla::EspWebServer suplaServer;
Supla::Html::DeviceInfo htmlDeviceInfo(&SuplaDevice);
Supla::Html::WifiParameters htmlWifi;
Supla::Html::ProtocolParameters htmlProto;
Supla::Html::StatusLedParameters htmlStatusLed;
int current_humidity;
int current_batt;
word val;
BLEScan *pBLEScan;
void IRAM_ATTR resetModule(){
ets_printf("reboot\n");
esp_restart();
}
float current_temperature;
class MyAdvertisedDeviceCallbacks : public BLEAdvertisedDeviceCallbacks {
void onResult(BLEAdvertisedDevice advertisedDevice)
{
if (advertisedDevice.haveName() && advertisedDevice.haveServiceData() /*&& !advertisedDevice.getName().compare("ATC_9C1E8B")*/) {
int serviceDataCount = advertisedDevice.getServiceDataCount();
std::string strServiceData = advertisedDevice.getServiceData(0);
uint8_t cServiceData[100];
char charServiceData[100];
strServiceData.copy((char *)cServiceData, strServiceData.length(), 0);
for (int i=0;i<strServiceData.length();i++) {
sprintf(&charServiceData[i*2], "%02x", cServiceData[i]);
}
std::stringstream ss;
ss << "fe95" << charServiceData;
text01 = String(charServiceData[0]) + String(charServiceData[1]); //Serial.print(text1); Serial.print(" ");
text02 = String(charServiceData[2]) + String(charServiceData[3]); //Serial.print(text2); Serial.print(" ");
text03 = String(charServiceData[4]) + String(charServiceData[5]); //Serial.print(text3); Serial.print(" ");
text04 = String(charServiceData[6]) + String(charServiceData[7]); //Serial.print(text4); Serial.print(" ");
text05 = String(charServiceData[8]) + String(charServiceData[9]); //Serial.print(text5); Serial.print(" ");
text06 = String(charServiceData[10]) + String(charServiceData[11]); //Serial.print(text6); Serial.print(" ");
text07 = String(charServiceData[12]) + String(charServiceData[13]); //Serial.print(text7); Serial.print(" ");
text08 = String(charServiceData[14]) + String(charServiceData[15]); //Serial.print(text8); Serial.print(" ");
text09 = String(charServiceData[16]) + String(charServiceData[17]); //Serial.print(text9); Serial.print(" ");
text10 = String(charServiceData[18]) + String(charServiceData[19]); //Serial.print(text10); Serial.print(" ");
text11 = String(charServiceData[20]) + String(charServiceData[21]); //Serial.print(text11); Serial.print(" ");
text12 = String(charServiceData[22]) + String(charServiceData[23]); //Serial.print(text12); Serial.print(" ");
//Serial.println();
zmienna = text01; Zamien_litery(); text01 = zmienna;
zmienna = text02; Zamien_litery(); text02 = zmienna;
zmienna = text03; Zamien_litery(); text03 = zmienna;
zmienna = text04; Zamien_litery(); text04 = zmienna;
zmienna = text05; Zamien_litery(); text05 = zmienna;
zmienna = text06; Zamien_litery(); text06 = zmienna;
zmienna = text07; Zamien_litery(); text07 = zmienna;
zmienna = text08; Zamien_litery(); text08 = zmienna;
zmienna = text09; Zamien_litery(); text09 = zmienna;
zmienna = text10; Zamien_litery(); text10 = zmienna;
zmienna = text11; Zamien_litery(); text11 = zmienna;
zmienna = text12; Zamien_litery(); text12 = zmienna;
zmienna = text13; Zamien_litery(); text13 = zmienna;
zmienna = text14; Zamien_litery(); text14 = zmienna;
zmienna = text15; Zamien_litery(); text15 = zmienna;
Konwersja();
}
}
};
class Czujnik1 : public Supla::Sensor::ThermHygroMeter {
public:
explicit Czujnik1()
{
}
double getTemp() {
temperature = temp1;
return temperature;
}
double getHumi() {
humidity = wilg1;
return humidity;
}
private:
void iterateAlways() {
if (millis() - lastReadTime > 10000) {
lastReadTime = millis();
channel.setNewValue(getTemp(), getHumi());
}
}
void onInit() {
channel.setNewValue(getTemp(), getHumi());
}
protected:
double temperature;
double humidity;
};
class Czujnik2 : public Supla::Sensor::ThermHygroMeter {
public:
explicit Czujnik2()
{
}
double getTemp() {
temperature = temp2;
return temperature;
}
double getHumi() {
humidity = wilg2;
return humidity;
}
private:
void iterateAlways() {
if (millis() - lastReadTime > 10000) {
lastReadTime = millis();
channel.setNewValue(getTemp(), getHumi());
}
}
void onInit() {
channel.setNewValue(getTemp(), getHumi());
}
protected:
double temperature;
double humidity;
};
class Czujnik3 : public Supla::Sensor::ThermHygroMeter {
public:
explicit Czujnik3()
{
}
double getTemp() {
temperature = temp3;
return temperature;
}
double getHumi() {
humidity = wilg3;
return humidity;
}
private:
void iterateAlways() {
if (millis() - lastReadTime > 10000) {
lastReadTime = millis();
channel.setNewValue(getTemp(), getHumi());
}
}
void onInit() {
channel.setNewValue(getTemp(), getHumi());
}
protected:
double temperature;
double humidity;
};
/*
class Bateria : public Supla::Sensor::Thermometer {
public:
Bateria(int bateria) {
battery = bateria;
}
void onInit() {
channel.setNewValue(getValue() );
}
double getValue()
{
return battery;
}
void iterateAlways() {
channel.setNewValue(getValue());
}
protected:
int battery;
};
*/
void setup() {
Serial.begin(115200);
initBluetooth();
auto buttonCfgRelay = new Supla::Control::Button(BUTTON_CFG_RELAY_GPIO, true, true);
buttonCfgRelay->configureAsConfigButton(&SuplaDevice);
new Czujnik1();
new Czujnik2();
new Czujnik3();
//new Bateria(bat1);
//new Bateria(bat2);
//new Bateria(bat3);
SuplaDevice.setSuplaCACert(suplaCACert);
SuplaDevice.setSupla3rdPartyCACert(supla3rdCACert);
SuplaDevice.begin();
}
void loop() {
if (millis() - czas_pomiedzy_skanowaniem > 120000) { // co 2 minuty skanowanie sieci
czas_pomiedzy_skanowaniem = millis();
BLEScan* pBLEScan = BLEDevice::getScan(); //create new scan
pBLEScan->setAdvertisedDeviceCallbacks(new MyAdvertisedDeviceCallbacks());
pBLEScan->setActiveScan(true); //active scan uses more power, but get results faster
BLEScanResults foundDevices = pBLEScan->start(SCAN_TIME);
int count = foundDevices.getCount();
}
SuplaDevice.iterate();
if (WiFi.status() != WL_CONNECTED) {
if (millis() > wifimilis) {
WiFi.begin();
wifimilis = (millis() + 20000) ;
}
}
}
void initBluetooth()
{
BLEDevice::init("");
pBLEScan = BLEDevice::getScan(); //create new scan
pBLEScan->setAdvertisedDeviceCallbacks(new MyAdvertisedDeviceCallbacks());
pBLEScan->setActiveScan(false); //active scan uses more power, but get results faster
pBLEScan->setInterval(0x50);
pBLEScan->setWindow(0x30);
}
void Konwersja()
{
int number;
String hexstring;
int t1;
int t2;
hexstring = "#" + text07;
number = (int) strtol( &hexstring[1], NULL, 16);
t1 = number & 0xFF;
hexstring = "#" + text08;
number = (int) strtol( &hexstring[1], NULL, 16);
t2 = number & 0xFF;
current_temperature = t1 * 256;
current_temperature = current_temperature + t2;
current_temperature = current_temperature / 10;
// Konwersja z Faranheitów na Celsjusze
hexstring = "#" + text09;
number = (int) strtol( &hexstring[1], NULL, 16);
current_humidity = number & 0xFF;
hexstring = "#" + text10;
number = (int) strtol( &hexstring[1], NULL, 16);
current_batt = number & 0xFF;
MAC_ADR = "";
MAC_ADR = MAC_ADR + text01 + ":";
MAC_ADR = MAC_ADR + text02 + ":";
MAC_ADR = MAC_ADR + text03 + ":";
MAC_ADR = MAC_ADR + text04 + ":";
MAC_ADR = MAC_ADR + text05 + ":";
MAC_ADR = MAC_ADR + text06;
BLE_DEVICE = 0;
if(MAC_ADR == XIAOMI_BLE_DEVICE_1_MAC){BLE_DEVICE = 1; wyswietl = 1; Wyswietl();}
if(MAC_ADR == XIAOMI_BLE_DEVICE_2_MAC){BLE_DEVICE = 2; wyswietl = 1; Wyswietl();}
if(MAC_ADR == XIAOMI_BLE_DEVICE_3_MAC){BLE_DEVICE = 3; wyswietl = 1; Wyswietl();}
}
void Wyswietl(){
if(wyswietl == 1){
Serial.print("Urządzenie:");
Serial.print(BLE_DEVICE);
Serial.print(" MAC: ");
Serial.print(MAC_ADR);
Serial.print(" Temp: ");
Serial.print(current_temperature,1);
Serial.print("stC. Wilgotnosc: ");
Serial.print(current_humidity);
Serial.print("%. Bateria: ");
Serial.print(current_batt);
Serial.println("%.");
if (BLE_DEVICE == 1) {
temp1 = (current_temperature);
wilg1 = current_humidity;
bat1 = current_batt;
}
if (BLE_DEVICE == 2) {
temp2 = (current_temperature);
wilg2 = current_humidity;
bat2 = current_batt;
}
if (BLE_DEVICE == 3) {
temp3 = (current_temperature);
wilg3 = (current_humidity);
bat3 = (current_batt);
}
wyswietl = 0;
}
}
void Zamien_litery() //Zamieniamy otrzymywane małe litery na duże
{
zmienna.replace('a', 'A');
zmienna.replace('b', 'B');
zmienna.replace('c', 'C');
zmienna.replace('d', 'D');
zmienna.replace('e', 'E');
zmienna.replace('f', 'F');
}Zamel Mew-01, Zamel PEW-01, Zamel SBW-01, Zamel THW-01, Zamel SRW-01, Zamel mSLW-02, Auraton BOX + Indor Sensor, Airly Gate By Veeroos, Zigbee to Supla Gateway + sensors, Zamel SGW-01 and more
https://github.com/v33r005
https://github.com/v33r005
-
martinok
- Posts: 126
- Joined: Sat Dec 17, 2016 10:12 am
- Location: Poznań
Wgrałem i dostaje takie coś co może być przyczyną?
Code: Select all
Establishing encrypted connection with: svr3.supla.org (port: 2016)
SSL error: -9984, X509 - Certificate verification failed, e.g. CRL, CA or signature check failed
Connection fail (0). Server: svr3.supla.org
Establishing encrypted connection with: svr3.supla.org (port: 2016)
"Wiedza bez Praktyki jest Bezużyteczna , praktyka bez wiedzy Niebezpieczna"...
-
klew
- Posts: 13905
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 134 times
- Been thanked: 137 times
Wygląda jakby nie przechodziła weryfikacja certyfikatu serwera. Możesz spróbować w cfg mode wyłączyć weryfikację.martinok wrote: Wed Feb 15, 2023 8:32 pm Wgrałem i dostaje takie coś co może być przyczyną?Code: Select all
Establishing encrypted connection with: svr3.supla.org (port: 2016) SSL error: -9984, X509 - Certificate verification failed, e.g. CRL, CA or signature check failed Connection fail (0). Server: svr3.supla.org Establishing encrypted connection with: svr3.supla.org (port: 2016)
Najlepsze suple dla Twojego domu 
-
veeroos
- Posts: 1081
- Joined: Sun Mar 20, 2022 9:30 am
- Location: Głogów
- Has thanked: 1 time
- Been thanked: 9 times
U mnie od wtorku chodzi, na początku jak robiłem pierwsze testy z esp32 dev V1 też miałem problem tyle że mi wywalało się po chwili dopiero, też był błąd certyfikatów, ale zauważyłem też że nie mam połączenia z Wi-Fi, dopiero na ESP32 S3 dev module kupionym na szybko na Allegro, bo nie chciało mi się czekać na przesyłkę z Chin pracuje to w miarę dobrze
You do not have the required permissions to view the files attached to this post.
Zamel Mew-01, Zamel PEW-01, Zamel SBW-01, Zamel THW-01, Zamel SRW-01, Zamel mSLW-02, Auraton BOX + Indor Sensor, Airly Gate By Veeroos, Zigbee to Supla Gateway + sensors, Zamel SGW-01 and more
https://github.com/v33r005
https://github.com/v33r005
-
martinok
- Posts: 126
- Joined: Sat Dec 17, 2016 10:12 am
- Location: Poznań
Niestety to samoklew wrote: Wed Feb 15, 2023 9:20 pmWygląda jakby nie przechodziła weryfikacja certyfikatu serwera. Możesz spróbować w cfg mode wyłączyć weryfikację.martinok wrote: Wed Feb 15, 2023 8:32 pm Wgrałem i dostaje takie coś co może być przyczyną?Code: Select all
Establishing encrypted connection with: svr3.supla.org (port: 2016) SSL error: -9984, X509 - Certificate verification failed, e.g. CRL, CA or signature check failed Connection fail (0). Server: svr3.supla.org Establishing encrypted connection with: svr3.supla.org (port: 2016)
"Wiedza bez Praktyki jest Bezużyteczna , praktyka bez wiedzy Niebezpieczna"...
-
klew
- Posts: 13905
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 134 times
- Been thanked: 137 times
Jeśli wyłączyłeś walidację certyfikatów, to nie powinno być to samo.
Pokaż proszę zrzut ekranu z trybu konfiguracyjnego urządzenia oraz kompletne logi od startu urządzenia. Możesz do mnie w wiadomości prywatnej wysłać.
Najlepsze suple dla Twojego domu 
-
veeroos
- Posts: 1081
- Joined: Sun Mar 20, 2022 9:30 am
- Location: Głogów
- Has thanked: 1 time
- Been thanked: 9 times
Kurcze bo już zgłupiałem i wgrałem program do takiego wynalazku, bo tylko taki esp32 mam tylko dzisiaj w pracy jest to zwykły esp32, nie mam czujników w pracy więc nie sprawdzę czy odczytuje je
Wgrałem program i wszystko chodzi poprawnie, dodałem moduł w aplikacji i odczyt jest...
Zobacz może jak masz ustawiony schemat partycji w arduino, może coś z tym jest problem, ja mam tak dla zwykłego esp32 bo on ma 4Mb pamięci Znaczy się wybrana jest ta opcja z "ptaszkiem" czyli Minimal SPIFFS
A Ty do jakiego modelu wgrywasz?
Aktualizacja: po 15 minutach wywaliło się połączenie, czyli jest tak jak w moich pierwszych testach ESP 32 zwykły nie nadaje się na taką bramkę, oczywiście mam te same błędy od certyfikatów jak kolega, ale są przeplatane z informacjami o braku połączenia z siecią wifi. Bramka na ESP32 S3 działa od wtorku. W aplikacji widać że zrywa połączenie. Ale chodzi...
Zobacz może jak masz ustawiony schemat partycji w arduino, może coś z tym jest problem, ja mam tak dla zwykłego esp32 bo on ma 4Mb pamięci Znaczy się wybrana jest ta opcja z "ptaszkiem" czyli Minimal SPIFFS
A Ty do jakiego modelu wgrywasz?
Aktualizacja: po 15 minutach wywaliło się połączenie, czyli jest tak jak w moich pierwszych testach ESP 32 zwykły nie nadaje się na taką bramkę, oczywiście mam te same błędy od certyfikatów jak kolega, ale są przeplatane z informacjami o braku połączenia z siecią wifi. Bramka na ESP32 S3 działa od wtorku. W aplikacji widać że zrywa połączenie. Ale chodzi...
You do not have the required permissions to view the files attached to this post.
Zamel Mew-01, Zamel PEW-01, Zamel SBW-01, Zamel THW-01, Zamel SRW-01, Zamel mSLW-02, Auraton BOX + Indor Sensor, Airly Gate By Veeroos, Zigbee to Supla Gateway + sensors, Zamel SGW-01 and more
https://github.com/v33r005
https://github.com/v33r005
