Am o problema cu programul urmator, am un modul NodeMcu (ESP8266) conectat la net prin WiFi si cu ajutorul programului Blynk activez prin butonul virual V0 iesirea unui releu in prinul D0. In pinul D4 citesc temperatura cu un senzor DS18B20. As dori ca in momentul in care activez butonul in functie de temperatura sa-mi activeze sau nu releul, la mai mult de 25 degrade sa-l opreasca si sa-l porneasca la mai putin de 24. Totul functioneaza dar serial, adica pot face sa mearga doar in functie de butonul sau doar in functie de temperatura, niciodata dupa ambele conditii. Va rog sa va aruncati o privire poate imi dati o idee. Multumesc anticipat.
@Raileanu_Mihai please edit your post using the pencil icon at the bottom and add triple backticks at the beginning and end of your code so that it displays correctly.
Triple backticks look like this:
```
nu am timp acuma sa analizez codul foarte detailat, dar cred ca e problema cu urmatoarele chestii:
incearca click dreapta / auto format in arduino ide, face lucruri mirifice
nu folosi delay in main loop, ca delayul blocheaza comunicarea cu serveru blynk
folosi blynk timer in loc de delay
in cod ai declarat global double temp, dar nici unde in cod nu ai asignat o valoare, deci el ramane permanent null. in functia sendtemps tu lucrezi cu un variabil local, dar in blynk write lucrezi cu cel global
care va opri releul cand e apasat butonul, indiferent de temperatura…
deci sunt multe buguri, dar astia nu prea au legatura cu blynk, ci cu cunostintele si strategia de programare. incearca sa merg pas cu pas, rand cu rand si sa-l intelegi exact ce se intampla in cod.
Pin D16 on the NodeMCU is GPIO0.
That’s probably not the best choice pf pins, as it can cause the NodeMCU to boot into programming mode if it’s pulled LOW on startup. More info here, courtesy of froned @wanek
Other than that, and the fact that your hysteresis might be a bit on the wide side, the code looks much better.
vad ca ai folosit auto format. e mult mai aranjat. pt un cod si mai structurat, iti recomand sa le grupezi lucrurile similare, de exemplu incepi cu toate defineurile, lasi un rand liber, toate includurile, rand liber, toate declaratiile de variabile, rand liber, obejcturile, etc.
si in functii poti lasa cate un rand liber dupa un if, for sau alte subcategorii. nu costa nimic, si face codul mai “aerisit”, mai usor de citit.