0% ont trouvé ce document utile (0 vote)
8 vues6 pages

Suivi de consommation d'énergie avec Blynk

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)
8 vues6 pages

Suivi de consommation d'énergie avec Blynk

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

#include <ESP8266WiFi.

h>

#include <BlynkSimpleEsp8266.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";

// Configuration Blynk

char auth[] = "n9pNRAQ0hRfpIiMHS05IAt3XfR6X_8Ya";

// Objet pour le timer

Ticker 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) * (1000 / 3600); // intervalle de temps fixe à 1


seconde

return energieConsommee;

}
// 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);

// Fonction pour commander le relais

BLYNK_WRITE(V5) {

int valeurRelais = [Link]();

if(valeurRelais == 1) {

// Mettre ici le code pour activer le relais

} else {

// Mettre ici le code pour désactiver le relais

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 avec une interruption toutes les 1 seconde

[Link](1, actualiserMesures);

void loop() {

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

totalKWh = energieConsommee / 1000;

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

if (totalKWh >= 2) {

[Link](V5, 0);

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]();

}
// Fonction pour commander le relais

BLYNK_WRITE(V5) {

int valeurRelais = [Link]();

if(valeurRelais == 1) {

digitalWrite(RELAIS_PIN, HIGH); // Activer le relais

} else {

digitalWrite(RELAIS_PIN, LOW); // Désactiver le relais

void stopSystem() {

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

void loop() {

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

totalKWh = energieConsommee / 1000;

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

if (totalKWh >= 2) {

[Link](V5, 0);

char subject[] = “Alerte : Objectif atteint”;

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


// envoyerEmail(emailToSend, subject, message);

stopSystem();

[Link]();

Vous aimerez peut-être aussi