Interrogation et boucle principale du sketch

Comment les timers du firmware Arduino lisent les DHT22, servent du JSON en HTTP et rafraîchissent l’écran LCD sans bloquer la boucle du contrôleur.

Vue de dessus d’une carte microcontrôleur Arduino Uno bleue sur fond blanc
Les cartes compatibles Arduino exécutent le sketch qui interroge les sondes et publie le JSON. Photo : Wikimedia Commons contributor. CC0

La boucle principale équilibre l’interrogation des capteurs, le rafraîchissement du LCD et le service HTTP sans bloquer trop longtemps l’une de ces tâches. Une lecture DHT22 prend des centaines de millisecondes ; la gestion Ethernet doit rester assez réactive pour que les requêtes du tableau de bord n’expirent pas.

Structure typique de la boucle

  1. Vérifier la minuterie : si l’intervalle d’interrogation est écoulé, lire chaque DHT22 avec nouvelles tentatives.
  2. Mettre à jour le LCD : rafraîchir les lignes de la sonde 0, de la sonde 1 et éventuellement de la moyenne.
  3. Servir le HTTP : analyser les requêtes clientes entrantes et renvoyer le JSON en cache.
  4. Watchdog / reconnexion : réinitialiser ou relancer l’Ethernet si la liaison est tombée.

Contraintes de temps

Respectez le minimum de deux secondes entre deux lectures DHT22 pour chaque capteur. Décalez les sondes si nécessaire. La logique de moyenne est documentée dans moyenne à deux sondes. Quand une lecture échoue, ne mettez pas à jour cette clé plutôt que de publier NaN.

Déboguer sur le port série

Journalisez les échecs de lecture et l’état de l’Ethernet pendant le développement. Après le déploiement, fiez-vous au diagnostic des relevés figés côté site. Procédures de récupération : récupération par watchdog du firmware.