Projet réalisé en binôme entre Alexendros Chrissantakis et Martin Stordeur.
TFE — Inraci

Objectif général

ACC sert de passerelle entre le boîtier médical et l'interface utilisateur / la base de données : recevoir, stocker, analyser et relayer en temps réel les données cardiaques et les événements de chute.

  • Surveillance continue des signes vitaux (rythme cardiaque, etc.).
  • Détection de chute — envoi d'une alerte aux proches en cas d'incident.
  • Archivage sécurisé des données pour consultation ultérieure.

Fonctionnalités clés

  • Réception BLE / Wi‑Fi des données depuis le boîtier médical.
  • Traitement en temps réel et détection d'anomalies (tachycardie, bradycardie, chute).
  • Notifications (SMS / push / e‑mail) vers les proches.
  • Interface web mobile‑first pour consulter l'état et l'historique.
  • Base de données locale (SQLite) + possibilité de serveur distant.
  • Journalisation et gestion des accès (sécurité / chiffrement).

Matériel

Raspberry Pi 4 Module Bluetooth / BLE Wi‑Fi / Ethernet / 4G (selon disponibilité) Alimentation stable + batterie de secours Serveur (achat ou prêt de l'école)

Langages & logiciels

Python 13 HTML5 CSS SQLite
IDE: VS Code openvpn Proxmox bcrypt (gestion des mots de passe) Outils de contrôle / audit des données

Architecture (vue simplifiée)

Boîtier médical (BLE) → Raspberry Pi (passerelle) → DB locale (SQLite) 
          → Serveur distant / Interface web         
Notifications: Serveur → Proches (SMS / e‑mail / push)

Architecture(classique)

Architecture du système ACC

« Next steps » — Étapes suivantes

  1. Prototyper la communication BLE entre le boîtier et le Raspberry Pi.
  2. Développer le module de détection de chute et règles d'alerte.
  3. Construire l'interface utilisateur (mobile‑first) et les API.
  4. Tests terrain et validation avec utilisateurs cibles (personnes âgées / proches).

Équipe

Équipe : Martin Stordeur & Alexendros Chrissantakis.

Timeline du Projet TFE

14/10/2025 — Séance

Tâches réalisées

  • Finalisation des liens principaux sur stordeur-martin.be.
  • Démarrage de la configuration CLI du serveur Windows sous VMWare en vue d’une exportation vers Proxmox (déplacement à chaud).
  • Corrections HTML diverses.

Difficultés rencontrées

  • Accès FileZilla via WLS instable.

Solutions

  • Diagnostic en cours pour stabiliser la connexion SFTP depuis WLS.
Leçon du 14/10/2025

04/11/2025 — Séance

Tâches réalisées

  • Ajout de l’illustration d’architecture réseau sur l’hébergement LWS.
Leçon du 04/11/2025

17-18/11/2025 — Travail à domicile

Tâches réalisées

  • Réinstallation complète de l’environnement : Docker, Docker Compose et openssh-server (corrections des dépôts apt et du fichier docker.list).
  • Diagnostic et réparation de la VM après crash (fsck en mode recovery).
  • Mise en place d’une stack Docker fiable via SFTP : création d’un docker-compose.yml, déploiement d’OpenVPN, MySQL, Netdata et Heimdall.
  • Définition d’une stratégie réseau avancée (Plan B) : abandon d’AdGuard DNS, adoption mDNS (Avahi), ajout d’un reverse proxy (Nginx Proxy Manager) et publication des services .local.
  • Configuration des services : sous-domaine vpn.stordeur-martin.be, initialisation d’OpenVPN (CA), paramétrage de Heimdall et diagnostic de Netdata.

Difficultés rencontrées

  • Serveur arrêté la nuit empêchant une solution DNS H24.
  • Blocages apt dus à des fautes dans docker.list.
  • Erreurs YAML lors des copier-coller du docker-compose.yml depuis le terminal.
  • Permissions SFTP insuffisantes dans /srv/docker-data.

Solutions / Plan d’action

  • Utilisation d’Avahi + Nginx Proxy Manager pour simplifier l’accès aux services sans ports.
  • Transfert SFTP en deux temps pour contourner les droits d’écriture.
  • Prochaines étapes : configurer les Proxy Hosts (heimdall.local, netdata.local, proxmox.local), tester l’accès sans port, attendre le technicien VOO pour la redirection UDP 1194, puis valider la connexion OpenVPN externe.
Travail maison — 17 & 18/11/2025

18/11/2025 — Séance

Tâches réalisées

  • Correction du fichier d’état d’avancement.
  • Mise en place de la timeline sur stordeur-martin.be.
  • Refonte de la topologie réseau domestique via Lucidchart.
Topologie réseau — séance du 18/11/2025
Leçon du 18/11/2025

25/11/2025 — Séance

Tâches réalisées

  • Déploiement serveur : installation d’une VM Ubuntu sur Proxmox, mise en place de Docker + Docker Compose, déploiement du conteneur OpenVPN AS.
  • Réseau WAN/LAN : migration VOO → Orange, désactivation du CGNAT pour une IP publique dédiée, configuration du routeur Xiaomi en IP statique + DMZ depuis la box Orange, redirections de ports UDP 1194 et TCP 943.
  • DNS : mise à jour de la zone LWS pour pointer vpn.stordeur-martin.be vers la nouvelle IP publique Orange.
  • VPN & sécurité : paramétrage d’OpenVPN AS (hostname + comptes), ouverture UFW des ports 1194/943/443, activation du routage NAT pour l’accès aux périphériques LAN.
  • Changement d’IPv4 interne : 192.168.31.247/24 → 192.168.31.18/24.

Difficultés rencontrées

  • Blocage CGNAT Orange empêchant l’accès externe — résolu en activant l’IP publique dans l’interface du modem.
  • Restrictions UFW après réinstallation — résolues par l’ajout de règles d’autorisation explicites.
  • Accès LAN via VPN impossible — résolu en activant le mode NAT dans les contrôles d’accès OpenVPN AS.

Plan d’action (prochaine leçon)

  • Finaliser le tableau de bord Heimdall.
  • Mettre en place la supervision Netdata accessible via le VPN.
Leçon du 25/11/2025

03/12/2025 — Séance

Tâches réalisées

  • Résolution de l’accès SSH : diagnostic du “Connection refused” (service SSH, règles UFW) et validation de l’adresse locale 192.168.31.18.
  • Déploiement OpenVPN AS : correction de la commande docker run (volume local ~/openvpn-data) et lancement avec CAP_NET_ADMIN.
  • Configuration de l’interface OpenVPN : accès à :943/admin, création d’un utilisateur et définition du mot de passe client.
  • DNS LWS : ajout d’un enregistrement A pointant vpn.stordeur-martin.be vers l’IP publique, mise à jour du hostname dans OpenVPN AS.

Difficultés rencontrées

  • SSH bloqué (service ou pare-feu) — solution : redémarrage du service et ajustement UFW.
  • Erreur de volume Docker (-v <path to data>) — solution : création d’un dossier persistant dans le home.
  • Confusion IP locale vs publique — nécessité de distinguer 192.168.31.18 (LAN) et l’IP WAN pour la configuration DNS.
Leçon du 03/12/2025

04/12/2025 — Séance

Tâches réalisées

  • Mise à jour de l’infrastructure réseau côté FAI (mode bridge).
  • Mise en place d’un pare-feu sur le routeur XIAOMI-1.
  • Redirection de ports pour les API.
Topologie réseau — séance du 04/12/2025
Leçon du 04/12/2025