ZoeCare / ZoeFall
Le problème
Avant ZoeCare, la trace d’une chute, c’était une ligne saisie après coup, à la main, dans un tableur ou un formulaire. L’objectif était double : que les soignants et le cadre de santé soient alertés au moment où elle arrive, et qu’elle devienne une donnée qu’on peut suivre, établissement par établissement.
La contrainte
Pas de caméra, et rien à porter pour le résident : des ESP32 mesurent les variations du signal Wi-Fi dans la pièce. C’est un signal très sensible, qui offre peu de paramètres exploitables — les faux positifs sont le vrai problème. La détection combine donc plusieurs étages de filtrage, un seuil de présence et un modèle entraîné.
Le tout sous exigences SSI et RGPD : données sécurisées, chaque connexion journalisée. Et sans budget : uniquement de l’open source, sur des instances OVH.
L’architecture
- Capteur
- Passerelle
- Données
- Alerte
- Soignant
Le schéma montre le chemin d’une alerte, du capteur au soignant. J’ai construit cette chaîne seul, à trois exceptions près : l’émission des alertes depuis les capteurs, leur mise à jour, et le modèle de détection.
Quand plusieurs chutes arrivent en même temps, les alertes sont retenues cinq secondes puis regroupées en une seule : le soignant reçoit un message clair, pas une rafale.
Le serveur a été optimisé pour encaisser le volume de télémétrie. Cassandra absorbe le flux temps réel ; les données plus anciennes sont sauvegardées puis extraites vers un serveur physique au bureau, qui en garde une copie et libère l’espace en ligne. Les applications reposent sur Supabase, sous un modèle de sécurité en Row-Level Security.
La flotte Raspberry Pi se met à jour à distance, en OTA signée SHA-256, conformément aux exigences SSI. Une mise à jour qui échoue revient d’elle-même à la version précédente : une passerelle en panne, c’est une zone qui n’est plus surveillée.
Aucun port SSH n’est ouvert en entrée. La maintenance passe par un VPN WireGuard, les services tournent sous systemd derrière un reverse proxy Nginx en SSL/TLS, sur OVH.
Le résultat
2
30
Déployé et en production dans 2 EHPAD.
- Flutter
- Node.js
- TypeScript
- Supabase
- Cassandra
- PostgreSQL
- React
- Metabase
- Raspberry Pi
- ESP32
- MQTT
- Docker
- Nginx
- systemd
- WireGuard
- OVH