Supla::ESPWifi wifi w setup

jack7
Posts: 2
Joined: Wed Oct 25, 2023 9:15 am

Post

Witam

czy jest możliwość skonfigurowania sieci nie globalnie ale w setup? Potrzebuje ze swoich zmiennych podać parametry sieci.

Code: Select all

#include <SuplaDevice.h>
#include <supla/network/esp_wifi.h>
#include <supla/control/relay.h>
#include <supla/network/esp_web_server.h>
#include <supla/network/esp_wifi.h>

#define RELAY_GPIO 12


char GUID[SUPLA_GUID_SIZE] = { 0x6E,0xAD,0xC6,0x7F,0x16,0xF2,0xE7,0x33,0xFC,0x2A,0xC6,0x019,0xFD,0xE6,0xE59,0x03 };
char AUTHKEY[SUPLA_AUTHKEY_SIZE] = {0x4C,0xEB,0xDA,0x82,0x55,0xE3,0x15,0xCD,0x10,0x8C,0xFB,0xDE,0x15,0x87,0xB4,0xAE};

//tu dziala
//Supla::ESPWifi wifi("your_wifi_ssid", "your_wifi_password");


void setup() {
//tu nie dziala :(
Supla::ESPWifi wifi("your_wifi_ssid", "your_wifi_password");

 Serial.begin(115200);
 auto r1 = new Supla::Control::Relay(RELAY_GPIO);
 char Supla_server[30], Supla_mail[30];
 strcpy(Supla_server, "svr16.supla.org");
 strcpy(Supla_mail, "mail@poczta.onet.pl");
   
 SuplaDevice.begin(GUID,              
                  Supla_server,  
                  Supla_mail,                
                  AUTHKEY);
                  
}

void loop() {
  SuplaDevice.iterate();
}


Taki błąd jest nawet jak ręcznie połącze WIFI w setup() przez:
WiFi.mode(WIFI_STA);
WiFi.begin("ssid","pass");

Code: Select all

Main storage not configured
Config storage not configured
Relay[0] turn OFF (duration 0 ms)
 **** Digital write[0], gpio: 12; value 0
Relay[0] turn OFF (duration 0 ms)
 **** Digital write[0], gpio: 12; value 0
GUID: 6EADC67F16F2E733FC2AC619FDE65903
Device name: SUPLA-ESP8266
Device software version: SDK 23.10.01-dev
Initializing network layer
Network AP/hostname: SUPLA-ESP8266-BCDDC23121FF
Using Supla protocol version 20
Current status: [5] SuplaDevice initialized
Enter normal mode
Warning: network is not ready (10 s)
Current status: [8] No connection to network
Warning: network is not ready (20 s)
Warning: network is not ready (30 s)
User avatar
lukfud
Posts: 2117
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa

Post

jack7 wrote: Wed Oct 25, 2023 3:42 pm czy jest możliwość skonfigurowania sieci nie globalnie ale w setup? Potrzebuje ze swoich zmiennych podać parametry sieci.

Code: Select all

Supla::ESPWifi *wifi_ = nullptr;

setup() {
  wifi_ = new Supla::ESPWifi;
  wifi_->setSsid("ssid");
  wifi_->setPassword("pass");
  (...)
  SuplaDevice.begin(...);
}
https://www.facebook.com/groups/supladiy/
jack7
Posts: 2
Joined: Wed Oct 25, 2023 9:15 am

Post

Dzięki o to chodziło :)
rafalekkalwak@wp.pl
Posts: 524
Joined: Mon Feb 06, 2023 8:56 am

Post

Mam inne pytanie: w którym momencie następuję faktyczne połączenie z wifi?
Bo to że jest obiekt utworzony to widzę, potrzebuję coś zrobić po połączeniu, jak dodaje mój kod po inicjalizacji SuplaDevice.begin w setup() to nie działa, w logach też widzę, że jeszcze wtedy się nie połączył, czyżby dopiero na pierwszym przejściu przez loop i SuplaDevice.iterate()?
User avatar
lukfud
Posts: 2117
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa

Post

rafalekkalwak@wp.pl wrote: Wed Oct 25, 2023 5:43 pm Mam inne pytanie: w którym momencie następuję faktyczne połączenie z wifi?
Bo to że jest obiekt utworzony to widzę, potrzebuję coś zrobić po połączeniu, jak dodaje mój kod po inicjalizacji SuplaDevice.begin w setup() to nie działa, w logach też widzę, że jeszcze wtedy się nie połączył, czyżby dopiero na pierwszym przejściu przez loop i SuplaDevice.iterate()?
Dokładnie, połączenie następuje w iterate()
https://www.facebook.com/groups/supladiy/
User avatar
klew
Posts: 8763
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław

Post

Połączeniem zarządza klasa SuplaDevice i dzieje się to gdzieś w "iterate".
Co dokładnie chcesz zrobić?
Widzimy się na Supla Offline Party vol. 2 :!:
rafalekkalwak@wp.pl
Posts: 524
Joined: Mon Feb 06, 2023 8:56 am

Post

klew wrote: Thu Oct 26, 2023 9:13 am Połączeniem zarządza klasa SuplaDevice i dzieje się to gdzieś w "iterate".
Co dokładnie chcesz zrobić?
Wysłać dane do Azure IoTHub'a po tym jak wyśle do Supli.
Już zrobiłem ale nie podoba mi się to co zrobiłem ... Od czegoś ten setup() w końcu jest, a problem jest taki, że muszę zsynchronizować czas zanim zainicjuje połączenie z MQTT i to co Supla robi nie jest z jakiegoś powodu wystarczające - https://github.com/Azure/azure-sdk-for- ... 0C4-L120C4 bez tej funkcji ani rusz.
User avatar
klew
Posts: 8763
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław

Post

rafalekkalwak@wp.pl wrote: Thu Oct 26, 2023 9:32 am
klew wrote: Thu Oct 26, 2023 9:13 am Połączeniem zarządza klasa SuplaDevice i dzieje się to gdzieś w "iterate".
Co dokładnie chcesz zrobić?
Wysłać dane do Azure IoTHub'a po tym jak wyśle do Supli.
Już zrobiłem ale nie podoba mi się to co zrobiłem ... Od czegoś ten setup() w końcu jest, a problem jest taki, że muszę zsynchronizować czas zanim zainicjuje połączenie z MQTT i to co Supla robi nie jest z jakiegoś powodu wystarczające - https://github.com/Azure/azure-sdk-for- ... 0C4-L120C4 bez tej funkcji ani rusz.
Problem jest taki, że "SuplaDevice" to nie biblioteka w sensie stricte, tylko cała maszyna do zarządzania ESP. Tam jest obsługa przechodzenia w tryb konfiguracyjny itp, więc bierze na siebie pełne zarządzanie siecią Wi-Fi.

Jeden pomysł jest taki, że w loop() wstawiasz jakiegoś ifa czekającego aż będzie nawiązane połączenie z Wi-Fi i wtedy odpalasz swój kod. Oczywiście trzeba by tam dać jakąś flagę, aby tylko raz po połączeniu w to wchodziło.
Widzimy się na Supla Offline Party vol. 2 :!:
rafalekkalwak@wp.pl
Posts: 524
Joined: Mon Feb 06, 2023 8:56 am

Post

klew wrote: Thu Oct 26, 2023 9:46 am
rafalekkalwak@wp.pl wrote: Thu Oct 26, 2023 9:32 am
klew wrote: Thu Oct 26, 2023 9:13 am Połączeniem zarządza klasa SuplaDevice i dzieje się to gdzieś w "iterate".
Co dokładnie chcesz zrobić?
Wysłać dane do Azure IoTHub'a po tym jak wyśle do Supli.
Już zrobiłem ale nie podoba mi się to co zrobiłem ... Od czegoś ten setup() w końcu jest, a problem jest taki, że muszę zsynchronizować czas zanim zainicjuje połączenie z MQTT i to co Supla robi nie jest z jakiegoś powodu wystarczające - https://github.com/Azure/azure-sdk-for- ... 0C4-L120C4 bez tej funkcji ani rusz.
Problem jest taki, że "SuplaDevice" to nie biblioteka w sensie stricte, tylko cała maszyna do zarządzania ESP. Tam jest obsługa przechodzenia w tryb konfiguracyjny itp, więc bierze na siebie pełne zarządzanie siecią Wi-Fi.

Jeden pomysł jest taki, że w loop() wstawiasz jakiegoś ifa czekającego aż będzie nawiązane połączenie z Wi-Fi i wtedy odpalasz swój kod. Oczywiście trzeba by tam dać jakąś flagę, aby tylko raz po połączeniu w to wchodziło.
Tak to właśnie zrobiłem, i dlatego mówię, że mi się to nie podoba :P
User avatar
klew
Posts: 8763
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław

Post

rafalekkalwak@wp.pl wrote: Thu Oct 26, 2023 9:53 am Tak to właśnie zrobiłem, i dlatego mówię, że mi się to nie podoba :P
Jeśli działa, to nie ma co rozpaczać :P
Widzimy się na Supla Offline Party vol. 2 :!:

Return to “Arduino IDE”