Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ESP32 TIC Receiver

Récepteur et décodeur de Télé-Information Client (TIC) Linky pour ESP32, avec interface web d'affichage en temps réel. Actuellement supporté : mode TIC Historique (1200 baud). La TIC Standard (9600 baud) avec détection automatique du baudrate est prévue dans une version ultérieure.

Version Platform License


Fonctionnalités

  • Réception TIC Historique — 1200 baud, 7E1, format ERDF-NOI-CPT_02E
  • Parser de trames — machine à états STX/ETX, découpage label/valeur/checksum
  • Vérification checksum ligne par ligne, avec affichage du caractère attendu en cas d'erreur
  • Interface web rafraîchie automatiquement toutes les 1,5s
    • Tableau de tous les champs reçus avec indicateur ✓/✗ par ligne
    • Compteur de trames reçues et d'erreurs checksum
    • Affichage de la trame brute décodée (STX, LF, CR, ETX lisibles)
  • IP fixe configurable

Matériel

Composant Référence
Microcontrôleur ESP32 (testé sur ESP32 Mini1)
Port TIC HardwareSerial(1) — RX=GPIO19, TX=GPIO18

Câblage

Simulateur / Compteur Linky        ESP32 Récepteur
──────────────────────────         ────────────────
GPIO19 TX  ────────────────────►  GPIO19 (RX1)
GND        ────────────────────►  GND

Note : Un vrai compteur Linky sort la TIC via un optocoupleur. Selon le circuit récepteur utilisé, il peut être nécessaire d'activer l'inversion du signal série :

TICSerial.begin(1200, SERIAL_7E1, RX1, TX1, true);  // true = inversion

Configuration réseau

Modifier dans src/tic_receiver.ino :

const char* ssid     = "votre_ssid";
const char* password = "votre_password";
IPAddress local_IP(192, 168, 1, 151);  // IP fixe du récepteur
IPAddress gateway(192, 168, 1, 1);
IPAddress subnet(255, 255, 255, 0);
IPAddress dns(8, 8, 8, 8);

Installation

Arduino IDE

  1. Installer le support ESP32 via le Gestionnaire de cartes
  2. Sélectionner la carte : ESP32 Dev Module (ou équivalent)
  3. Ouvrir src/tic_receiver.ino
  4. Modifier les paramètres WiFi
  5. Compiler et téléverser

Paramètres de compilation recommandés

Paramètre Valeur
Board ESP32 Dev Module
Upload Speed 921600
Flash Size 4MB

Utilisation

  1. Alimenter l'ESP32
  2. Connecter le TX du simulateur (ou compteur Linky) au GPIO19
  3. Accéder à l'interface web : http://192.168.1.151
  4. Le tableau se rafraîchit automatiquement toutes les 1,5s

Interface web

┌─────────────────────────────────────────────┐
│  TIC Receiver — TIC_RECEIVER 03/06/2026     │
│  Trames: 42 | Erreurs CS: 1 | Dernière: 63s │
├──────────────┬──────────────┬───────────────┤
│ Label        │ Valeur       │ CS            │
├──────────────┼──────────────┼───────────────┤
│ ADCO         │ 123456789012 │ ✓             │
│ OPTARIF      │ HC..         │ ✓             │
│ ISOUSC       │ 30           │ ✓             │
│ ...          │ ...          │ ...           │
│ MOTDETAT     │ 000000       │ ✓             │
├──────────────┴──────────────┴───────────────┤
│ Trame brute :                               │
│ <STX><LF>ADCO 123456789012 '<CR>...         │
└─────────────────────────────────────────────┘

Architecture du code

Machine à états TIC

WAIT_STX ──── 0x02 (STX) ────► IN_FRAME
                                   │
                          0x0A (LF) │ début de ligne
                          0x0D (CR) │ fin de ligne → parseTICLine()
                          0x03 (ETX)│ fin de trame → publication
                                   │
                              WAIT_STX ◄───────────────┘

Format d'une ligne TIC Historique

LF  <étiquette>  SP  <valeur>  SP  <checksum>  CR
0x0A             0x20          0x20             0x0D

Calcul du checksum

// Somme des octets de "étiquette valeur " (espace inclus)
uint8_t sum = 0;
for chaque octet: sum += octet;
checksum = (sum & 0x3F) + 0x20;  // résultat : caractère ASCII imprimable 0x20-0x5F

Évolutions prévues

v2.0 — TIC Standard + détection automatique

  • Support du mode TIC Standard (9600 baud, séparateur HT 0x09, horodate)
  • Détection automatique du baudrate : le récepteur teste 1200 puis 9600 baud et se synchronise sur le flux détecté
  • Affichage du mode détecté sur la page web
  • Parser étendu pour les champs Standard (ADSC, VTIC, IRMS1, URMS1, SINSTS, STGE...)

v2.1 — Améliorations interface

  • Historique des dernières trames
  • Export CSV des données reçues
  • Alertes sur checksum invalide

Compatibilité

Testé avec :

  • esp32-linky-simulator — simulateur TIC ESP32-C3
  • Compteur Linky réel (TIC Historique via optocoupleur)

Structure du projet

esp32-tic-receiver/
├── src/
│   └── tic_receiver.ino       # Code source principal
├── hardware/
│   └── pinout.md              # Mapping des GPIO
├── docs/
│   └── ERDF-NOI-CPT_02E.pdf  # Spec TIC Historique (ERDF 2010)
├── README.md
├── CHANGELOG.md
└── LICENSE

Références


Licence

MIT — voir LICENSE


Projet Papymakers — support@papymakers.com

About

Récepteur de trames Linky (standard & historique) pour test

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages