IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Afficher l'heure d'internet sur écran TFT LCD et ESP-01


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    retraité secteur santé
    Inscrit en
    Novembre 2020
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : retraité secteur santé

    Informations forums :
    Inscription : Novembre 2020
    Messages : 10
    Par défaut Afficher l'heure d'internet sur écran TFT LCD et ESP-01
    bonjour,
    je suis débutant sur arduino.
    Je cherche un moyen très simple de récupérer l'heure internet (ntp client) et l'afficher sur un écran tft lcd elegoo ,en ayant à ma disposition un esp 8266 01,un arduino uno et un écran. Donc j'arrive a programmer l'esp01 ,j'ai l'heure qui s'affiche en passant par le moniteur série,mais je vois pas du tout comment mettre en pratique mon "projet" ...quelqu'un saurait-il m'aiguiller??
    merci ,bonne journée

  2. #2
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 921
    Par défaut
    Bonjour

    Savez vous afficher "Bonjour" sur votre écran ?

    - Postez le code que vous avez qui fait ce que vous décrivez (avec les balises de code)
    - décrivez quel écran vous avez et comment tout est connecté

  3. #3
    Membre du Club
    Homme Profil pro
    retraité secteur santé
    Inscrit en
    Novembre 2020
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : retraité secteur santé

    Informations forums :
    Inscription : Novembre 2020
    Messages : 10
    Par défaut
    bonjour
    voila pour "bonjour ,salut, hello" orientation verticale, couleur différentes..je suis parti d'un code trouvé sur internet et je l'ai adapté à mon ecranTFTLCD elegoo 2.8". Et l'autre scketch ,j'essaie de le joindre mais ça me met non valide,il s'agit d'un sketche meteo on récupère la t°,le vent,l'humidité. celui avec ntp(pour l'heure) je ne retrouve pas..

  4. #4
    Membre du Club
    Homme Profil pro
    retraité secteur santé
    Inscrit en
    Novembre 2020
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : retraité secteur santé

    Informations forums :
    Inscription : Novembre 2020
    Messages : 10
    Par défaut
    donc je connecte l'écran sur la carte arduino uno (il suffit de l'emboité), mais ça prend tout les pins...j'en suis là..
    cordialement

  5. #5
    Membre du Club
    Homme Profil pro
    retraité secteur santé
    Inscrit en
    Novembre 2020
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : retraité secteur santé

    Informations forums :
    Inscription : Novembre 2020
    Messages : 10

  6. #6
    Membre du Club
    Homme Profil pro
    retraité secteur santé
    Inscrit en
    Novembre 2020
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : retraité secteur santé

    Informations forums :
    Inscription : Novembre 2020
    Messages : 10
    Par défaut
    le prog: bonjour...
    Fichiers attachés Fichiers attachés

  7. #7
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 921
    Par défaut
    postez le code directement dans le forum

    voici votre exemple pour l'écran
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    #include <TouchScreen.h>
    #include <Elegoo_GFX.h>
    #include <Elegoo_TFTLCD.h>
    #include <registers.h>
     
    #define LCD_CS A3
    #define LCD_CD A2
    #define LCD_WR A1
    #define LCD_RD A0
    #define LCD_RESET A4
     
    #define TS_MINX 122
    #define TS_MINY 111
    #define TS_MAXX 942
    #define TS_MAXY 890
     
    #define YP A3
    #define XM A2
    #define YM 9
    #define XP 8
     
    #define BLACK   0x0000
    #define BLUE    0x001F
    #define RED     0xF800
    #define GREEN   0x07E0
    #define CYAN    0x07FF
    #define MAGENTA 0xF81F
    #define YELLOW  0xFFE0
    #define WHITE   0xFFFF
     
    Elegoo_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
     
     
    void setup(void) {
      Serial.begin(9600);
      Serial.println(F("Paint!"));
     
      tft.reset();
      tft.begin(0x9341);      // SPFD5408 compatible
      tft.setRotation(2);     // This settings works for me with correct orientation
      // tft.setRotation(2);
      tft.fillScreen(BLACK);  //Set Background Color with BLACK
     
      tft.setTextColor(GREEN);
      tft.setTextSize(4);
      tft.setCursor(40, 50);
      tft.println("SALUT");
     
      tft.setTextColor(RED);
      tft.setTextSize(3);
      tft.setCursor(30, 150);
      tft.println("Bonjour");
     
      tft.setTextColor(BLUE);
      tft.setTextSize(6);
      tft.setCursor(20, 200);
      tft.println("Hello");
    }
     
    void loop() {}
    si vous avez le code pour le couple Arduino+ESP qui lit l'information, ce n'est sans doute pas sorcier de rajouter la configuration de l'écran et l'affichage de l'information

  8. #8
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 921
    Par défaut
    le code... (c'est pénible de cliquer des liens pour charger des fichiers - il suffit de copier et le coller entre les balises de code que vous obtenez en appuyant sur l'icône #

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    /***********************************************************************************
       Horloge connectée à base d'ESP8266 ou d'ESP32
       Affichage de l'heure et de la date dans le moniteur série.
       L'heure est obtenue grâce à un serveur NTP
     
       https://electroniqueamateur.blogspot.com/2018/10/horloge-wi-fi-esp8266.html
     
    *************************************************************************************/
     
    #if defined ARDUINO_ARCH_ESP8266  // s'il s'agit d'un ESP8266
    #include <ESP8266WiFi.h>
    #elif defined ARDUINO_ARCH_ESP32  // s'il s'agit d'un ESP32
    #include "WiFi.h"
    #endif
     
    #include <time.h>
     
    const char* ssid = "**********";
    const char* password = "**********";
     
    const int decalage = -4;  // la valeur dépend de votre fuseau horaire. Essayez 2 pour la France.
    const int delaiDemande = 5 * 60; // nombre de secondes entre deux demandes consécutives au serveur NTP
     
    unsigned long derniereDemande = millis(); // moment de la plus récente demande au serveur NTP
    unsigned long derniereMaJ = millis(); // moment de la plus récente mise à jour de l'affichage de l'heure
    time_t maintenant;
    struct tm * timeinfo;
     
     
    void afficheHeureDate() {
     
      timeinfo = localtime(&maintenant);
     
      Serial.print("Heure:   ");
      if ((timeinfo->tm_hour ) < 10) {
        Serial.print("0");
      }
      Serial.print(timeinfo->tm_hour );  // heure entre 0 et 23
      Serial.print(":");
     
      if (timeinfo->tm_min < 10) {
        Serial.print("0");
      }
      Serial.print(timeinfo->tm_min);   // timeinfo->tm_min: minutes (0 - 59)
      Serial.print(":");
     
      if (timeinfo->tm_sec < 10) {
        Serial.print("0");
      }
      Serial.print(timeinfo->tm_sec);   // timeinfo->tm_sec: secondes (0 - 60)
     
      Serial.print("        Date:    ");
     
      if (timeinfo->tm_mday < 10) {
        Serial.print("0");
      }
     
      Serial.print(timeinfo->tm_mday);  // timeinfo->tm_mday: jour du mois (1 - 31)
      Serial.print("-");
     
      if ((timeinfo->tm_mon + 1) < 10) {
        Serial.print("0");
      }
     
      Serial.print(timeinfo->tm_mon + 1);    // timeinfo->tm_mon: mois (0 - 11, 0 correspond à janvier)
      Serial.print("-");
      Serial.println(timeinfo->tm_year + 1900);  // timeinfo->tm_year: tm_year nombre d'années écoulées depuis 1900
     
    }
     
    void setup() {
      Serial.begin(115200);
     
      WiFi.mode(WIFI_STA);
     
      Serial.println();
     
      WiFi.begin(ssid, password);
      Serial.print("Connexion au reseau WiFi");
      while (WiFi.status() != WL_CONNECTED) {
        Serial.print(".");
        delay(1000);
      }
     
      Serial.println();
     
     
      configTime(decalage * 3600, 0, "ca.pool.ntp.org");  //serveurs canadiens
      // en Europe, essayez europe.pool.ntp.org ou fr.pool.ntp.org
     
      Serial.print("Attente date et heure");
     
      while (time(nullptr) <= 100000) {
        Serial.print(".");
        delay(1000);
      }
     
      time(&maintenant);
     
      Serial.println("");
    }
     
     
     
    void loop() {
     
      // est-ce le moment de demander l'heure NTP?
      if ((millis() - derniereDemande) >=  delaiDemande * 1000 ) {
        time(&maintenant);
        derniereDemande = millis();
     
        Serial.println("Interrogation du serveur NTP");
      }
     
      // est-ce que millis() a débordé?
      if (millis() < derniereDemande ) {
        time(&maintenant);
        derniereDemande = millis();
      }
     
      // est-ce le moment de raffraichir la date indiquée?
      if ((millis() - derniereMaJ) >=   1000 ) {
        maintenant = maintenant + 1;
        afficheHeureDate();
        derniereMaJ = millis();
      }
    }
    en gros vous prenez ce code, vous rajoutez les déclarations nécessaire à l'écran en en tête et dans le setup() et ensuite là où ce code fait des Serial.print, vous mettez des ordres d'affichage pour l'écran. ça pourrait ressembler à cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    #include <TouchScreen.h>
    #include <Elegoo_GFX.h>
    #include <Elegoo_TFTLCD.h>
    #include <registers.h>
     
    #define LCD_CS A3
    #define LCD_CD A2
    #define LCD_WR A1
    #define LCD_RD A0
    #define LCD_RESET A4
     
    #define TS_MINX 122
    #define TS_MINY 111
    #define TS_MAXX 942
    #define TS_MAXY 890
     
    #define YP A3
    #define XM A2
    #define YM 9
    #define XP 8
     
    #define BLACK   0x0000
    #define BLUE    0x001F
    #define RED     0xF800
    #define GREEN   0x07E0
    #define CYAN    0x07FF
    #define MAGENTA 0xF81F
    #define YELLOW  0xFFE0
    #define WHITE   0xFFFF
     
    Elegoo_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
     
     
     
     
    /***********************************************************************************
       Horloge connectée à base d'ESP8266 ou d'ESP32
       Affichage de l'heure et de la date dans le moniteur série.
       L'heure est obtenue grâce à un serveur NTP
     
       https://electroniqueamateur.blogspot.com/2018/10/horloge-wi-fi-esp8266.html
     
    *************************************************************************************/
     
    #if defined ARDUINO_ARCH_ESP8266  // s'il s'agit d'un ESP8266
    #include <ESP8266WiFi.h>
    #elif defined ARDUINO_ARCH_ESP32  // s'il s'agit d'un ESP32
    #include "WiFi.h"
    #endif
     
    #include <time.h>
     
    const char* ssid = "**********";
    const char* password = "**********";
     
    const int decalage = -4;  // la valeur dépend de votre fuseau horaire. Essayez 2 pour la France.
    const int delaiDemande = 5 * 60; // nombre de secondes entre deux demandes consécutives au serveur NTP
     
    unsigned long derniereDemande = millis(); // moment de la plus récente demande au serveur NTP
    unsigned long derniereMaJ = millis(); // moment de la plus récente mise à jour de l'affichage de l'heure
    time_t maintenant;
    struct tm * timeinfo;
     
     
    void afficheHeureDate() {
     
      // à voir s'il ne faut pas effacer la zone avant
     
      timeinfo = localtime(&maintenant);
      tft.setCursor(10, 50);
     
      if ((timeinfo->tm_hour ) < 10) {
        Serial.print("0");
        tft.print("0");
      }
     
      Serial.print(timeinfo->tm_hour );  // heure entre 0 et 23
      tft.print(timeinfo->tm_hour);
     
      Serial.print(":");
      tft.print(":");
     
      if (timeinfo->tm_min < 10) {
        Serial.print("0");
        tft.print("0");
      }
     
      Serial.print(timeinfo->tm_min);   // timeinfo->tm_min: minutes (0 - 59)
      tft.print(timeinfo->tm_min);
     
      Serial.print(":");
      tft.print(":");
     
      if (timeinfo->tm_sec < 10) {
        Serial.print("0");
        tft.print("0");
      }
      Serial.print(timeinfo->tm_sec);   // timeinfo->tm_sec: secondes (0 - 60)
      tft.print(timeinfo->tm_sec);
     
    }
     
    void setup() {
      Serial.begin(115200);
     
      WiFi.mode(WIFI_STA);
     
      Serial.println();
     
      WiFi.begin(ssid, password);
      Serial.print("Connexion au reseau WiFi");
      while (WiFi.status() != WL_CONNECTED) {
        Serial.print(".");
        delay(1000);
      }
     
      Serial.println();
     
     
      configTime(decalage * 3600, 0, "ca.pool.ntp.org");  //serveurs canadiens
      // en Europe, essayez europe.pool.ntp.org ou fr.pool.ntp.org
     
      Serial.print("Attente date et heure");
     
      while (time(nullptr) <= 100000) {
        Serial.print(".");
        delay(1000);
      }
     
      time(&maintenant);
     
      Serial.println("");
     
     
      tft.reset();
      tft.begin(0x9341);      // SPFD5408 compatible
      tft.setRotation(2);     // This settings works for me with correct orientation
     
      tft.fillScreen(BLACK);  //Set Background Color with BLACK
      tft.setTextColor(GREEN);
      tft.setTextSize(4);
    }
     
     
     
    void loop() {
     
      // est-ce le moment de demander l'heure NTP?
      if ((millis() - derniereDemande) >=  delaiDemande * 1000ul ) {
        time(&maintenant);
        derniereDemande = millis();
     
        Serial.println("Interrogation du serveur NTP");
      }
     
      // est-ce que millis() a débordé?
      if (millis() < derniereDemande ) {
        time(&maintenant);
        derniereDemande = millis();
      }
     
      // est-ce le moment de raffraichir la date indiquée?
      if ((millis() - derniereMaJ) >=   1000ul ) {
        maintenant = maintenant + 1;
        afficheHeureDate();
        derniereMaJ = millis();
      }
    }
    (non testé, tapé ici sur le forum)

  9. #9
    Membre du Club
    Homme Profil pro
    retraité secteur santé
    Inscrit en
    Novembre 2020
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : retraité secteur santé

    Informations forums :
    Inscription : Novembre 2020
    Messages : 10
    Par défaut
    bonjour et merci ,
    je n'arrive pas a faire communiquer l'esp01 et l'arduino en même temps lors du transfert de code.J'ai essayé une grande quantité d'exemples trouvé sur le web..mais il y a tjrs un "truc" qui cloche..j'abandonne pour l'esp01.Mais je réessaierai dés que j'aurais un autre module genre esp32.
    et je testerai votre exemple de programme.
    merci et bonne journée.

  10. #10
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 921
    Par défaut
    j'avais pas regardé en détail le code. Celui pour l'ESP est prévu pour programmer directement un ESP "en Arduino", pas pour piloter un ESP attaché sur le port série d'un UNO

    il vous faut effectivement un ESP que vous programmez directement. un ESP32 ira très bien, faudra juste vous assurer que les bibliothèques prévues pour votre écran sont compatibles avec l'ESP

  11. #11
    Membre du Club
    Homme Profil pro
    retraité secteur santé
    Inscrit en
    Novembre 2020
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : retraité secteur santé

    Informations forums :
    Inscription : Novembre 2020
    Messages : 10
    Par défaut
    bonjour et merci de votre aide
    Oui en individuel c'est trés simple à programmer,pour "objets connectés".
    Je verrai bien si j'arrive a faire quelque chose avec un esp32 ou autre et un ecran .
    bonne journée a tous

Discussions similaires

  1. Test écran TFT LCD Couleur
    Par TANITE dans le forum LabVIEW
    Réponses: 0
    Dernier message: 31/03/2013, 20h18
  2. Test écran TFT LCD Couleur
    Par TANITE dans le forum Traitement d'images
    Réponses: 0
    Dernier message: 31/03/2013, 20h07
  3. Afficher un fichier .TXT (existant) sur l'écran
    Par Horin dans le forum Windows Forms
    Réponses: 2
    Dernier message: 26/10/2009, 14h17
  4. Afficher l'heure sur le StatusBar
    Par valer dans le forum Composants VCL
    Réponses: 8
    Dernier message: 03/04/2008, 10h36
  5. Afficher un rectangle de couleur sur l'écran
    Par darkwall_37 dans le forum SDL
    Réponses: 5
    Dernier message: 11/02/2008, 14h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo