0% ont trouvé ce document utile (0 vote)
52 vues5 pages

Code ESP8266 pour mesure et alertes énergétiques

Transféré par

louistshinyingi9
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
52 vues5 pages

Code ESP8266 pour mesure et alertes énergétiques

Transféré par

louistshinyingi9
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

Bien sûr, voici le code avec les modifications demandées :

```c++

#include <ESP8266WiFi.h>

#include <BlynkSimpleEsp8266.h>

#include <SimpleTimer.h>

#include <SMTPClient.h>

// Pin pour le capteur de tension ZMPT100B

const int pinTension = A0;

// Pin pour le capteur de courant ACS712

const int pinCourant = D0;

// Variables pour les mesures

float tension;

float courant;

float puissanceActive;

float facteurPuissance;

float energieConsommee = 0;

float prixKWh = 0.069;

float totalKWh = 0;

// Variables pour la connexion WiFi

char ssid[] = "Itel S32";

char pass[] = "12345LTL";


// Variables pour les adresses emails

char emailToSend[] = "tshinyingilouis99@[Link]";

char emailCC[] = "louistshinyingi9@[Link]";

// Configuration Blynk

char auth[] = "n9pNRAQ0hRfpIiMHS05IAt3XfR6X_8Ya";

char template_id[] = "TMPL2GXLEuxuI";

char template_name[] = "TFC";

// Objet pour l'envoi d'email

SMTPClient smtp("[Link]", 587, "tshinyingilouis99@[Link]", "1005ltmw@1999");

// Timer pour les mesures

SimpleTimer timer;

// Fonction pour lire la tension

float lireTension() {

int tensionBrute = analogRead(pinTension);

float tension = map(tensionBrute, 0, 1023, 0, 250);

return tension;

// Fonction pour lire le courant

float lireCourant() {

int courantBrute = analogRead(pinCourant);

float courant = map(courantBrute, 0, 1023, -30, 30);

return courant;
}

// Fonction pour calculer la puissance active

float calculerPuissanceActive() {

float puissanceActive = tension * courant;

return puissanceActive;

// Fonction pour calculer l'énergie consommée

float calculerEnergieConsommee() {

energieConsommee += (puissanceActive / 1000) * ([Link]() / 1000 / 3600);

return energieConsommee;

// Fonction pour envoyer un email

void envoyerEmail(char* emailTo, char* emailCc, char* subject, char* message) {

[Link]("tshinyingilouis99@[Link]", emailTo, emailCc, subject, message);

// Fonction pour mettre à jour les mesures et l'interface Blynk

void actualiserMesures() {

tension = lireTension();

courant = lireCourant();

puissanceActive = calculerPuissanceActive();

facteurPuissance = cos(puissanceActive / (tension * courant));

[Link](V0, tension);

[Link](V1, courant);
[Link](V2, puissanceActive);

[Link](V3, energieConsommee);

[Link](V4, facteurPuissance);

void setup() {

// Initialize la carte ESP8266

[Link](115200);

[Link](ssid, pass);

while ([Link]() != WL_CONNECTED) {

delay(1000);

[Link](auth, ssid, pass, IPAddress(192, 168, 1, 100), 8080);

// Configure le timer pour les mesures

[Link](1000, actualiserMesures);

void loop() {

// Exécute les tâches du timer

[Link]();

// Vérifie la tension

if (tension < 100) {

char subject[] = "Alerte : Tension trop faible";

char message[] = "La tension est inférieure à 100V";


envoyerEmail(emailToSend, "", subject, message);

} else if (tension > 250) {

char subject[] = "Alerte : Tension trop élevée";

char message[] = "La tension est supérieure à 250V. Activation du relais R1.";

envoyerEmail(emailToSend, emailCC, subject, message);

// Mettre ici le code pour activer le relais R1

// Mettre à jour le total d'énergie consommée

totalKWh = energieConsommee / 1000;

// Vérifie si l'objectif de 2 kWh est atteint

if (totalKWh >= 2) {

char subject[] = "Alerte : Objectif atteint";

char message[] = "L'objectif de 2 kWh est atteint. Arrêt du système automatique.";

envoyerEmail(emailToSend, "", subject, message);

// Mettre ici le code pour arrêter le système automatiquement

[Link]();

```

Veuillez noter que le code pour activer le relais R1 et arrêter le système automatiquement est
marqué avec des commentaires "Mettre ici le code pour..." Vous devrez y ajouter le code spécifique
pour votre configuration matérielle.

Assurez-vous également de remplacer le `template_id`, `template_name`, l'email et le mot de passe


de l'objet `SMTPClient` avec vos propres informations.

Vous aimerez peut-être aussi