#define BLYNK_TEMPLATE_ID "TMPL29AvlC26w"
#define BLYNK_TEMPLATE_NAME "led control"
#define BLYNK_AUTH_TOKEN "zhnASB4u8wvak5H-3oJSdFgjZEK_QeAV"
//définissent des informations de configuration pour le projet Blynk.
//Ces informations sont utilisées pour identifier le projet et s'y connecter.
#define BLYNK_PRINT Serial
// c'est pour l'échange de message entre blynk et projet wokwi
#include <WiFi.h>//bibiothéque de wifi
#include <BlynkSimpleEsp32.h>//
#include <DHTesp.h> //bibiothéque de DHT sensor
char auth[] = BLYNK_AUTH_TOKEN ; //Jeton d'authentification
char ssid[] = "Wokwi-GUEST"; //le nom du réseau wifi utilisé
char pass[] = ""; //le mot de passe du réseau wifi utilisé
//pour initialiser la connexion blynk
int DHT_PIN = 15;
int value0, value1, value2;// valeur de controle
byte LED_R = 26;
byte LED_Y = 27;
byte LED_G = 14;
DHTesp dht;
BlynkTimer timer;// minuterie
// des instances de classe
//fonction d'envoi de capteurs
void sendSensor()
{
TempAndHumidity data = dht.getTempAndHumidity();
//affiche la température sur le moniteur série
Serial.print("% Temperature: ");
Serial.print(data.temperature);
Serial.println("C ");
Serial.print("% Humidity: ");
Serial.print(data.humidity);
Serial.println("% ");
Blynk.virtualWrite(V3, data.temperature); //envoie des données de température à la broche Virtual VO dans Blynk
Blynk.virtualWrite(V4, data.humidity); //envoie des données d'humidité à la broche virtuelle V1 dans Blynk
}
BLYNK_WRITE(V0)
{
value0 = param.asInt();
digitalWrite(LED_R, value0);
Blynk.virtualWrite(V6, value0);
}
BLYNK_WRITE(V1)
{
value1 = param.asInt();
digitalWrite(LED_Y, value1);
Blynk.virtualWrite(V7, value1);
}
BLYNK_WRITE(V2)
{
value2 = param.asInt();
digitalWrite(LED_G, value2);
Blynk.virtualWrite(V8, value2);
}
void setup()
{
// Console de débogage
Serial.begin(115200); //le moniteur série utilise Boltrate 9600
dht.setup(DHT_PIN, DHTesp::DHT22);
pinMode(LED_R, OUTPUT);
pinMode(LED_Y, OUTPUT);
pinMode(LED_G, OUTPUT);
Blynk.begin(auth, ssid, pass); //a commencé Blynk
timer.setInterval(1000, sendSensor); //Activez la minuterie pour l'envoi de données de 1000 ms
}
void loop()
{
Blynk.run(); //courir blynk
timer.run(); //exécuter une minuterie
}