#define BLYNK_TEMPLATE_ID "XXXXXXXXXXXXXX"
#define BLYNK_DEVICE_NAME "Quickstart Device"
#define BLYNK_AUTH_TOKEN "XXXXXXXXXXXXXXXXXXXXXX"
#define pinS0 5 //pin D1, les pin sont mises avec leur n° GPIO, c'est les 3 pins qui actionne le CD4051 pour qu'il sache quelle entrée lire
#define pinS1 4 //pin D2
#define pinS2 0 //pin D3
// Comment this out to disable prints and save space
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include "DHT.h"
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "LE_NOM_DE_VOTRE_RESEAU_WIFI";
char pass[] = "LE_CODE_DE_VOTRE_WIFI";
DHT dht(D4, DHT11);
int R1, R4;
BlynkTimer timer;//declare le timer
void setup()
{
Serial.begin(115200);
Blynk.begin(auth, ssid, pass);
pinMode(D7, OUTPUT); //led verte
pinMode(D8, OUTPUT); //led rouge
pinMode(D5, INPUT); //pushbutton
pinMode(D4, INPUT); //DHT11
pinMode(pinS0, OUTPUT);
pinMode(pinS1, OUTPUT);
pinMode(pinS2, OUTPUT);
timer.setInterval(500L, myTimerEvent);
dht.begin();
}
// This function is called every time the Virtual Pin 3 state changes
BLYNK_WRITE(V3)
{
// int value = param.asInt();
digitalWrite(D7, param.asInt());//allume ou eteint led
}
BLYNK_WRITE(V0)
{
digitalWrite(D8, param.asInt());
}
void myTimerEvent()
{
Blynk.virtualWrite(V2, millis() / 1000);
Blynk.virtualWrite(V6, digitalRead(D5)); //bouton poussé ou pas
Blynk.virtualWrite(V5, R1);//potentiometre
Blynk.virtualWrite(V4, R4);//lumiere
Blynk.virtualWrite(V1, dht.readTemperature());
Blynk.virtualWrite(V7, dht.readHumidity());
}
void loop() // normalement on ne doit pas mettre les virtualwrite dans loop, voir la doc pour faire autrement, doit être mis dans un timer sinon bannis du site (???)
{
Blynk.run();
timer.run(); // Initiates SimpleTimer
digitalWrite(pinS2, LOW); //pour lire l'entrée Y0 du CD4051
digitalWrite(pinS1, LOW);
digitalWrite(pinS0, LOW);
R1 = analogRead(0);
digitalWrite(pinS2, LOW); //pour lire l'entrée Y3 du CD4051
digitalWrite(pinS1, HIGH);
digitalWrite(pinS0, HIGH);
R4 = 1024 - analogRead(0);
}