Mes premiers pas avec ESP8266/ESP32

Bonjour a tous,

je fais mes premiers pas sur ESP8266/ESP32 et j'ai une constatation a partager et 2 questions a poser :

  1. un simple "blink" sur ESP32 occupe ceci en memoire :

Le croquis utilise 158969 octets (12%) de l'espace de stockage de programmes. Le maximum est de 1310720 octets.
Les variables globales utilisent 10968 octets (3%) de mémoire dynamique, ce qui laisse 283944 octets pour les variables locales. Le maximum est de 294912 octets.

Gloups !!!!

  1. dans certains programmes on defini les parametres d'acces au Wi-Fi par
const char *ssid1     = "REPLACE_WITH_YOUR_SSID";
const char *password1 = "REPLACE_WITH_YOUR_PASSWORD";

et dans un autre exemple :

const char* ssid     = "REPLACE_WITH_YOUR_SSID";
const char* password = "REPLACE_WITH_YOUR_PASSWORD";

Quelle est la signification de l'asterisque dans ce cas et sa position est sans importance ? Les 2 marchent.

  1. autre question : j'ai trouve un programme qui va chercher l'heure sur Internet (NTP) et qui l'affiche sur sur un petit display OLED. Cela marche mais c'est desagrable de voir tout l'ecran se rafraichir toutes les secondes. Je voudrais modifier ce programme pour rafraichir uniquement les modifications. Malheureusement, je butte sur la comparaison :

-le message d'erreur :

myNTP_clock_MODIF:133: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
if (CurHour != hour(t)){
^

  • la routine d'affichage :
  display.clearDisplay();
  display.setTextSize(3);
  display.setTextColor(WHITE);
  display.setCursor(0, 0);
  display.display();

  printDigits(hour(t));
  display.print(":");
  printDigits(minute(t));
  display.setTextSize(2);
  display.setTextColor(WHITE);
  display.setCursor(95, 0);
  printDigits(second(t));

  etc pour la date, jour de la semaine  .......
  • les bibliotheques utilisees :
#include <NTPClient.h>
#include <Time.h>
#include <TimeLib.h>
etc etc

Mon probleme vient de la notion de pointeur qui m'est completement etrangere.

Merci d'avance pour votre aide

Jacques.

N.B.: je ne mets pas le programme en entier car il est vendu (2.03€) par une revue australienne Silicon Chip http://siliconchip.com.au/ dont je vous recommande la lecture.

Bonjour,

  1. le framework est téléchargé en même temps que ton programme. Donc tu as une taille importante même pour un petit programme. Heureusement si ton programme grossis de 100 octets, le code transféré n'augmenteras que de 100 octets.

  2. c'est la même chose. En C/C++ on peut (dans la plupart des cas) insérer des espaces (ou des retours à la ligne) dans le source

  3. pour répondre, il faut connaitre le type de CurHour et hour(t). On ne peut comparer que des types compatibles.

kamill,
merci pour tes reponses.

Pour le point 3 :
CurHour c'est moi et c'est un integer
Hour() c'est ... c'est ... c'est une bonne question !!.

Librairie utilisee : https://github.com/PaulStoffregen/Time mais je ne sais pas trouver la reponse, ni dans time.cpp ni dans le Readme.txt qui est associe a cette librairie.

Cette valeur s'imprime correctement sur la console sans poser de probleme.

Serial.print(":");
  SerialprintDigits(hour(t));
  Serial.println(" ");