howto:arduino-esp:esp-now_compteurs

Compteurs de public synchronisés

À la demande d'une entreprise de régie événementielle, le fablab a été sollicité pour concevoir un système léger de comptage de public pour le festival Grandes Heures Natures. Le site comportant 3 entrées libres distantes de plusieurs centaines de mètres, la question était de pouvoir connaître en temps réel le nombre de personnes dans l'enceinte (pour répondre aux normes Covid en vigueur). Le système ainsi conçu a été partagé sous licence libre CC-BY-SA 4.0 et est proposé gracieusement en prêt à tout événement ayant lieu dans le Grand Besançon.


N'hésitez pas à solliciter le fablab (fablab@grandbesancon.fr) si ces compteurs peuvent vous être utile pour une manifestation publique dans le Grand Besançon: événement culturel, exposition, brocante… Le prêt est gratuit.


À chaque point d'entrée du public sur un site, une personne décompte à l'aide des deux boutons d'un boîtier les personnes entrant et les personnes sortant. Le sous-total (entrant - sortant) est envoyé à un module central. Ce module calcule en permanence le total à partir des informations collectées et envoie en retour la jauge sur site sur chaque boîtier. Les informations son transmises sans fil sur une distance d'environ 100 mètres en extérieur, il est donc possible d'utiliser le système sur un site de 200m de diamètre, en posant le module central au milieu. Très simple d'utilisation, le système garde en mémoire le total en cas de coupure intempestive ou de redémarrage.

  • Témoin de connexion.
  • En cas de déconnexion, les sous-totaux sont stockés jusqu'à ce qu'ils puissent être envoyés au module central.
  • Le module central stocke le total même en cas d'extinction.
  • Tous les compteurs fonctionnent sur batterie. Une batterie externe fournie permet une utilisation > 12h.
  • Le module central doit être branché sur secteur, mais une petite batterie permet de parer à une coupure temporaire.

Le module central utilise un M5 Stack [1] basé sur le microcontrôleur ESP32: celui-ci offre la possibilité d'exploiter un écran confortable, des boutons intégrés, une petite batterie (même si ce nœud central a vocation à être branché au secteur). La carte SD que l'on peut y adjoindre permettra à terme de logger les informations de fréquentation, voire d'afficher des courbes en temps réel sur l'écran. Les compteurs proprement dits sont basés sur les cartes TTGO ESP32 T-Display [2]. L'écran OLED couleur intégré et la gestion de la batterie font qu'il n'y a presque rien à ajouter pour finaliser le projet. Les deux boutons présents sur la carte auraient presque pu suffire, mais trop petits, ils ont été remplacés par des boutons du fabriquant Honeyone [3]. Une batterie 2000 mAh assure l'autonomie des clients. Un switch [4] permet de couper l'alimentation. Le boîtier a été modélisé à l'aide du logiciel Freecad et imprimé en PLA.

Nous utilisons le protocole de communication ESP-Now [5] développé par Espressif pour faire communiquer clients et nœud central. Idéal pour ce genre d'application, il permet en sus de s'assurer de la bonne transmission des informations (et à défaut de les garder en mémoire pour une seconde tentative). Seul inconvénient, il nécessite de rentrer en dur les adresses MAC des modules utilisés pour les appairer. La gestion de l'affichage sur le M5 tire parti de la bibliothèque M5Stack disponible sur Github [6]. Sur les modules TTGO, nous utilisons TTGO-T-Display [7]. Pour stocker les informations dans l'EEPROM et les rendre résistantes aux redémarrages, nous utilisons <Preferences.h> [8].

Le tutoriel ESP-NOW sur le wiki.

  • howto/arduino-esp/esp-now_compteurs.txt
  • Dernière modification: 2021/10/09 17:30
  • de guillaume