3. Envoyer des Données à Blynk

Ce chapitre vous montrera comment envoyer des données à Blynk.

Nous créons ici un dispositif de détection de portes et fenêtres. Le circuit avec l’interrupteur à lames (reed switch) est placé à côté de la porte et de la fenêtre, et l’aimant est monté sur le bord de la porte et de la fenêtre. Lorsque la porte ou la fenêtre est fermée, l’interrupteur à lames sera activé par la force magnétique et la valeur de pin correspondante sur la carte R3 changera. Blynk.cloud recevra cette valeur afin que vous puissiez voir si les portes et fenêtres de votre maison sont fermées, même lorsque vous n’êtes pas à la maison.

Nous utiliserons maintenant un widget LED dans Blynk pour indiquer si vos fenêtres et portes sont fermées (c’est-à-dire si l’interrupteur à lames est activé ou désactivé).

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

Interrupteur à Lame Souple

-

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_reed.jpg

2. Éditer le Tableau de Bord

  1. Créez un Datastream de type Virtual Pin sur la page Datastream pour obtenir la valeur de l’Interrupteur à Lames. Réglez le TYPE DE DONNÉES sur Integer et MIN et MAX sur 0 et 1.

    ../_images/sp220609_162548.png
  2. Faites glisser et déposez un LED widget sur la page Wed Dashboard, à une valeur de 1, il s’allumera (avec couleur), sinon il sera blanc.

    ../_images/sp220609_163350.png
  3. Dans la page de paramètres du LED widget, sélectionnez Datastream comme Reed(V1), et enregistrez-le.

    ../_images/sp220609_163502.png

3. Exécutez le Code

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

  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, Blynk affichera l’état de vos portes et fenêtres. Si vos portes et fenêtres sont fermées, le widget LED sera vert, sinon, il sera gris.

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

Comment ça fonctionne ?

Pour cet exemple, vous devriez vous concentrer sur les lignes suivantes. « Écrire des données toutes les secondes dans le Datastream V1 de Blynk Cloud » est défini par ces lignes.

BlynkTimer timer;

void myTimerEvent()
{
    Blynk.virtualWrite(V1, pinValue);
}

void setup()
{
    timer.setInterval(1000L, myTimerEvent);
}

void loop()
{
    timer.run(); // Initiates BlynkTimer
}

La bibliothèque Blynk fournit un timer intégré, d’abord nous créons un objet timer.

BlynkTimer timer;

Réglez l’intervalle du timer dans setup(), ici nous réglons pour exécuter la fonction myTimerEvent() toutes les 1000ms

timer.setInterval(1000L, myTimerEvent);

Exécutez BlynkTimer dans loop().

timer.run();

Éditez la fonction personnalisée myTimerEvent(), le code Blynk.virtualWrite(V1, pinValue) est utilisé pour écrire la donnée pinValue pour V1.

void myTimerEvent()
{
    Blynk.virtualWrite(V1, pinValue);
}