Note

Bonjour, bienvenue dans la communauté des passionnés de SunFounder Raspberry Pi & Arduino & ESP32 sur Facebook ! Plongez plus profondément dans l’univers de Raspberry Pi, Arduino et ESP32 avec d’autres passionnés.

Pourquoi nous rejoindre ?

  • Support d’experts : Résolvez les problèmes après-vente et les défis techniques avec l’aide de notre communauté et de notre équipe.

  • Apprendre et partager : Échangez des conseils et des tutoriels pour améliorer vos compétences.

  • Aperçus exclusifs : Bénéficiez d’un accès anticipé aux annonces de nouveaux produits et aux avant-premières.

  • Réductions spéciales : Profitez de réductions exclusives sur nos derniers produits.

  • Promotions festives et cadeaux : Participez à des concours et promotions de vacances.

👉 Prêt à explorer et créer avec nous ? Cliquez sur [Ici] et rejoignez-nous dès aujourd’hui !

8.9 Système de notification d’intrusion basé sur Blynk

Ce projet démontre un simple système de détection d’intrusion à domicile utilisant un capteur de mouvement PIR (HC-SR501). Lorsque le système est réglé en mode « Absence » via l’application Blynk, le capteur PIR surveille les mouvements. Tout mouvement détecté déclenche une notification sur l’application Blynk, alertant l’utilisateur d’une intrusion potentielle.

Composants requis

Pour ce projet, nous avons besoin des composants suivants.

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

Nom

ARTICLES DANS CE KIT

LIEN

Kit de démarrage ESP32

320+

ESP32 Starter Kit

Vous pouvez également les acheter séparément à partir des liens ci-dessous.

INTRODUCTION DES COMPOSANTS

LIEN D’ACHAT

ESP32 carte

Acheter

Extension de caméra ESP32

ACHETER

Fils de connexion

Acheter

Module de capteur de mouvement PIR

Acheter

1. Assemblage du circuit

../../_images/iot_9_blynk_bb.png

2. Configuration de Blynk

2.1 Initialisation de Blynk

  1. Allez sur la page BLYNK et sélectionnez Sign Up FREE ou Enterprise Solution.

    ../../_images/09_blynk_access.png
  2. Entrez votre email pour commencer le processus d’inscription.

    ../../_images/09_blynk_sign_in.png
  3. Vérifiez votre email pour une invitation et cliquez sur le lien Create Password dans l’email pour définir votre mot de passe.

    ../../_images/09_blynk_password.png
  4. Après confirmation, un Blynk Tour commencera où vous pourrez rapidement apprendre certaines des fonctionnalités clés de Blynk.

    ../../_images/09_blynk_tour.png
  5. Après avoir complété le Blynk Tour, une fenêtre apparaîtra où vous pourrez choisir d’explorer les Blueprints ou de cliquer sur Quick Start pour connecter rapidement votre appareil. Cependant, dans ce cas, nous sélectionnerons « Have a look around first ».

    ../../_images/09_blynk_skip.png

2.2 Création d’un template

  1. Commencez par créer un template dans Blynk. Suivez les étapes pour configurer le template Intrusion Alert System.

    ../../_images/09_create_template_1_shadow.png
  2. Nommez votre template, choisissez ESP32 comme matériel, sélectionnez WiFi comme Type de connexion, puis cliquez sur Done.

    ../../_images/09_create_template_2_shadow.png
  3. Entrez dans le template, où vous serez invité aux prochaines étapes. Cliquez sur Configure template pour télécharger une image de couverture, améliorer la description, et plus encore. Suivez les trois étapes restantes pour compléter la configuration.

    ../../_images/09_blynk_temp_steps.png

2.3 Configuration des flux de données (Datastreams)

  1. Ouvrez le nouveau template créé et allez à la page de configuration des flux de données.

    ../../_images/09_blynk_new_datastream.png
  2. Cliquez sur New Datastream, et dans la popup, sélectionnez Virtual Pin.

    ../../_images/09_blynk_datastream_virtual.png
  3. Nommez le Virtual Pin V0 comme AwayMode et réglez le TYPE DE DONNÉES sur Integer, avec des valeurs MIN et MAX de 0 et 1.

    ../../_images/09_create_template_shadow.png
  4. De la même manière, créez un autre Virtual Pin nommé Current Status et réglez le TYPE DE DONNÉES sur String.

    ../../_images/09_datastream_1_shadow.png

