PZEM004T
Publié : 17 avr. 2020, 22:52
Bonjour
J'ai bidouillé un prog Arduino pour NodeMcu V3 (ESP8266) pour 3 PZEM-004T et une entrée TOR
Données récupérer sur les PZEM : Tension Courant Puissance Energie Fréquence et Facteur de puissance
Pour la création des dispositif sous domoticz s'est indiqué dans le prog ex : Tension (General Voltage) ou Puissance (Usage Electric) ou Energie (General Custom Sensor KWh) etc ...
Le prog est facilement paramétrable grace à la partie "Variables" :
Possibilité d'activer ou pas l'entrée TOR
Possibilité d'activer ou pas les PZEM 2 et 3
Possibilité de récupérer que les infos qui vous intéresse sur les PZEM : seulement la tension si ça vous chante
//Variables
const char* ssid ="NomduWifi";//SSID du Wifi
const char* password = "MotdePasse";//Mot de passe du Wifi
const String DZ1 = "GET /json.htm?type=command¶m=udevice&idx=";//Ne pas toucher
const String DZ2 = "&nvalue=0&svalue=";//Ne pas toucher
const String DZ3 = " HTTP/1.1";//Ne pas toucher
const String DZ4 = "&nvalue=";//Ne pas toucher
const String DZ5 = "&svalue=0 HTTP/1.1";//Ne pas toucher
const String AdrIP = "192.168.x.x";//Adresse IP de domoticz
const int Port = 8080;//Port de domoticz
//Temps d'attente entre 2 mesures
const int Temps = 5000;//5000 = 5 secondes
//Boucle
int Boucle;//Ne pas toucher
float Data;//Ne pas toucher
String IDX;//Ne pas toucher
String DataInput;//Ne pas toucher
int ChangEtat;//Ne pas toucher
//IDX des recepteurs dans domoticz
//D0 GPIO 16
const int EntreeActive = 1;//0= entree inactive 1=entree active
const String IDXI1 = "106";//IDX de l'interrupteur
int Input1 = 0;//Ne pas toucher
//D8 GPIO 15
const int RaZActif = 1;//0= RaZ inactif 1=RaZ actif
//PZEM004T n°1
const String IDX1A = "274";//IDX PZEM004T n°1 Tension (General Voltage) ou NIL si pas utilise
const String IDX2A = "275";//IDX PZEM004T n°1 Intensité (General Current) ou NIL si pas utilise
const String IDX3A = "276";//IDX PZEM004T n°1 Puissance (Usage Electric) ou NIL si pas utilise
const String IDX4A = "277";//IDX PZEM004T n°1 Energie (General Custom Sensor KWh) ou NIL si pas utilise
const String IDX5A = "278";//IDX PZEM004T n°1 Frequence (General Custom Sensor Hz) ou NIL si pas utilise
const String IDX6A = "279";//IDX PZEM004T n°1 Facteur de puissance (General Custom Sensor Cos Phi) ou NIL si pas utilise
//PZEM004T n°2
const int PZEM2Actif = 1;//0= PZEM004T n°2 inactif 1=actif
const String IDX1B = "280";//IDX PZEM004T n°2 Tension (General Voltage) ou NIL si pas utilise
const String IDX2B = "281";//IDX PZEM004T n°2 Intensité (General Current) ou NIL si pas utilise
const String IDX3B = "282";//IDX PZEM004T n°2 Puissance (Usage Electric) ou NIL si pas utilise
const String IDX4B = "283";//IDX PZEM004T n°2 Energie (General Custom Sensor KWh) ou NIL si pas utilise
const String IDX5B = "284";//IDX PZEM004T n°2 Frequence (General Custom Sensor Hz) ou NIL si pas utilise
const String IDX6B = "285";//IDX PZEM004T n°2 Facteur de puissance (General Custom Sensor Cos Phi) ou NIL si pas utilise
//PZEM004T n°3
const int PZEM3Actif = 1;//0= PZEM004T n°3 inactif 1=actif
const String IDX1C = "286";//IDX PZEM004T n°3 Tension (General Voltage) ou NIL si pas utilise
const String IDX2C = "287";//IDX PZEM004T n°3 Intensité (General Current) ou NIL si pas utilise
const String IDX3C = "288";//IDX PZEM004T n°3 Puissance (Usage Electric) ou NIL si pas utilise
const String IDX4C = "289";//IDX PZEM004T n°3 Energie (General Custom Sensor KWh) ou NIL si pas utilise
const String IDX5C = "290";//IDX PZEM004T n°3 Frequence (General Custom Sensor Hz) ou NIL si pas utilise
const String IDX6C = "291";//IDX PZEM004T n°3 Facteur de puissance (General Custom Sensor Cos Phi) ou NIL si pas utilise
En rouge les parties à adapter à votre installation
Cablage :
Les GND des 3 PZEM sur G du NodeMcu (au dessus de VU)
Les 5V des 3 PZEM sur VU du NodeMcu
Le RX du PZEM 1 sur D2
Le TX du PZEM 1 sur D1
Le RX du PZEM 2 sur D5
Le TX du PZEM 2 sur D3
Le RX du PZEM 3 sur D7
Le TX du PZEM 3 sur D6
Entrée Tor entre D0 et 3V + résistance de 1Kohm entre D0 et G
Dans arduino :
Type de Carte NodeMcu 1.0
Bibliothèque :
PZEM004Tv30 (à ajouter)
ESP8266WiFiMulti (déjà présente dans ardouino)
WiFiClient (déjà présente dans ardouino)
Le Prog :
en pièce jointe.
Modif je supprime toutes les anciennes version et ne laisse que la dernière avec la bibliothèque
J'ai bidouillé un prog Arduino pour NodeMcu V3 (ESP8266) pour 3 PZEM-004T et une entrée TOR
Données récupérer sur les PZEM : Tension Courant Puissance Energie Fréquence et Facteur de puissance
Pour la création des dispositif sous domoticz s'est indiqué dans le prog ex : Tension (General Voltage) ou Puissance (Usage Electric) ou Energie (General Custom Sensor KWh) etc ...
Le prog est facilement paramétrable grace à la partie "Variables" :
Possibilité d'activer ou pas l'entrée TOR
Possibilité d'activer ou pas les PZEM 2 et 3
Possibilité de récupérer que les infos qui vous intéresse sur les PZEM : seulement la tension si ça vous chante
//Variables
const char* ssid ="NomduWifi";//SSID du Wifi
const char* password = "MotdePasse";//Mot de passe du Wifi
const String DZ1 = "GET /json.htm?type=command¶m=udevice&idx=";//Ne pas toucher
const String DZ2 = "&nvalue=0&svalue=";//Ne pas toucher
const String DZ3 = " HTTP/1.1";//Ne pas toucher
const String DZ4 = "&nvalue=";//Ne pas toucher
const String DZ5 = "&svalue=0 HTTP/1.1";//Ne pas toucher
const String AdrIP = "192.168.x.x";//Adresse IP de domoticz
const int Port = 8080;//Port de domoticz
//Temps d'attente entre 2 mesures
const int Temps = 5000;//5000 = 5 secondes
//Boucle
int Boucle;//Ne pas toucher
float Data;//Ne pas toucher
String IDX;//Ne pas toucher
String DataInput;//Ne pas toucher
int ChangEtat;//Ne pas toucher
//IDX des recepteurs dans domoticz
//D0 GPIO 16
const int EntreeActive = 1;//0= entree inactive 1=entree active
const String IDXI1 = "106";//IDX de l'interrupteur
int Input1 = 0;//Ne pas toucher
//D8 GPIO 15
const int RaZActif = 1;//0= RaZ inactif 1=RaZ actif
//PZEM004T n°1
const String IDX1A = "274";//IDX PZEM004T n°1 Tension (General Voltage) ou NIL si pas utilise
const String IDX2A = "275";//IDX PZEM004T n°1 Intensité (General Current) ou NIL si pas utilise
const String IDX3A = "276";//IDX PZEM004T n°1 Puissance (Usage Electric) ou NIL si pas utilise
const String IDX4A = "277";//IDX PZEM004T n°1 Energie (General Custom Sensor KWh) ou NIL si pas utilise
const String IDX5A = "278";//IDX PZEM004T n°1 Frequence (General Custom Sensor Hz) ou NIL si pas utilise
const String IDX6A = "279";//IDX PZEM004T n°1 Facteur de puissance (General Custom Sensor Cos Phi) ou NIL si pas utilise
//PZEM004T n°2
const int PZEM2Actif = 1;//0= PZEM004T n°2 inactif 1=actif
const String IDX1B = "280";//IDX PZEM004T n°2 Tension (General Voltage) ou NIL si pas utilise
const String IDX2B = "281";//IDX PZEM004T n°2 Intensité (General Current) ou NIL si pas utilise
const String IDX3B = "282";//IDX PZEM004T n°2 Puissance (Usage Electric) ou NIL si pas utilise
const String IDX4B = "283";//IDX PZEM004T n°2 Energie (General Custom Sensor KWh) ou NIL si pas utilise
const String IDX5B = "284";//IDX PZEM004T n°2 Frequence (General Custom Sensor Hz) ou NIL si pas utilise
const String IDX6B = "285";//IDX PZEM004T n°2 Facteur de puissance (General Custom Sensor Cos Phi) ou NIL si pas utilise
//PZEM004T n°3
const int PZEM3Actif = 1;//0= PZEM004T n°3 inactif 1=actif
const String IDX1C = "286";//IDX PZEM004T n°3 Tension (General Voltage) ou NIL si pas utilise
const String IDX2C = "287";//IDX PZEM004T n°3 Intensité (General Current) ou NIL si pas utilise
const String IDX3C = "288";//IDX PZEM004T n°3 Puissance (Usage Electric) ou NIL si pas utilise
const String IDX4C = "289";//IDX PZEM004T n°3 Energie (General Custom Sensor KWh) ou NIL si pas utilise
const String IDX5C = "290";//IDX PZEM004T n°3 Frequence (General Custom Sensor Hz) ou NIL si pas utilise
const String IDX6C = "291";//IDX PZEM004T n°3 Facteur de puissance (General Custom Sensor Cos Phi) ou NIL si pas utilise
En rouge les parties à adapter à votre installation
Cablage :
Les GND des 3 PZEM sur G du NodeMcu (au dessus de VU)
Les 5V des 3 PZEM sur VU du NodeMcu
Le RX du PZEM 1 sur D2
Le TX du PZEM 1 sur D1
Le RX du PZEM 2 sur D5
Le TX du PZEM 2 sur D3
Le RX du PZEM 3 sur D7
Le TX du PZEM 3 sur D6
Entrée Tor entre D0 et 3V + résistance de 1Kohm entre D0 et G
Dans arduino :
Type de Carte NodeMcu 1.0
Bibliothèque :
PZEM004Tv30 (à ajouter)
ESP8266WiFiMulti (déjà présente dans ardouino)
WiFiClient (déjà présente dans ardouino)
Le Prog :
en pièce jointe.
Modif je supprime toutes les anciennes version et ne laisse que la dernière avec la bibliothèque