Viewing 8 posts - 65 through 72 (of 209 total)
  • Author
    Posts
  • #7822
    Amilcare
    Keymaster

    Niente da fare le immagini sono arrivate correttamente ma il file compresso non si apre attendo che mi arrivi di nuovo per postarlo.

    #7826
    Amilcare
    Keymaster
    #7829
    Amilcare
    Keymaster

    Ho internet sul fisso che non va e il file con estensione ino non riesco a caricarlo da cellulare

    #7831
    Amilcare
    Keymaster
    /*------------------------------------------------------------------
      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

    #7835
    Avataroriolo20
    Participant

    Primo schema oriolo-nixie

    #7837
    Avataroriolo20
    Participant

    <Certo che vi metto a disposizione il pacchetto e lo sketch ed eventuali librerie….ditemi solo dove spedirlo via email.>
    thank you

    Sopra 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.

    #7841
    Picmicro675Picmicro675
    Moderator

    Dando 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 logger

    #7843
    Picmicro675Picmicro675
    Moderator

    @oriolo20
    The scheme is quite good. 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. You see questa guida in particolare questo
    adattatore
    Sul lato RX di arduino non ci sono problemi e riesce a capire anche il livello dei 3,3V dell’ESP:

Viewing 8 posts - 65 through 72 (of 209 total)
  • You must be logged in to reply to this topic.