2.4 Configuration du tableau de bord web

  1. Faites glisser et déposez le widget Switch et le widget Label sur le tableau de bord web.

    ../../_images/09_web_dashboard_1_shadow.png
  2. Survolez un widget pour voir trois icônes. Utilisez l’icône Paramètres pour configurer les propriétés du widget.

    ../../_images/09_blynk_dashboard_set.png
  3. Configurez le widget Switch pour le lier au flux de données AwayMode(V0), en réglant les ONLABEL et OFFLABEL pour afficher « away home » et « at home », respectivement.

    ../../_images/09_web_dashboard_2_shadow.png
  4. Dans les paramètres du widget Label, liez-le au flux de données Current Status(V1).

    ../../_images/09_web_dashboard_3_shadow.png

2.5 Configuration d’un événement

  1. Cliquez sur Events & Notifications puis sur Create Event.

    ../../_images/09_blynk_event_add.png
  2. Nommez l’événement et spécifiez son code. Choisissez Warning pour le TYPE et fournissez une brève description pour l’email de notification. Ajustez la fréquence des notifications selon vos préférences.

    Note

    Assurez-vous que le CODE DE L’ÉVÉNEMENT est défini comme intrusion_detected. Tout changement ici nécessite des ajustements correspondants dans le code.

    ../../_images/09_event_1_shadow.png
  3. Allez dans la section Notifications pour activer les notifications et configurer les paramètres d’email.

    ../../_images/09_event_2_shadow.png
  4. Dans Settings, définissez la fréquence de déclenchement des notifications et définissez les intervalles selon vos préférences. N’oubliez pas de cliquer sur Create pour enregistrer vos paramètres.

    ../../_images/09_event_3_shadow.png

2.6 Enregistrement du template

  1. N’oubliez pas d’enregistrer vos modifications sur le template.

    ../../_images/09_save_template_shadow.png

2.7 Création d’un appareil

  1. Il est temps de créer un nouvel appareil à partir du template.

    ../../_images/09_blynk_device_new.png
  2. Sélectionnez From template pour commencer.

    ../../_images/09_blynk_device_template.png
  3. Choisissez le template Intrusion Alert System et cliquez sur Create.

    ../../_images/09_blynk_device_template2.png
  4. Notez l”Template ID, le Device Name, et l”AuthToken pour l’intégration avec votre ESP32.

    ../../_images/09_blynk_device_code.png

3. Exécution du code

  1. Avant d’exécuter le code, assurez-vous d’installer la bibliothèque Blynk depuis le Library Manager sur l’Arduino IDE.

    ../../_images/09_blynk_add_library.png
  2. Ouvrez le fichier iot_9_intrusion_alert_system.ino, situé dans le répertoire esp32-starter-kit-main\c\codes\iot_9_intrusion_alert_system. Vous pouvez également copier son contenu dans l’Arduino IDE.

  3. Remplacez les espaces réservés pour BLYNK_TEMPLATE_ID, BLYNK_TEMPLATE_NAME, et BLYNK_AUTH_TOKEN par vos propres identifiants uniques.

    #define BLYNK_TEMPLATE_ID "TMPxxxxxxx"
    #define BLYNK_TEMPLATE_NAME "Intrusion Alert System"
    #define BLYNK_AUTH_TOKEN "xxxxxxxxxxxxx"
    
  4. Vous devez également entrer le ssid et le password de votre réseau WiFi.

    char ssid[] = "your_ssid";
    char pass[] = "your_password";
    
  5. Choisissez la carte correcte (ESP32 Dev Module) et le port, puis cliquez sur le bouton Upload.

  6. Ouvrez le moniteur série (réglez le débit en bauds à 115200) et attendez un message de connexion réussie.

    ../../_images/09_blynk_upload_code.png
  7. Après une connexion réussie, l’activation de l’interrupteur dans Blynk démarre la surveillance du module PIR. Lorsque le mouvement est détecté (état de 1), il indiquera « Somebody here! » et enverra une alerte à votre email.

    ../../_images/09_blynk_code_alarm.png

