← Retour à l'administration Guide — Ajouter un boîtier

Firmware prêt à l'emploi

Téléchargez le zip, modifiez config.h, flashez. C'est tout.

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.

1

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.

ComposantModèleRôlePrix indicatif
Carte tout-en-unLilyGO T-SIM7600G-HESP32 + modem SIM7600 intégrés — Wi-Fi, SMS, HMAC, HTTP~45 €
Carte SIMSIM voix/SMS (Orange, SFR, Bouygues…)Numéro qui reçoit les SMS 2FAAbonnement
AlimentationUSB-C 5 V / 2 A minimumAlimente la carte~5 €
PCWindows / macOS / LinuxInstallation 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.

2

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.

  1. 1
    Insé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.
  2. 2
    Brancher 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.
  3. 3
    Installer 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.

3

Installer Arduino IDE

  1. 1
    Té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.
  2. 2
    Ajouter 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
  3. 3
    Installer le paquet ESP32 Allez dans Outils → Type de carte → Gestionnaire de cartes, cherchez esp32 (par Espressif Systems), cliquez Installer. L'installation prend quelques minutes.
  4. 4
    Sé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.
4

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).

5

Télécharger le firmware

  1. 1
    Télécharger le ZIP Cliquez sur le bouton Télécharger le ZIP en haut de cette page. Le fichier contient firmware.ino et config.h.
  2. 2
    Créer un dossier firmware Arduino IDE exige que le fichier .ino soit dans un dossier du même nom. Décompressez le ZIP dans un dossier nommé exactement firmware (sans espace, sans accent).
  3. 3
    Ouvrir dans Arduino IDE Double-cliquez sur firmware/firmware.ino — ou dans Arduino IDE : Fichier → Ouvrir. Vous verrez deux onglets : firmware.ino et config.h.
6

Configurer config.h

Cliquez sur l'onglet config.h dans Arduino IDE et modifiez ces valeurs :

ParamètreCe qu'il faut mettreExemple
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.

7

Flasher la carte ESP32

  1. 1
    Brancher 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: COM3 sur Windows, /dev/cu.usbserial-… sur macOS).
  2. 2
    Sélectionner le port Outils → Port → choisissez le port correspondant à l'ESP32.
  3. 3
    Vé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é.
  4. 4
    Té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.
  5. 5
    Attendre 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.

8

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)

CodeSignificationAction
201SMS enregistré avec succèsOK — le SMS apparaît dans l'interface
200 / 409SMS déjà connu (doublon)Normal — pas d'action
401Clé HMAC incorrecteVérifier HMAC_SECRET dans config.h vs .env serveur
-1Pas de Wi-FiSMS perdu — vérifier WIFI_SSID / WIFI_PASSWORD
5xxErreur serveurVé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 :

  1. 1
    Tester 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. 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_ID que 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èmeCause probableSolution
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