Fess Time est un projet IoT mêlant électronique embarquée, ergonomie et analyse comportementale.
Il permet de mesurer le temps passé assis sur une chaise équipée, afin de déclencher des actions :
- alertes sonores,
- notifications,
- voire stimuli physiques (vibration, électrostimulation...).
Ce projet combine :
- ESP32 et capteur de pression FSR,
- communication MQTT avec TLS,
- bridge vers HiveMQ Cloud,
- une application web temps réel pour visualiser les données.
Capteur FSR → ESP32 → Mosquitto local → HiveMQ Cloud → Application Web (MQTT.js)
- Protocoles utilisés :
MQTT,TLS v1.2,WebSocket,HTTP - Topic principal :
sensor/fsr
- ESP32 (avec MicroPython)
- Capteur de pression FSR
- Haut-parleur (optionnel)
- Afficheur (optionnel)
- Breadboard, câblage, alimentation 5V
- Raspberry Pi ou PC sous Linux/WSL
- Mosquitto
- Accès Internet
- Certificats TLS
| Composant | Port ESP32 |
|---|---|
| Afficheur 7 segments | 23 |
| Afficheur 7 segments | 18 |
| Afficheur 7 segments | 19 |
| Afficheur 7 segments | 13 |
| Afficheur 7 segments | 12 |
| Afficheur 7 segments | 5 |
| Afficheur 7 segments | 15 |
| Afficheur 7 segments | 2 |
| Afficheur 7 segments | 22 |
| Afficheur 7 segments | 4 |
| Afficheur 7 segments | 21 |
| Afficheur 7 segments | 14 |
| Force Sensor Resistence (FSR) | 3v3 |
| Force Sensor Resistence (FSR) | 34 |
| Haut-parleur | 25 |
| Haut-parleur | GND |
# Cloner le projet
git clone https://github.com/MinaelTrumacher/fess-time.git
cd fess-time
# Lancer l'installation Mosquitto + bridge (nécessite sudo)
./config/setup_mosquitto_bridge.sh
# Lancer l'interface web
npm install
# Renseignement des informations utilisateurs dans mqtt.js
npm startgit clone https://github.com/MinaelTrumacher/fess-time.git
cd fess-timeUn script est fourni pour :
-
installer Mosquitto,
-
créer les fichiers de configuration,
-
télécharger le certificat TLS,
-
redémarrer le service.
-
Flasher MicroPython sur l’ESP32 si nécessaire.
-
Uploader le code contenu dans le dossier esp32/ :
-
lecture analogique du capteur,
-
détection d’assise (valeur ≥ 0),
-
envoi régulier via MQTT (sensor/fsr),
-
déclenchement sonore et timer.
L’application Web se connecte à HiveMQ via MQTT.js en WebSocket.
Fonctionnalités :
-
affichage en direct si une personne est assise,
-
état assis/debout,
-
timer de session,
-
alertes visuelles ou sonores.
- Topic : sensor/fsr
- Payload : valeur entière (ex: 234, 9999)
- Seuil : toute valeur > 0 signifie que l'utilisateur est assis.
# Afficher les logs en direct
sudo journalctl -u mosquitto -f
-
Statistiques d’assise
-
Historique par jour / semaine
-
Détection multi-utilisateur
-
Actionneurs physiques intégrés
-
Mode jeu ou pause obligatoire
