← Toutes les études de cas
Projet client · mobile + IdO

Suivi de génératrice de secours

Démarrer une génératrice de secours depuis son téléphone, et savoir qu’elle a vraiment démarré.

Rôle
Application, backend, micrologiciel et conception matérielle
Technologies
Expo · React Native · Firebase · micrologiciel ESP32 (PlatformIO)
Statut
Application et micrologiciel terminés, installation sur place à venir
Écrans

La vraie application, avec des données fictives et des noms remplacés.

Fiche d’une génératrice en marche avec les boutons démarrer et arrêter, une jauge de tension, le courant et la charge
L’état en direct, avec démarrage et arrêt pour le personnel.
Une boîte de confirmation avant de démarrer la génératrice à distance
Le démarrage à distance demande toujours une confirmation.
Graphiques sur sept jours de la charge et de la tension de batterie, avec des filtres d’événements
Une semaine d’historique et le journal des événements.
La fiche de la génératrice en mode sombre
Le mode sombre.
01

Le problème

Un entrepreneur électricien installe des génératrices de secours pour maisons entières. Le Wi-Fi du fabricant ne fonctionne qu’en local : ni le propriétaire ni l’entrepreneur ne peuvent savoir à distance si l’appareil va bien, ni le démarrer avant une tempête.

L’entrepreneur voulait une application bilingue à son image pour ses clients, une vue d’ensemble de toutes les génératrices qu’il entretient, et du matériel que son propre électricien pourrait installer.

02

Ce que j’ai construit

Application clientÉtat en direct, heures de marche, tension de batterie et tuiles de défauts, graphiques et historique, alertes ouvertes, et demandes de service envoyées directement à l’entrepreneur.
Application de l’équipeToutes les génératrices regroupées par propriétaire, démarrage et arrêt à distance, attribution aux clients, archivage et journal d’audit de qui a fait quoi.
Micrologiciel du boîtierUn micrologiciel ESP32 pour un petit boîtier branché sur le contrôleur : portail de configuration Wi-Fi, identité de connexion propre, détection de marche et entrées de défaut anti-rebond.
Alertes et guide d’installationNotifications en français et en anglais pour les défauts, la batterie faible et les appareils devenus silencieux, plus une liste de pièces et un guide d’installation étape par étape pour l’électricien.
03

Comment ça fonctionne

Le boîtier et les applications ne se parlent jamais directement. Tout passe par Firestore, dont les règles de sécurité décident qui peut écrire quoi : l’équipe, les clients ou l’identité propre du boîtier.

État et démarrage / arrêt

Contrôleur de la génératriceFaisceau documenté
  • Signal de marche à 2 fils
  • Défauts alarme, huile, température et fréquence
  • Tension de batterie
Boîtier ESP32PlatformIO · Arduino
  • Relais de marche maintenu
  • Entrées de défaut anti-rebond
  • Interroge les commandes
FirestoreRègles de sécurité · 60+ tests
  • État et historique
  • Commandes
  • Alertes et journal d’audit
Applications équipe et clientExpo · React Native
  • État en direct
  • Démarrer / arrêter (équipe seulement)
  • Historique et alertes

Des alertes sans Cloud Functions

FirestoreÉtat des boîtiers
  • Signaux de vie
  • Commandes en attente
Balayage planifiéNode · chaque minute
  • Boîtiers silencieux
  • Commandes expirées
  • Alertes de seuil, sans doublons
Téléphone du clientNotifications Expo
  • Message dans la langue du client
04

Décisions clés

  1. Réussi veut dire que le moteur tourneUne commande passe d’en attente à reçue puis à terminée seulement quand la détection de marche confirme le changement. Sinon, le balayage la déclare expirée et lève une alerte plutôt que d’afficher un faux succès.
  2. Lire le manuel du fabricant avant d’acheter des piècesOn y a trouvé une entrée de démarrage / arrêt à 2 fils documentée et des sorties de défaut distinctes sur le faisceau du contrôleur. Le micrologiciel a été repensé autour de ce signal de marche maintenu plutôt que de simuler des boutons.
  3. Le forfait gratuit, par choixPas de Cloud Functions : un petit script lancé chaque minute gère la détection hors ligne, l’expiration des commandes, les alertes de seuil et les notifications. Les identifiants d’alerte sont déterministes : le relancer n’envoie jamais de doublon.
  4. Un capteur absent est absent, pas à zéroToutes les lectures sauf l’état de marche sont facultatives. Une installation de base n’affiche que ce qu’elle mesure vraiment, et d’autres marques de génératrices entrent dans le même schéma sans changer le code.
  5. Tester les règles avec les vraies requêtes de l’applicationUne règle qui passait tous les tests sur un seul document échouait pour la requête de liste d’un écran. Les tests couvrent maintenant exactement les requêtes et les lots que l’application envoie.
05

Où en est le projet

Aujourd’hui

L’application, le backend et le micrologiciel sont terminés, et le micrologiciel compile avec la vraie chaîne d’outils ESP32. La configuration Wi-Fi, la connexion, la détection de marche et la boucle de commandes peuvent toutes être testées sur l’établi avant de toucher à une génératrice.

Ensuite

L’installation sur place avec l’électricien de l’entrepreneur : confirmer la polarité des signaux de défaut sur l’appareil réel et valider le cycle complet démarrer, détecter, arrêter, détecter.

ExpoReact NativeTypeScriptZustandFirebase AuthFirestoreTests de règlesNotifications ExpoESP32PlatformIOC++i18n FR/EN

Un projet que des gens utiliseront tous les jours?

Je présenterai volontiers n’importe lequel de ces projets plus en détail, y compris les projets privés.