-
AutorePost
-
20 Marzo 2020 alle 10:35 #7822
Amilcare
Amministratore del forumNiente da fare le immagini sono arrivate correttamente ma il file compresso non si apre attendo che mi arrivi di nuovo per postarlo.
20 Marzo 2020 alle 13:07 #7826Amilcare
Amministratore del forum20 Marzo 2020 alle 13:09 #7829Amilcare
Amministratore del forumHo internet sul fisso che non va e il file con estensione ino non riesco a caricarlo da cellulare
20 Marzo 2020 alle 14:39 #7831Amilcare
Amministratore del forum/*------------------------------------------------------------------ Settembre 2019: Network Clock Orologio con display LCD i2c Modulo ESP8266_01 I valori della data e dell'ora vengono gestiti dal server NTP e emessi su LCD i2c Le connessioni SDA/SCL sono possibili anche su ESP8266 definendo i pin direttamente nella funzione begin Vedi anche ESP8266_CON_DS1307 per la gestione wire Vedi anche ESP32_NTClient.ino La scelta Ora_Solare/Legale deve essere configurata in base ad un ponticello sui GPIO disponibili e non utilizzati a RUN_TIME Ver: 1.0 15 Settembre 2019 Ver: 2.0 17/9/19 Upgrading: .Utilizzo della wait_serial per abilitare il debug su HT .Miglioramenti visivi su LCD .Verifica Data con precedente lettura per evitare display continui per la stessa data .inserimento del giorno della settimana a fianco data 29/9/19: Si scopre che nonostante la connesisone WiFi NON SIA connessa, il sistema funziona ugualmente. L'indirizzo fornito 192.168.1.110 viene rilevato come attivo. Quindi si puo' presumere che la libreria NTP esegua l'accesso al WiFi. Ma che fornisce l'accesso ? ATTENZIONE: quando il sistema vuole aggiornare le librerie verificare che NON VENGA AGGIORNATA la libreria NTPCLIENT: mantenere quella di Random_Nerd 2/10/19: Versione 2: La connessione WiFi va rifatta sempre con un chip nuovo. Pare che dopo la prima connessione non occorra rifarla. -------------------------------------------------------------------*/ #include <ESP8266WiFi.h> // Gestione WiFi #include <Wire.h> // Protocollo Wire #include <NTPClient.h> // Lib NTP_Client #include <WiFiUdp.h> // Lib UDP #include <LiquidCrystal_I2C.h> // Lib per LCD WiFiUDP ntpUDP; // Define NTPClient to get time NTPClient timeClient(ntpUDP); #define LCDI2C_ADDR 0x27 // Adr of LCD_I2C #define LCDTYPE_16; // Lcd 16x2 LiquidCrystal_I2C MyLcd(LCDI2C_ADDR,16,2); int Pin_SDA = 0; // Definisce i pin SCL/SDA int Pin_SCL = 2; const char* ssid = "router"; // Per la connessione Internet const char* password = "password"; String Pre_Date; String formattedDate; // Variabili per data e tempo String dayStamp; String timeStamp; char dayWeek [7][6] = {"DOM", "LUN", "MAR", "MER", "GIO", "VEN", "SAB"}; bool DEBUG; //----------------------------------------------------------------------- // Funzione da utilizzare a regime boolean wait_Serial (int time_out) { unsigned long tm_out = time_out; //Normalizza il valore unsigned long tm_act = (millis() /1000) + tm_out; //recupera il tempo attuale Serial.print("Press any key for: "); // messaggio Serial.print(time_out); Serial.print(" secondi:"); while (true) // loop infinito { if (Serial.available() > 0) // input da seriale ?? { int cr = Serial.read(); Serial.flush(); return true; } if ( millis() /1000 > tm_act) { Serial.flush(); return false; } } } //------------------------------------------------------------------ void setup() { Serial.begin(115200); // Start serial at 115200 Serial.write(12); // clear area DEBUG = wait_Serial(3); // Se vero ok su HT if (DEBUG == true) Serial.println("OK."); Wire.begin(Pin_SDA,Pin_SCL); // Init protocol MyLcd.init(); // Init LCD MyLcd.begin(16,2); // settaggio righe e colonne MyLcd.clear(); MyLcd.backlight(); MyLcd.setCursor(4,0); // colonna 3 riga 0 MyLcd.print("NTP CLOCK"); delay(2000); // ritardo per persistenza MyLcd.clear(); // Clear lcd MyLcd.setCursor(0,0); // Cursore c=0, r=0 MyLcd.print("WF: "); // Scrive ssid MyLcd.print(ssid); MyLcd.setCursor(0,1); // su riga 2 WiFi.begin(ssid,password); while (WiFi.status() != WL_CONNECTED) { delay(500); MyLcd.print("."); } MyLcd.setCursor(0,0); MyLcd.print("WiFi connected"); MyLcd.setCursor(0,1); MyLcd.print(WiFi.localIP()); delay(2000); // Initialize a NTPClient to get time timeClient.begin(); timeClient.setTimeOffset(3600); // per ora solare //timeClient.setTimeOffset(7200); // per ora legale MyLcd.clear(); MyLcd.setCursor(0,0); Pre_Date = ""; } // LOOP: Gestione della data e dell'ora void loop() { while(!timeClient.update()) { timeClient.forceUpdate(); } formattedDate = timeClient.getFormattedDate(); int splitT = formattedDate.indexOf("T"); dayStamp = formattedDate.substring(0, splitT); timeStamp = formattedDate.substring(splitT+1, formattedDate.length()-1); if (DEBUG == true) { Serial.println(formattedDate); Serial.print(dayWeek[timeClient.getDay()]); Serial.print(" "); Serial.print(dayStamp); Serial.print(" "); Serial.println(timeStamp); } if (Pre_Date != dayStamp) // 17/9/19: evita ripetizioni { Pre_Date = dayStamp; MyLcd.setCursor(1,0); MyLcd.print(dayStamp); MyLcd.print(" "); MyLcd.print(dayWeek[timeClient.getDay()]); } MyLcd.setCursor(4,1); MyLcd.print(timeStamp); delay(1000); }
Altro non riesco a fare da cellulare visto che fino a mercoledì non ho internet sul fisso
-
Questa risposta è stata modificata 3 anni, 8 mesi fa da
Amilcare.
-
Questa risposta è stata modificata 3 anni, 7 mesi fa da
Picmicro675.
-
Questa risposta è stata modificata 3 anni, 7 mesi fa da
Picmicro675.
20 Marzo 2020 alle 17:51 #7835oriolo20
Partecipante20 Marzo 2020 alle 18:01 #7837oriolo20
Partecipante<Certo che vi metto a disposizione il pacchetto e lo sketch ed eventuali librerie….ditemi solo dove spedirlo via email.>
grazieSopra inviato altro scheme elettrico nella speranza che non ci siano grossi errori, sul valore di alcune resistenze poi in fase di test troveremo il valore ideale.
20 Marzo 2020 alle 22:56 #7841Picmicro675
PartecipanteDando una mano ad Amilcare, ho revisionato lo sketch. Non me ne abbia GVsoft per qualche adattamento visuale.
Per quello che vedo del sorgente, non poi molto lontano da quello che si trova in rete. Potrebbe magari interessare il modo di far sincronizzare RTC con l’NTP. come si vede dal github.
Quello che si dovrebbe utilizzare sarebbe di verificare che sia passato un secondo, meglio di delay(1000) e quindi ripetere il loop()
Come si può vedere nel mio articolo di data logger20 Marzo 2020 alle 22:56 #7843Picmicro675
Partecipante@oriolo20
Lo schema va alquanto bene. Dovresti aggiungere un connettore per l’ESP-01 o se lo vuoi lo saldi direttamente, per la fase di aggiornamento tramite NTP.
Tieni conto di mettere un adattatore di livello per il TX di arduino. Vedi questa guida in particolare questo
Sul lato RX di arduino non ci sono problemi e riesce a capire anche il livello dei 3,3V dell’ESP: -
Questa risposta è stata modificata 3 anni, 8 mesi fa da
-
AutorePost
- Devi essere connesso per rispondere a questo topic.