4. Explication du code

  1. Configuration & Bibliothèques

    Ici, vous configurez les constantes et les identifiants de Blynk. Vous incluez également les bibliothèques nécessaires pour l’ESP32 et Blynk.

    /* Commentez ceci pour désactiver les impressions et économiser de l'espace */
    #define BLYNK_PRINT Serial
    
    #define BLYNK_TEMPLATE_ID "xxxxxxxxxxx"
    #define BLYNK_TEMPLATE_NAME "Intrusion Alert System"
    #define BLYNK_AUTH_TOKEN "xxxxxxxxxxxxxxxxxxxxxxxxxxx"
    
    #include <WiFi.h>
    #include <WiFiClient.h>
    #include <BlynkSimpleEsp32.h>
    
  2. Configuration WiFi

    Entrez vos identifiants WiFi.

    char ssid[] = "your_ssid";
    char pass[] = "your_password";
    
  3. Configuration du capteur PIR

    Définissez la broche où le capteur PIR est connecté et initialisez les variables d’état.

    const int sensorPin = 14;
    int state = 0;
    int awayHomeMode = 0;
    BlynkTimer timer;
    
  4. Fonction setup()

    Cette fonction initialise le capteur PIR en tant qu’entrée, configure la communication série, se connecte au WiFi et configure Blynk.

    • Nous utilisons timer.setInterval(1000L, myTimerEvent) pour définir l’intervalle du timer dans setup(), ici nous réglons pour exécuter la fonction myTimerEvent() toutes les 1000ms. Vous pouvez modifier le premier paramètre de timer.setInterval(1000L, myTimerEvent) pour changer l’intervalle entre les exécutions de myTimerEvent.


    void setup() {
    
        pinMode(sensorPin, INPUT);  // Définir la broche du capteur PIR comme entrée
        Serial.begin(115200);           // Démarrer la communication série à 115200 bauds pour le débogage
    
        // Configurer Blynk et se connecter au WiFi
        Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
    
        timer.setInterval(1000L, myTimerEvent);  // Configurer une fonction à appeler toutes les secondes
    }
    
  5. Fonction loop()

    La fonction loop exécute continuellement les fonctions Blynk et Blynk timer.

    void loop() {
       Blynk.run();
       timer.run();
    }
    
  6. Interaction avec l’application Blynk

    Ces fonctions sont appelées lorsque l’appareil se connecte à Blynk et lorsqu’il y a un changement d’état de la broche virtuelle V0 sur l’application Blynk.

    • Chaque fois que l’appareil se connecte au serveur Blynk, ou se reconnecte en raison de mauvaises conditions réseau, la fonction BLYNK_CONNECTED() est appelée. La commande Blynk.syncVirtual() demande une valeur de broche virtuelle unique. La broche virtuelle spécifiée exécutera l’appel BLYNK_WRITE().

    • Chaque fois que la valeur d’une broche virtuelle sur le serveur Blynk change, elle déclenchera BLYNK_WRITE().


    // Cette fonction est appelée chaque fois que l'appareil est connecté à Blynk.Cloud
    BLYNK_CONNECTED() {
        Blynk.syncVirtual(V0);
    }
    
    // Cette fonction est appelée chaque fois que l'état de la broche virtuelle 0 change
    BLYNK_WRITE(V0) {
        awayHomeMode = param.asInt();
        // logique supplémentaire
    }
    
  7. Gestion des données

    Chaque seconde, la fonction myTimerEvent() appelle sendData(). Si le mode absence est activé sur Blynk, il vérifie le capteur PIR et envoie une notification à Blynk si un mouvement est détecté.

    • Nous utilisons Blynk.virtualWrite(V1, "Somebody in your house! Please check!"); pour changer le texte d’une étiquette.

    • Utilisez Blynk.logEvent("intrusion_detected"); pour enregistrer l’événement sur Blynk.


    void myTimerEvent() {
       sendData();
    }
    
    void sendData() {
       if (awayHomeMode == 1) {
          state = digitalRead(sensorPin);  // Lire l'état du capteur PIR
    
          Serial.print("state:");
          Serial.println(state);
    
          // Si le capteur détecte un mouvement, envoyer une alerte à l'application Blynk
          if (state == HIGH) {
            Serial.println("Somebody here!");
            Blynk.virtualWrite(V1, "Somebody in your house! Please check!");
            Blynk.logEvent("intrusion_detected");
          }
       }
    }
    

Références