Étape 10 : Le logiciel pour le module ESP8266 - partie 3 « setup() et loop() »
Setup()
La fonction setup() est appelée une fois après le bootet de ESP8266. Ici je définis la fonction des broches GPIO, se connecter à la WiFi local, initialiser la connexion série et démarrer le serveur HTTP pour recevoir.
Seulement sur le module « maître », je commence aussi bien une minuterie qui déclenche toutes les 60 secondes une mise à jour de la consommation d’énergie (plus à ce sujet à l’étape suivante).
Connexion Wi-Fi
Pour le rendre plus facile d’identifier les différents modules de ESP8266, que j’ai décidé d’utiliser des adresses IP statiques au lieu d’utiliser la fonction DHCP de mon routeur WiFi.
Pour vous connecter avec une adresse IP statique, quelques paramètres supplémentaires doivent être utilisés avec WiFi.config() :
ipAddr = > l’ipAddr assigné à ce module
passerelle IP = > la passerelle par défaut (généralement l’adresse IP du routeur)
: ipSubNet = > le masque IP pour tous les locaux IP adresses, dans mon cas 255.255.255.0
AVERTISSEMENT - fonction Arduino OTA
Les bibliothèques de l’Arduino ESP8266 offrent ainsi une fonction d’OTA (mise à jour logicielle via WiFi). Ce serait une belle fonction pour mettre à jour mes modules ESP8266 sans leur connexion par connexion série à PC.
Malheureusement, mon expérience avec cette fonction est très mauvaise. Dans 70 % des mes essais le transfert du nouveau logiciel sur le WiFi a été altéré et après réinitialisation, le module a été suspendu et ne répond ne pas. Seulement un reflash par connexion série eux ramenés à travailler.
J’ai la fonction OTA dans mon code, mais je ne l’utilise pas plus. Si tout va bien, avec une mise à jour ultérieure des bibliothèques ESP8266 l’OTA fonction sera plus fiable.
Loop()
La fonction loop() est la boucle principale du programme (comme son nom l’indique). Ici, je vérifie si un nouveau client s’est connecté en WiFi, si une commande a été reçue, par connexion série ou (uniquement pour le module « maître »), si une mise à jour de la consommation d’énergie a été déclenchée (plus à ce sujet à l’étape suivante.