Même code pour tous les boîtiers. Seul config.h change d'un boîtier à l'autre. Une fois flashé et branché, le boîtier apparaît automatiquement dans l'interface — aucune action supplémentaire n'est nécessaire côté serveur.
Matériel requis
LilyGO T-SIM7600G-H — carte tout-en-un : l'ESP32 et le modem SIM7600G-H sont intégrés sur la même carte. Aucun câblage entre composants. Insérez la SIM, branchez en USB et flashez.
| Composant | Modèle | Rôle | Prix indicatif |
|---|---|---|---|
| Carte tout-en-un | LilyGO T-SIM7600G-H | ESP32 + modem SIM7600 intégrés — Wi-Fi, SMS, HMAC, HTTP | ~45 € |
| Carte SIM | SIM voix/SMS (Orange, SFR, Bouygues…) | Numéro qui reçoit les SMS 2FA | Abonnement |
| Alimentation | USB-C 5 V / 2 A minimum | Alimente la carte | ~5 € |
| PC | Windows / macOS / Linux | Installation Arduino IDE + flash | — |
Alimentation : le modem SIM7600 peut consommer jusqu'à 2 A en pic. Utilisez un chargeur USB 2 A minimum — un port USB de PC seul peut être insuffisant une fois le modem actif.
Préparer la carte LilyGO
La LilyGO T-SIM7600G-H intègre l'ESP32 et le modem sur la même PCB. Aucun câblage n'est nécessaire.
-
1Insérer la carte SIM Le slot nano-SIM se trouve sur le côté de la carte. Insérez la SIM avant de brancher l'alimentation — le modem doit démarrer avec la SIM présente pour l'initialiser correctement.
-
2Brancher en USB-C Connectez la carte à votre PC via un câble USB-C. La carte apparaîtra comme port série dans Arduino IDE.
-
3Installer le driver si nécessaire (Windows) Si le port n'apparaît pas, installez le driver CP210x USB to UART (Silicon Labs). Sur macOS et Linux il n'est généralement pas nécessaire.
Pas de câblage. L'ESP32 et le modem communiquent en interne via Serial1 (broches 26/27). Les broches sont pré-configurées dans config.h et ne doivent pas être modifiées.
Installer Arduino IDE
-
1Télécharger Arduino IDE 2.x Rendez-vous sur arduino.cc/en/software et téléchargez la version pour votre OS (Windows, macOS ou Linux). Installez-le normalement.
-
2Ajouter le support ESP32 Dans Arduino IDE : Fichier → Préférences, collez cette URL dans URL de gestionnaire de cartes supplémentaires :
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json -
3Installer le paquet ESP32 Allez dans Outils → Type de carte → Gestionnaire de cartes, cherchez esp32 (par Espressif Systems), cliquez Installer. L'installation prend quelques minutes.
-
4Sélectionner la carte Outils → Type de carte → Gestionnaire de cartes, cherchez LILYGO T-SIM7600. Si elle n'apparaît pas, sélectionnez ESP32 Arduino → ESP32 Dev Module — le firmware fonctionne également avec ce profil générique.
Installer les librairies
Aucune librairie externe à installer. Le firmware n'utilise que des bibliothèques incluses dans le paquet ESP32 Espressif : WiFi, HTTPClient, et mbedtls/md.h (HMAC-SHA256). Tout est déjà présent après l'étape 3.
Si Arduino IDE signale une librairie manquante, vérifiez que le paquet esp32 by Espressif Systems est bien installé (étape 3 ci-dessus).
Télécharger le firmware
-
1Télécharger le ZIP Cliquez sur le bouton Télécharger le ZIP en haut de cette page. Le fichier contient
firmware.inoetconfig.h. -
2Créer un dossier
firmwareArduino IDE exige que le fichier.inosoit dans un dossier du même nom. Décompressez le ZIP dans un dossier nommé exactementfirmware(sans espace, sans accent). -
3Ouvrir dans Arduino IDE Double-cliquez sur
firmware/firmware.ino— ou dans Arduino IDE : Fichier → Ouvrir. Vous verrez deux onglets :firmware.inoetconfig.h.
Configurer config.h
Cliquez sur l'onglet config.h dans Arduino IDE et modifiez ces valeurs :
| Paramètre | Ce qu'il faut mettre | Exemple |
|---|---|---|
BOX_ID |
Identifiant unique de ce boîtier. Lettres minuscules, chiffres, tirets. Doit correspondre exactement au champ "Identifiant technique" dans l'interface. | "boitier-paris-02" |
RECIPIENT_MSISDN |
Numéro de téléphone de la SIM insérée dans le modem. Format international obligatoire. | "+33612345678" |
API_BASE_URL |
URL publique du serveur. C'est l'URL ngrok affichée dans le terminal au démarrage du serveur. Sans slash à la fin. | "https://abc123.ngrok-free.app" |
HMAC_SECRET |
Clé secrète partagée. C'est la valeur de la variable d'environnement HMAC_SECRET définie dans le fichier .env du serveur. |
"ma-cle-secrete" |
WIFI_SSID |
Nom du réseau Wi-Fi où sera installé le boîtier. | "Modulotech-WiFi" |
WIFI_PASSWORD |
Mot de passe du réseau Wi-Fi. | "monmotdepasse" |
Exemple de config.h rempli
// config.h — Boîtier Paris Bureau 2
#define BOX_ID "boitier-paris-02"
#define RECIPIENT_MSISDN "+33612345678"
#define API_BASE_URL "https://abc123.ngrok-free.app"
#define HMAC_SECRET "ma-cle-secrete-hmac"
#define WIFI_SSID "Modulotech-WiFi"
#define WIFI_PASSWORD "monmotdepasse"
Ne partagez jamais config.h avec un tiers — il contient la clé HMAC et le mot de passe Wi-Fi. Ne le commitez pas dans un dépôt Git public.
Flasher la carte ESP32
-
1Brancher l'ESP32 au PC par USB Utilisez un câble USB-A vers micro-USB (ou USB-C selon votre DevKit). L'ESP32 doit apparaître dans Outils → Port (ex:
COM3sur Windows,/dev/cu.usbserial-…sur macOS). -
2Sélectionner le port Outils → Port → choisissez le port correspondant à l'ESP32.
-
3Vérifier la compilation Cliquez sur le bouton Vérifier (icône ✓). Si des erreurs apparaissent, vérifiez que les librairies sont bien installées (étape 4) et que le bon type de carte est sélectionné.
-
4Téléverser Cliquez sur Téléverser (icône →). Arduino IDE compile puis envoie le firmware. Certains ESP32 nécessitent de maintenir le bouton BOOT appuyé pendant le téléversement — relâchez-le quand "Connecting..." s'affiche.
-
5Attendre la fin Le message "Hard resetting via RTS pin…" indique que le flash s'est terminé avec succès. La carte redémarre automatiquement avec le nouveau firmware.
Upload Speed recommandé : dans Outils, réglez la vitesse sur 921600 bps pour un flash plus rapide. En cas d'erreur, baissez à 115200.
Vérifier le fonctionnement
Ouvrez le Moniteur Série d'Arduino IDE (Outils → Moniteur Série, vitesse 115200). Vous devez voir :
=== Demarrage ===
WiFi... OK - 192.168.1.42
Modem...
Modem OK
SIM: +CPIN: READY
Signal: +CSQ: 18,0
Reseau GSM...
CREG: +CREG: 0,1
GSM OK
Pret a recevoir des SMS !
"Pret a recevoir des SMS !" = le boîtier est opérationnel. Il apparaîtra automatiquement dans l'interface dès qu'il reçoit son premier SMS.
Codes de retour HTTP attendus (lors de l'envoi d'un SMS)
| Code | Signification | Action |
|---|---|---|
201 | SMS enregistré avec succès | OK — le SMS apparaît dans l'interface |
200 / 409 | SMS déjà connu (doublon) | Normal — pas d'action |
401 | Clé HMAC incorrecte | Vérifier HMAC_SECRET dans config.h vs .env serveur |
-1 | Pas de Wi-Fi | SMS perdu — vérifier WIFI_SSID / WIFI_PASSWORD |
5xx | Erreur serveur | Vérifier que le serveur est lancé et ngrok actif |
Dans l'interface web
Une fois le boîtier opérationnel, faites-le apparaître dans l'interface :
-
1Tester avec un vrai SMS Envoyez un SMS au numéro de la SIM depuis un autre téléphone. Le boîtier le transfère au serveur et il apparaît automatiquement en temps réel dans l'interface — aucune action supplémentaire n'est nécessaire.
-
2(Optionnel) Lui donner un nom Pour associer un nom affiché au boîtier, cliquez sur "Ajouter un boîtier" dans l'onglet Boîtiers et saisissez le même
BOX_IDque dans config.h. Cela n'est pas obligatoire — le boîtier fonctionne sans cette étape.
Pour arrêter un boîtier : débranchez simplement l'alimentation. Il passera en statut "hors ligne" au bout de quelques minutes. Aucune action dans l'interface n'est nécessaire.
Dépannage fréquent
| Problème | Cause probable | Solution |
|---|---|---|
| La carte n'est pas reconnue par le PC | Driver USB manquant (Windows) | Installer le driver CP210x USB to UART (Silicon Labs) |
| Le moniteur série affiche du charabia | Vitesse incorrecte | Régler à 115200 bps dans le menu déroulant du moniteur série |
| "ECHEC WiFi" au démarrage | SSID ou mot de passe incorrect, ou signal faible | Vérifier WIFI_SSID et WIFI_PASSWORD dans config.h. Rapprocher du routeur. |
| HTTP 401 lors de l'envoi d'un SMS | Clé HMAC incorrecte | Copier exactement la valeur de HMAC_SECRET du fichier .env serveur dans config.h |
| "Modem silencieux" au démarrage | Mauvaise alimentation ou carte non alimentée | Utiliser un chargeur USB 2 A minimum. Le modem a besoin de puissance au démarrage. |
| SMS reçu mais non envoyé au serveur | L'URL ngrok a changé ou le serveur est arrêté | Mettre à jour API_BASE_URL dans config.h et reflasher. Vérifier que le serveur et ngrok tournent. |
| Le boîtier n'apparaît pas dans l'interface | Aucun SMS reçu depuis le flash | Envoyer un SMS test au numéro de la SIM — le boîtier apparaît à la première réception |