Il 04/01/2022 14:59, Franco Af ha scritto:
molto meglio, a professionisti come voi potrebbe sembrare scritta da un
Ho ottimizzato i dati sulla seriale per trasmetterli solo se siamo sulla pagina giusta, manca ancora la gestione della temperatura e, cosa molto importante, memorizzare il set della temperatura su eeprom per mantenerlo anche quando si spegna la macchinetta. Non ridere :-P
#include
String caffeoff = "9997102102101111102102"; //stringa pulsante caffe che arriva dal Nextion String caffeon = "9997102102101111110"; String vapoff = "11897112111102102"; //stringa pulsante vapore che arriva dal Nextion String vapon = "11897112111110"; String setpiu = "115101116109101110111"; //stringa pulsante +Set Temp che arriva dal Nextion String setmeno = "115101116112105117";//stringa pulsante -Set Temp che arriva dal Nextion String page0 = "1129710310148"; //stringa numero pagina String page1 = "1129710310149";
int page0on = 1; int page1on = 0;
String a=""; //variabile dove si memorizza la lettura della seriale dal Nextion String com; //variabile dove viene memorizzata la stringa completa che arriva dal Nextion
float intemperatura = A0; // ingresso sensore temperatura int settemp=80; //minima temperatura di set
unsigned long t1, dt; //timer per mandare valori al display
void setup() { Serial.begin(9600); Serial2.begin(9600);
pinMode(22, OUTPUT); pinMode(13, OUTPUT); analogReference( INTERNAL2V56 );
}
void loop() { com=""; //azzeramento variabile
if (Serial2.available())// in attesa che arrivi un carattere dal Nextion { a=Serial2.read(); }
{ int start=1; while(start==1) { if (Serial2.available()) { a=Serial2.read(); if(a!="176")
{
comando }
else { start=0; // permette di uscire dal ciclo } } } }
if (com == caffeon ) { digitalWrite (13, HIGH); }
if (com == caffeoff ) { digitalWrite (13, LOW); }
if (com == vapon ) { digitalWrite (22, HIGH); }
if (com == vapoff ) { digitalWrite (22, LOW); }
if (com == page0) // memorizza la pagina 0 su cui stiamo lavorando { page0on = 1;
}
if (com == page1) // memorizza la pagina 1 su cui stiamo lavorando { page1on = 1;
}
selezionata la pagina relativa { settemp= settemp + 1; Serial2.print("settemp.val="); // selezionare il modulo numerico scrivendo l'id corrispondente al modulo a cui si vuole inviare Serial2.print(settemp); //manda la temperatura al modulo numerico che vuole un intero Serial2.write(0xff); // bisogna mandare i tre caratteri di fine trasmissione Serial2.write(0xff); Serial2.write(0xff); }
selezionata la pagina relativa { settemp= settemp - 1; Serial2.print("settemp.val="); // selezionare il modulo numerico scrivendo l'id corrispondente al modulo a cui si vuole inviare Serial2.print(settemp); //manda la temperatura al modulo numerico che vuole un intero Serial2.write(0xff); // bisogna mandare i tre caratteri di fine trasmissione Serial2.write(0xff); Serial2.write(0xff); }
if (page1on == 1) // manda il valore del set temperatura solo se la
{ Serial2.print("settemp.val="); // selezionare il modulo numerico scrivendo l'id corrispondente al modulo a cui si vuole inviare Serial2.print(settemp); //manda la temperatura al modulo numerico che vuole un intero Serial2.write(0xff); // bisogna mandare i tre caratteri di fine trasmissione Serial2.write(0xff); Serial2.write(0xff); }
float temperatura = mapFloat(analogRead(intemperatura), 186, 585, 150,
19); int temp=temperatura;
pagina 0 { dt = millis() - t1;
if (dt > 500) { Serial2.print("n0.val="); // selezionare il modulo numerico scrivendo l'id corrispondente al modulo a cui si vuole inviare Serial2.print(temp); //manda la temperatura al modulo numerico che vuole un intero Serial2.write(0xff); // bisogna mandare i tre caratteri di fine trasmissione Serial2.write(0xff); Serial2.write(0xff); } }
}