Connaitre sa consommation pour pro - arnaudrco/exemples GitHub Wiki
8 dépôts github : exemples-de-montages avec les ateliers et projets réalisés au repair café festisol animations et projets réalisés pendant FESTISOL et à la MJC CROUS-micro-python animations et projets commencés au CROUS et poursuivis pendant les ateliers numériques piano une nouvelle passion réalisée à coup de marteau visio organigramme et communication jouets réparations, récréations mathématiques, création de nouveaux jouets developpement-voiture robot, intelligence artificielle raspberry-picomicro-python Repair Café d'Orsay Blog ateliers numériques
il faut savoir bien souder sur des micros composants ; suivez le guide écrit par Franco ; il suffit d'avoir une prise WIFI pour avoir sa consommation ou sa production d'énergie solaire
Prise du commerce
Les prises du commerce exigent une application sur smartphone pas vraiment pratique. L'acces par l'interface TUYA des prises connectée est difficile, Franco a réalisé une installation avec OPENBEKEN ; la prise apparait sur le réseau WIFI sur une simple adresse 192.168.1.198
avec un simple esp32 j'affiche ma production électrique ( 6 W ) et j'ai même un historique de ma production pour l'ensemble de la journée !
accès au logiciel interne
l'opération est délicate sur les prise récentes
Connaître sa consommation
Bien connaître sa consommation est une première étape pour mieux consommer.
dialogue avec notre prise
la prise est connectée à une adresse : ici 192.168.1.174 ; en tapant sur un navigateur en donnant l'adresse de ma prise connectée
192.168.1.174/cm?cmnd=STATUS%208
j'obtiens le résultat
Le code interprète les données "JSON" pour les afficher sur l'écran OLED
{ "StatusSNS": { "Time": "2026-03-22T17:05:13", "ENERGY": { "TotalStartTime": "2026-03-21T23:08:15", "Total": 0.355, "Yesterday": 0, "Today": 0.355, "Power": 27, "ApparentPower": 36, "ReactivePower": 24, "Factor": 0.75, "Voltage": 239, "Current": 0.152 } } }
Affichage personnalisé
Connaître sa production avec un panneau solaire ? visualisation des variations par pas de 5 minutes ; suivez le guide avec Franco
Affichage de l'historique
Pourquoi ne pas écrire sa propre interface avec une prise connectée BK7231N
l'interface TUYA d'origine n'est pas pratique ; Franco a reprogrammé la prise
https://github.com/openshwprojects/OpenBK7231T_App
OpenBK7231T_App puis dans la partie Introduction choisir BK7231N. Prise reprogrammée avec BK231GUIflashtool + serveur avec une carte esp32
lecture des informations
une premiere interface
guide
Pas simple ; Franco a rédigé une documentation ; plusieurs niveaux et des illustrations
Guide Express : Dashboard solaire sur ESP32 1️⃣ Préparer l’ESP32 Connecte ton ESP32 à ton PC.
Attention, il faut introduire dans "Connexion WiFi" les identifiants
wlan.connect("NUMERICABLE-63","xxxx") # <-- ton SSID / mot de passe
Reprogrammation d'une prise WiFi (T34 / BL0937)
Ce guide récapitule toutes les étapes pour transformer votre prise Tuya LSPA8/LSPA9 (puce Beken CB2S / lecteur BL0942) en une prise 100% locale sous OpenBeken, puis la piloter avec votre ESP32 en MicroPython.
1. Le matériel à acheter (Adaptateur USB vers Série TTL)
Pour flasher la carte mère de la prise sans la griller, il vous faut un adaptateur USB qui communique obligatoirement en 3.3V.
Mots-clés pour la recherche (Amazon, AliExpress, etc.) :
Module FTDI FT232RL USB vers TTLModule CH340G USB vers Serie RS232 TTLAdaptateur CP2102 USB TTL
⚠️ Le point critique lors de l'achat :
Vérifiez sur les photos du produit qu'il y a un "Jumper" (un petit cavalier jaune ou noir qui relie deux broches) ou un interrupteur permettant de basculer entre 5V et 3.3V (souvent annoté VCC). Ou alors, un module qui ne sort QUE du 3.3V. Si vous injectez du 5V dans la puce CB2S, elle sera définitivement détruite.
N'oubliez pas de prendre quelques fils de connexion (type "Dupont Femelle-Mâle" ou "Femelle-Femelle") que vous pourrez dénuder d'un côté pour les souder temporairement sur la prise.
2. Le branchement et la soudure (Hors Tension 220V !)
- Ouvrez délicatement la prise LSPA8.
- Repérez le module WiFi vertical nommé CB2S.
- Effectuez ces 4 soudures entre la puce et votre nouvel adaptateur USB fraîchement réglé sur 3.3V :
| Adaptateur USB (3.3V) | Puce CB2S (LSPA8) |
|---|---|
| Broche RX | Broche TX1 |
| Broche TX | Broche RX1 |
| Broche GND | Broche GND |
| Broche 3.3V | Broche 3V3 (Ne connectez ce fil qu'au dernier moment pour lancer le flashage) |
3. Le Flashage sous Windows (Méthode UART)
- Téléchargez le firmware : Allez sur le GitHub OpenBeken et prenez le fichier
.binQIO pour BK7231N (ex:OpenBK7231N_QIO_1.xx.xxx.bin). Ce fichier QIO est spécialement prévu pour le flashage filaire (UART). - Téléchargez le logiciel : Récupérez le BK7231GUIFlashTool et lancez
BK7231GUIFlashTool.exe. - Configurez l'outil :
* Port : Votre port COM (ex: COM3)
* Baud Rate :
115200(Souvent beaucoup plus stable que les valeurs par défaut) * Chip Type :BK7231N* Firmware : Le fichier.bintéléchargé juste avant. - Le moment fatidique : * Assurez-vous que le fil 3.3V n'est PAS encore branché à la puce. * Cliquez sur le bouton "Do backup and flash new". * Le texte "Getting bus... (now, please do reboot by CEN or by power off/on)" apparait dans la console. Immédiatement, connectez le fil 3.3V à la puce CB2S pour qu'elle s'allume ! * Le téléchargement démarre et indique Success! à la fin. * Si ça échoue (Failed ou Getting bus failed... X/100), débranchez le fil 3.3V de la puce (attendez 2/3 secondes), puis rebranchez-le au moment précis où le texte défile. C'est une question de timing !
4. Configuration finale et capteur de consommation
- Dessoudez les fils, remontez la prise dans son plastique protecteur et branchez-la au mur (220V).
- Avec un téléphone, connectez-vous au nouveau réseau WiFi
OpenBeken_xxxx. - Allez sur le navigateur :
http://192.168.4.1. - Dans Config > Config WiFi, connectez la prise à votre Box internet (SSID / Mot de passe). Retrouvez sa nouvelle IP locale, et reconnectez-vous à la prise (ex:
192.168.1.50). - Dans Config > Configure Startup (ou Custom Command), écrivez
startDriver BL0942et enregistrez. - Dans Config > Configure Module, assignez les pins physiques (extraites de votre configuration d'usine) :
* Pin 6 :
Btn(Bouton), Index 1 * Pin 8 :LED_n(Led statut WiFi), Index 1 * Pin 26 :Rel(Relais), Index 1 - Cliquez sur Restart. Au redémarrage, vous devriez entendre le "clac" de la LSPA8 via l'interface web, et lire la Tension / Intensité / Puissance !
5. Le code MicroPython test pour votre ESP32
Dans l'application Thonny, utilisez ce code (en remplaçant l'IP de la LSPA8 et vos identifiants WiFi) :
import network
import time
import urequests
import ujson
# Vos paramètres
WIFI_SSID = "XXX"
WIFI_PASS = "XXX"
PRISE_IP = "192.168.100"
def connect_wifi():
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():
print("Connexion au point d'accès WiFi...")
wlan.connect(WIFI_SSID, WIFI_PASS)
while not wlan.isconnected():
time.sleep(1)
print(".", end="")
print("\nConnecté ! IP de l'ESP32:", wlan.ifconfig()[0])
def lire_consommation():
try:
url = f"http://{PRISE_IP}/cm?cmnd=Status%208" # Lecture de la puce BL0942 via l'API Tasmota/OBK
r = urequests.get(url, timeout=5)
donnees = ujson.loads(r.text)
r.close()
if "StatusSNS" in donnees and "ENERGY" in donnees["StatusSNS"]:
energie = donnees["StatusSNS"]["ENERGY"]
print(f"| Tension : {energie.get('Voltage')} V")
print(f"| Courant : {energie.get('Current')} A")
print(f"| Puissance : {energie.get('Power')} W")
else:
print("Capteur de puissance non lu.")
except Exception as e:
print("Erreur:", e)
def set_prise(etat):
# etat doit être True (Allumer) ou False (Eteindre)
val = "On" if etat else "Off"
try:
url = f"http://{PRISE_IP}/cm?cmnd=Power1%20{val}"
r = urequests.get(url, timeout=5)
print(f"La prise a reçu l'ordre : {val}")
r.close()
except Exception as e:
print("Erreur de communication:", e)
# Test :
connect_wifi()
print("\n--- Allumage de la prise LSPA8 ---")
set_prise(True)
time.sleep(3) # On laisse le temps au capteur de mesurer l'appareil branché dessus
print("\n--- Infos de consommation ---")
lire_consommation()
time.sleep(3)
print("\n--- Extinction de la prise LSPA8 ---")
set_prise(False)
6. Bonus : Calibrer le capteur de consommation
Puisque le firmware d'origine Tuya a été effacé et que vous avez installé OpenBeken dessus, les réglages d'étalonnage usine de votre prise ont été perdus (c'est le cas sur toutes les prises génériques sans puce dédiée !). Voici comment recalibrer votre LSPA8 pour avoir des valeurs parfaites :
-
La Tension (V) : Mesurez la tension de la prise avec votre multimètre (ex:
231.6). * Ouvrez votre navigateur internet PC/Téléphone et entrez cette URL (en changeant l'IP ESP32 si besoin) : *http://192.168.1.5/cm?cmnd=VoltageSet%20231.6 -
La Puissance (W) : Branchez tout de suite un appareil dont la consommation est fixe et connue (ex: une vraie ampoule à filament de 60W, ou un convecteur 2000W) et allumez la prise (très important). * Entrez l'URL (pour notre exemple d'ampoule 60W) : *
http://192.168.1.5/cm?cmnd=PowerSet%2060.0 -
Le Courant (A) : L'intensité est très simple à calculer mathématiquement (Puissance divisée par Tension). Pour notre exemple avec l'ampoule 60W : 60W / 231.6V =
0.259A. * Entrez l'URL : *http://192.168.1.5/cm?cmnd=CurrentSet%200.259
Et c'est tout ! OpenBeken va automatiquement recalculer ses constantes de mesure internes à la volée, sans que vous n'ayez besoin de redémarrer. Vos relevés sur l'interface ESP32 seront désormais identiques à votre multimètre !
Reprogrammation d'une prise WiFi (T34 / BL0942)
Pour reprogrammer une prise avec une puce T34 (BK7231N) et un capteur d'énergie BL0937 sous OpenBeken, la procédure de flashage du microcontrôleur reste la même, mais la configuration matérielle change complètement par rapport au BL0942. Voici ce qu'il faut savoir concernant ce nouveau projet :
- La différence matérielle (Attention au Flashage !) Contrairement au BL0942 qui utilise une liaison série (UART RX/TX), le BL0937 communique via des impulsions (PWM) et nécessite 3 broches GPIO du T34. ⚠️ Conséquence directe : L'astuce matérielle qui consistait à se brancher sur les broches du BL0942 pour flasher le T34 ne fonctionnera pas ici. Vous devez impérativement vous souder aux broches TX1 et RX1 directes de la puce T34 (ou utiliser la méthode logicielle Cloudcutter si le firmware d'origine le permet).
- Configuration sous OpenBeken
Une fois OpenBeken installé, il ne s'agit plus de configurer un UART, mais d'assigner les broches manuellement.
- Allez dans Config -> Configure Module.
- Identifiez quelles broches de votre circuit sont reliées au BL0937 (en cherchant votre modèle sur internet ou en suivant les pistes du PCB) et assignez les rôles suivants : ◦ BL0937_CF (Impulsions de puissance active) ◦ BL0937_CF1 (Impulsions de tension ou courant) ◦ BL0937_SEL (Sélecteur tension/courant)
- Allez dans Config -> Startup Command (Autoexec.bat) et ajoutez la ligne suivante pour lancer le pilote à chaque démarrage : text startDriver BL0937
- Calibration obligatoire Le BL0937 dépendant des résistances physiques de la carte, il est indispensable de le calibrer avec une charge résistive (comme une vieille ampoule à incandescence de 60W, par exemple). Dans le terminal d'OpenBeken, entrez les commandes (à adapter à vos valeurs) : • VoltageSet 230 (Si votre secteur est à 230V) • PowerSet 60 (Si votre charge fait 60W) • CurrentSet 0.26 (Résultat de 60/230)
Ce projet documente la procédure pour libérer une prise WiFi intelligente utilisant une puce T34 et un circuit de mesure d'énergie BL0942 du cloud d'origine, en la flashant avec un firmware open-source (comme OpenBeken).
1. Connaître le Matériel
- Puce T34 : Les modules nommés "T34" (par exemple chez Tuya) contiennent généralement un microcontrôleur Beken BK7231N. Contrairement aux ESP8266/ESP32, on ne peut pas y installer Tasmota directement. La meilleure alternative est OpenBeken (OpenBK7231T/N), qui est très similaire à Tasmota.
- Puce BL0942 : C'est le circuit intégré qui mesure la tension, le courant et la puissance. Dans OpenBeken, il existe un pilote natif pour cette puce.
2. Méthodes de Flash (Reprogrammation)
Pour installer OpenBeken sur un BK7231N, deux méthodes existent :
Méthode A : Flash sans soudure (OTA via Tuya-Cloudcutter)
Si la prise a un firmware Tuya assez ancien, il est possible d'exploiter une faille pour injecter OpenBeken depuis un Raspberry Pi ou une machine Linux en Wi-Fi.
- Préparer une machine Linux avec adaptateur WiFi (Raspberry Pi recommandé).
- Cloner le repo tuya-cloudcutter
- Exécuter le script et suivre les instructions pour "exploiter" la prise et flasher un firmware OpenBeken (fichier
.binpour BK7231N).
Méthode B : Flash par liaison série (Soudure / Filaire)
Si Cloudcutter ne fonctionne pas (firmware patché par le fabricant), vous devrez ouvrir la prise (ATTENTION: DEBRANCHEZ DU SECTEUR) et utiliser un convertisseur USB-TTL (3.3V).
- Souder 4 fils sur le module T34 : 3V3, GND, TX, RX.
- Connecter au convertisseur USB-TTL (Croiser : TX->RX, RX->TX).
- Utiliser l'outil BK7231Flasher ou le script python
hid_download_py. - Injecter le firmware OpenBeken.
3. Configuration après le Flash (OpenBeken)
Une fois OpenBeken installé, la prise va générer un réseau WiFi.
- Connectez-vous à ce réseau WiFi.
- Allez sur
192.168.4.1. - Configurez votre réseau WiFi domestique.
- Une fois reconnectée à votre routeur, allez dans l'onglet Config -> Configure Module.
Configuration du capteur BL0942
Dans OpenBeken, allez dans Config -> Autoexec.bat (ou lancez l'outil Web application) et activez le pilote du BL0942 avec cette commande :
startDriver BL0942
Il faudra trouver sur quelles broches (Pins) RX/TX internes le BL0942 est connecté au module T34, et les configurer dans l'interface (souvent BL0942_RX et BL0942_TX).
4. Calibration de l'énergie
Il faudra calibrer la tension, le courant et la puissance avec une charge connue (ex: une ampoule classique de 60W). Les commandes à taper dans le terminal Web d'OpenBeken sont :
VoltageSet 230(Si votre secteur est à 230V)PowerSet 60.0(Si votre ampoule fait 60 Watts)CurrentSet 0.26(Résultat de 60W / 230V)
Remise à zéro de l'énergie (RAZ)
Pour remettre à zéro le compteur de consommation totale enregistré par la prise, utilisez la commande suivante dans le terminal d'OpenBeken :
EnergyCntReset
Astuce de Câblage Matérielle (Validée lors de ce projet)
Si les broches de flashage du T34 sont inaccessibles (souvent situées sous le module soudé), il est possible de se brancher directement sur les pattes du circuit d'énergie BL0942.
Voici le câblage testé et approuvé depuis le convertisseur USB-série vers la puce BL0942 :
- +3,3V USB ➔ Pin 1 (BL0942)
- GND USB ➔ Pin 5 (BL0942)
- RX USB ➔ Pin 9 (BL0942 RX)
- TX USB ➔ Pin 10 (BL0942 TX) (Note de câblage : TX vers TX et RX vers RX. Cela fonctionne car les pistes du circuit imprimé entre le BL0942 et le T34 sont déjà croisées d'usine).
Amusez-vous à ajouter une une-lampe-connectée-LED-multicolore