Salve a tutti
Era da un po' che non passavo da qui, volevo esporvi l'ennesimo quesito piu' grande di me
Come ho già raccontato in un altro thread, ho un esp32 dev kit che controlla una batteria di un piccolo impianto fotovoltaico e ne trasmette i dati su app IOT di Arduino,
ma ho letto tanto online ma non ho capito se esp32 dev kit può collegarsi in wifi sia al cloud che al esp32 dev module
Quindi:
esp32 dev kit (MASTER)
esp32 dev kit (CLOUD)
esp32 dev module (SLAVE)
quel esp con display è un ESP32 come "ESP32 dev kit", perchè usare 2 esp e non fare tutto con solo questo con display?
se anche i vari ESP32 ti colleghi alla rete wifi di casa, puoi comunicare tra gli esp32 tramite rete wifi, ad esempio usando UDP.
Sinceramente non ho capito cosa fa il terzo, "esp32 dev module"
Scusa ma non vado a cercarmi i tuoi vecchi thread per capire come e cosa fanno i tuoi vari esp32. In questo thread spieghi solo cosa fa "esp32 dev kit"
Innanzitutto grazie per la tua risposta.
Cerco di spiegarmi meglio;
I device sono solo 2, il dev kit montato lontano sotto i pannelli solari e il secondo il dev module (quello nuovo) lo vorrei installare in casa.
Quindi il dev kit è collegato al router che adesso trasmette all'appIOT, quindi vorrei trasmettere i dati anche al dev module.
Ora mi documento sul UDP
Dopo qualche giorno di test mi sono accorto che c'è un problema, praticamente dopo 1h circa il display e come se si "blocchi", si azzera la cifra e non si ripristina più se non con un rst.
il loop sono sicuro che funzioni perchè ogni 300 millis lampeggia un led e un altro led che ho dedicato alla ricezione dei dati che smette di flippare.
Non so più che pesci pigliare
void loop()
{
lv_task_handler(); // let the GUI do its work
lv_tick_inc(5); // tell LVGL how much time has passed
delay(5); //let this time pass
int packetSize = udp.parsePacket();
if(packetSize)
{
int len = udp.read(packetBuffer, 8);
if(len > 0) packetBuffer[len] = 0;
value_volt = atof(packetBuffer);
state_pack = !state_pack;
udp.endPacket();
}
digitalWrite(ledRed, state_pack);
unsigned long t0 = millis() - t1;
if(t0 >= 300)
{
digitalWrite(ledBlu, state)
state = !state;
t1 = millis();
}
.........
Aggiungo solo che sono sicuro che esp client funzioni perchè quando sul display faccio il rst inizia di nuovo a leggere i dati inviati
Effittivamente nell'esempio trovato in rete ho visto che c'era e l'ho lasciato, ma non credo che il problema sia quello perchè per più di un ora il display legge e non si azzera
praticamente quando visualizza 00.00V ho riscontrato che stampando sia remotePort e remoteIP, i numeri non corrispondono piu'!!!
La porta è settata con unsigned long a 9999 e l'IP è impostato dinamico 192.168.1.108 ma quando va a zero si legge la porta 50040 e l'IP 182.168.1.103 e questi valori cambiano a ogni azzeramento.
Il router e un Tplink.
buon pomeriggio
Per non aprire un nuovo trhead chiedo qui
Ok sono riuscito a farlo funzionare anche se ho usato
ESP.restart();
Ora ho un altro dei miei problemini; sto cercando di inviare due dati tramite udp ma qualcosa non torna perchè uno dei dati li contiene tutti e due, allego scketh