Hardware open source
Tholus Flow
Capteur open source pour comptage de personnes et détection de proximité basé sur ESP32 + VL53L8CH. Cette page rassemble hardware, composants, assembly, firmware, commissioning et références essentielles pour la publication et la reproductibilité.
- Catégorie
- Nœud capteur open source
- Stack
- ESP32 + VL53L8CH
- Use case
- Comptage de personnes et détection de proximité
- Firmware
- v2.0.1
Build de référence concrète
Composants faciles à trouver, flashing simple et documentation prête pour les équipes qui doivent réellement reproduire le nœud.
Configuration sur le device
Wi-Fi, threshold, ROI et counting line sont enregistrés localement sur le capteur pour une maintenance plus simple.
Pensé pour le terrain
Provisioning AP, calibration live et commissioning sur scène réelle pour entrées, passages et installations permanentes.
Index
Composants
Les principales pièces de la build de référence, visibles immédiatement.
Les images du DOCX vivent maintenant aussi dans la page : carte, breakout, connecteur d’alimentation et boîtier font partie de la documentation publique, plus d’une pièce jointe séparée.
Overview
Une plateforme de référence pensée pour être reproductible.
Tholus Flow a été conçu comme un nœud capteur reproductible, économique et simple à assembler. La configuration opérationnelle vit sur le device, tandis que le firmware est chargé via Arduino IDE puis géré via application ou API réseau.
L’objectif est de publier non seulement le code, mais le flux complet : choix des composants, notes de sourcing, assembly, wiring, flashing et commissioning réel à l’entrée ou sur le passage à surveiller.
Architecture
Nœud compact, bus I²C simple, alimentation séparée.
La carte ESP32 avec bridge CP2102 a été choisie pour la facilité de développement et de flashing, tandis que le VL53L8CH apporte plus de souplesse qu’un simple capteur de distance grâce au capteur multizone 8×8 et aux données CNH, utiles aussi pour des cas d’usage futurs.
Bill of materials
BOM recommandée pour la build de référence.
| Composant | Qté | Source | Search / reference | Notes projet |
|---|---|---|---|---|
| ESP32 Development Board Type-C CP2102 WiFi | 1 | AliExpress | ESP32 CP2102 Type-C board |
Choisie pour un flashing simple, l’accès série et une bonne compatibilité pratique sur Mac ; de préférence avec headers déjà soudés. |
| VL53L8CH breakout board + pin strip | 1 | AliExpress | VL53L8CH module board |
Capteur ToF multizone 8×8 ; s’il n’arrive pas préassemblé, il faut souder les broches. |
| 24AWG Dupont jumper wires | 1 kit | AliExpress | 10 cm / 20 cm kit |
Il faut assez de câbles female-to-female pour relier les deux cartes avec des headers mâles. |
| USB-C panel-mount waterproof connector, 2 wires | 1 | AliExpress | USB-C waterproof panel mount 2pin |
Entrée d’alimentation du boîtier. Power only, pas de données USB. |
| Waterproof ABS enclosure 100 × 68 × 50 mm | 1 | AliExpress | ABS waterproof enclosure 100x68x50 |
La taille correcte est exprimée en millimètres et correspond au volume utile du boîtier final. |
Wiring
Connexions logiques avant la fermeture du boîtier.
| Référence | Usage | Note d’implémentation |
|---|---|---|
| ESP32 GPIO 21 → sensor SDA | I²C data | Le firmware utilise `Wire.begin(21, 22)`. Toujours vérifier le pinout du breakout acheté. |
| ESP32 GPIO 22 → sensor SCL | I²C clock | Garder les fils courts et propres pour réduire le bruit et les lectures instables. |
| ESP32 3V3 / VIN correct → sensor power | Power sensor | Certains breakouts exposent VIN, d’autres 3V3. Ne pas envoyer 5 V à des cartes qui ne le supportent pas. |
| ESP32 GND → sensor GND | Common ground | Une masse partagée propre est nécessaire entre capteur, carte et alimentation. |
| USB-C panel red wire → ESP32 5V / VIN | Power enclosure | Le connecteur 2 fils alimente le boîtier final et n’est pas utilisé pour le flashing ni les données USB. |
| USB-C panel black wire → ESP32 GND | Power enclosure | Programmer le device depuis l’USB natif de la carte avant la fermeture finale du boîtier. |
Assembly
Montage et packaging pensés pour la scène réelle.
La build de référence veut rester simple à assembler, mais le résultat final dépend beaucoup de la manière dont le boîtier est percé, dont le capteur est fixé et dont l’ouverture optique reste propre. Ici, le choix pratique compte plus que l’élégance.
- Programmer et tester la carte sur table avant de fermer le boîtier définitif.
- Si le capteur fonctionne derrière une fenêtre, garder l’ouverture optique propre et peu encaissée.
- Éviter les tunnels profonds devant le capteur, car ils réduisent inutilement le champ de vision.
- Fixer le capteur de manière stable et perpendiculaire au passage avec entretoises, supports ou adhésif technique.
- Si l’usage est vraiment outdoor, l’étanchéité dépend de la qualité du perçage et du scellement du boîtier et du connecteur.
Firmware
Fonctions cœur déjà incluses dans la build de référence.
- configuration persistante sur le device pour Wi-Fi, threshold, ROI et tracking
- point d’accès initial pour provisioning et commissioning
- pairing avec setup code et token administrateur pour les opérations en écriture
- stream live de la matrice 8×8 via WebSocket
- API HTTP pour statut, configuration, Wi-Fi provisioning et restart
- blob tracking et line crossing pour événements IN / OUT
- upload d’événements vers backend ou cloud, tout en gardant la calibration directement sur le capteur
Utilitaire web
Tholus Flow Lite ajoute une couche prête à l’emploi au-dessus du firmware.
Jusqu’ici, le projet mettait à disposition le capteur et le firmware, mais beaucoup de makers devaient encore construire eux-mêmes la couche logicielle. Tholus Flow Lite est un petit utilitaire web qui se connecte au capteur et rend le firmware immédiatement plus exploitable depuis le navigateur.
Il reste volontairement léger : un dashboard pratique pour visualiser les données, tester le nœud plus facilement et partir d’une base déjà utile et hackable pour de petits projets réels.
Ce qu’il fait
- comptage live des entrées et sorties
- estimation de l’occupation en cours
- visualisation live simple de l’activité près de l’entrée
- graphiques horaires ou journaliers légers
- historique d’événements basique
- interface simple pour calibration et réglages
Comment l’utiliser
- assembler le capteur et flasher le firmware
- connecter le device au réseau ou utiliser le mode setup
- ouvrir l’utilitaire dans un navigateur et le connecter au capteur
- consulter les données live et les analytics de base
- vérifier l’historique et les graphiques sur la scène réelle
- ajuster calibration et paramètres si nécessaire
Idées d’usage
Flashing
Installation du firmware avec Arduino IDE.
Toolchain essentielle
Pour que la page soit réellement utile, vous pouvez télécharger à la fois le firmware publié et l’environnement officiel utilisé pour le compiler et le téléverser.
- Installer une version à jour d’Arduino IDE.
- Ajouter dans les préférences l’URL du package manager Espressif ESP32.
- Installer depuis Boards Manager le paquet “esp32 by Espressif Systems”.
- Sélectionner une carte compatible avec le hardware utilisé ; dans la plupart des cas “ESP32 Dev Module” est le point de départ le plus pratique.
- Installer les bibliothèques requises : ArduinoJson, arduinoWebSockets (Links2004) et STM32duino VL53L8CH.
- Connecter l’ESP32 via le port USB-C natif de la carte.
- Ouvrir le fichier firmware, vérifier le port série et la carte sélectionnée, puis compiler et téléverser.
- Si l’upload sur Mac est instable, réessayer avec une vitesse plus conservatrice, par exemple 115200.
esp32 by Espressif Systems
Fournit le core, WiFi, WebServer, Preferences, ESPmDNS, HTTPClient et la toolchain d’upload.
ArduinoJson
Utilisée pour les payloads JSON et la configuration.
arduinoWebSockets (Links2004)
Gère le flux live via WebSocket.
STM32duino VL53L8CH
Driver Arduino pour le capteur ToF VL53L8CH.
Commissioning
Premier démarrage, pairing et calibration.
- Allumer le nœud et vérifier en série l’adresse MAC et le nom du nœud ; garder setup code et étiquette de provisioning à portée de main.
- Associer le capteur depuis l’app ou l’outil de provisioning.
- Configurer SSID, mot de passe Wi-Fi et paramètres cloud.
- Attendre que le nœud réapparaisse sur le LAN.
- Ouvrir l’écran de calibration, vérifier la matrice live et ajuster threshold, ROI et counting line dans le contexte réel d’installation.
Checklist
Points à ne pas oublier avant l’installation.
- assez de câbles female-to-female pour relier l’ESP32 et le breakout du capteur
- étain, panne fine et outils pour souder les headers du VL53L8CH
- alimentation 5 V stable et câble USB-C externe
- méthode de fixation interne : entretoises, standoffs, adhésif technique ou support 3D
- fenêtre optique ou protection propre devant le capteur, si le boîtier l’exige
- étiquette externe avec serial / MAC / setup code pour support et commissioning
Références
Références techniques essentielles.
FAQ
Questions fréquentes pour celles et ceux qui consultent ou réutilisent le projet.
Y a-t-il quelque chose à considérer avant d’utiliser le firmware sur le terrain ?
Oui. La build publiée n’utilise plus de mot de passe AP statique : le mot de passe de provisioning est unique par device et suit la règle `TF-<setup code>`. Les logs série n’affichent les valeurs sensibles qu’en version masquée.
Pourquoi le VL53L8CH a-t-il été choisi ?
Parce qu’il combine un FoV plus contrôlable que le VL53L7CH avec des données CNH utiles pour de futurs scénarios au-delà du simple comptage de personnes : gesture sensing, presence detection et classifications plus avancées.
Quel est le bon flux d’assemblage ?
Flash du firmware, test du capteur à l’air libre, câblage final, test dans le boîtier puis installation et calibration sur site réel.