5. Surveillance de l’Environnement Domestique

Dans ce chapitre, nous utiliserons Blynk pour créer un moniteur d’environnement domestique. Vous pouvez mesurer la température, l’humidité et l’intensité lumineuse d’une pièce à l’aide du DHT11 et d’une photorésistance. En envoyant ces valeurs à Blynk, vous pourrez connaître l’environnement de votre maison via Internet.

Composants Requis

Pour ce projet, nous avons besoin des composants suivants.

Il est certainement pratique d’acheter un kit complet, voici le lien :

Nom

ÉLÉMENTS DANS CE KIT

LIEN

3 in 1 Starter Kit

380+

3 in 1 Starter Kit

Vous pouvez également les acheter séparément via les liens ci-dessous.

INTRODUCTION DES COMPOSANTS

LIEN D’ACHAT

Carte SunFounder R3

BUY

Plaque d’essai

BUY

Module ESP8266

BUY

Fils de Cavalier

BUY

Résistance

BUY

Photorésistance

BUY

Capteur d’Humidité et de Température DHT11

-

1. Construire le Circuit

Note

Le module ESP8266 nécessite un courant élevé pour fournir un environnement de fonctionnement stable, donc assurez-vous que la batterie 9V est branchée.

../_images/wiring_dht11.jpg

2. Éditer le Tableau de Bord

  1. Pour enregistrer les valeurs d’humidité, créez un Datastream de type Virtual Pin sur la page Datastream. Réglez le TYPE DE DONNÉES sur Double et MIN et MAX sur 0 et 100. Réglez également les unités sur Percentage, %.

    ../_images/sp220610_145748.png
  2. Ensuite, créez un Datastream de type Virtual Pin pour enregistrer la température. Réglez le TYPE DE DONNÉES sur Double, MIN et MAX sur -30 et 50, et les unités sur Celsius, °C.

    ../_images/sp220610_145811.png
  3. Créez également un Datastream de type Virtual Pin pour enregistrer l’intensité lumineuse. Utilisez le type de données par défaut - Integer, avec MIN et MAX réglés sur 0 et 1024.

    ../_images/sp220610_145834.png
  4. Allez sur la page Wed Dashboard, faites glisser deux widgets Label et réglez leurs data streams respectivement sur V4 et V5, et faites glisser un widget Gauge et réglez le data stream sur V6. De plus, dans le réglage du widget, vous pouvez activer Changer de couleur selon la valeur et sélectionner la couleur appropriée pour rendre le widget plus attrayant et intuitif.

../_images/sp220610_150400.png

3. Exécutez le Code

  1. Ouvrez le fichier 5.home_environment_monitoring.ino situé dans le dossier 3in1-kit\iot_project\5.home_environment_monitoring, ou copiez ce code dans Arduino IDE.

    Note

    • La DHT sensor library est utilisée ici, vous pouvez l’installer depuis le Library Manager.

      ../_images/lib_dht11.png
  2. Remplacez le Template ID, Device Name et Auth Token par les vôtres. Vous devez également entrer le ssid et le password du WiFi que vous utilisez. Pour des tutoriels détaillés, veuillez vous référer à 1.4 Connexion de la carte R3 à Blynk.

  3. Après avoir sélectionné la bonne carte et le bon port, cliquez sur le bouton Upoad.

  4. Ouvrez le moniteur série (réglez le débit en bauds sur 115200) et attendez qu’un message tel qu’une connexion réussie apparaisse.

    ../_images/2_ready.png

    Note

    Si le message ESP is not responding apparaît lorsque vous vous connectez, veuillez suivre ces étapes.

    • Assurez-vous que la batterie 9V est branchée.

    • Réinitialisez le module ESP8266 en connectant la broche RST à GND pendant 1 seconde, puis débranchez-la.

    • Appuyez sur le bouton de réinitialisation de la carte R3.

    Parfois, il peut être nécessaire de répéter l’opération ci-dessus 3 à 5 fois, veuillez être patient.

  5. Maintenant, vous verrez la température ambiante actuelle, l’humidité et l’intensité lumineuse sur Blynk.

    ../_images/sp220610_150400.png
  6. Si vous souhaitez utiliser Blynk sur des appareils mobiles, veuillez vous référer à Comment utiliser Blynk sur un appareil mobile ?.

    ../_images/mobile_home.jpg

Comment ça fonctionne ?

Ces deux fonctions sont utilisées pour obtenir la température, l’humidité et l’intensité lumineuse de la pièce.

int readLight(){
    return analogRead(lightPin);
}

bool readDHT() {

    // Reading temperature or humidity takes about 250 milliseconds!
    // Sensor readings may also be up to 2 seconds 'old' (it's a very slow sensor)
    humidity = dht.readHumidity();
    // Read temperature as Celsius (the default)
    temperature = dht.readTemperature();

    // Check if any reads failed and exit early (to try again).
    if (isnan(humidity) || isnan(temperature)) {
        Serial.println("Failed to read from DHT sensor!");
        return false;
    }
    return true;
}

Avec le Timer de Blynk, la température ambiante, l’humidité et l’intensité lumineuse sont obtenues chaque seconde et envoyées au data stream sur le Blynk Cloud, à partir duquel les widgets affichent les données.

void myTimerEvent()
{
    bool chk = readDHT();
    int light = readLight();
    if(chk){
        Blynk.virtualWrite(V4,humidity);
        Blynk.virtualWrite(V5,temperature);
    }
    Blynk.virtualWrite(V6,light);
}