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+ |
Vous pouvez également les acheter séparément à partir des liens ci-dessous.
INTRODUCTION DES COMPOSANTS |
LIEN D’ACHAT |
|---|---|
1. Assemblage du circuit¶
2. Configuration de Blynk¶
2.1 Initialisation de Blynk
Allez sur la page BLYNK et sélectionnez Sign Up FREE ou Enterprise Solution.
Entrez votre email pour commencer le processus d’inscription.
Vérifiez votre email pour une invitation et cliquez sur le lien Create Password dans l’email pour définir votre mot de passe.
Après confirmation, un Blynk Tour commencera où vous pourrez rapidement apprendre certaines des fonctionnalités clés de Blynk.
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 ».
2.2 Création d’un template
Commencez par créer un template dans Blynk. Suivez les étapes pour configurer le template Intrusion Alert System.
Nommez votre template, choisissez ESP32 comme matériel, sélectionnez WiFi comme Type de connexion, puis cliquez sur Done.
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.
2.3 Configuration des flux de données (Datastreams)
Ouvrez le nouveau template créé et allez à la page de configuration des flux de données.
Cliquez sur New Datastream, et dans la popup, sélectionnez Virtual Pin.
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.
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.
2.4 Configuration du tableau de bord web
Faites glisser et déposez le widget Switch et le widget Label sur le tableau de bord web.
Survolez un widget pour voir trois icônes. Utilisez l’icône Paramètres pour configurer les propriétés du widget.
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.
Dans les paramètres du widget Label, liez-le au flux de données Current Status(V1).
2.5 Configuration d’un événement
Cliquez sur Events & Notifications puis sur Create Event.
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.
Allez dans la section Notifications pour activer les notifications et configurer les paramètres d’email.
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.
2.6 Enregistrement du template
2.7 Création d’un appareil
3. Exécution du code¶
Avant d’exécuter le code, assurez-vous d’installer la bibliothèque
Blynkdepuis le Library Manager sur l’Arduino IDE.Ouvrez le fichier
iot_9_intrusion_alert_system.ino, situé dans le répertoireesp32-starter-kit-main\c\codes\iot_9_intrusion_alert_system. Vous pouvez également copier son contenu dans l’Arduino IDE.Remplacez les espaces réservés pour
BLYNK_TEMPLATE_ID,BLYNK_TEMPLATE_NAME, etBLYNK_AUTH_TOKENpar vos propres identifiants uniques.#define BLYNK_TEMPLATE_ID "TMPxxxxxxx" #define BLYNK_TEMPLATE_NAME "Intrusion Alert System" #define BLYNK_AUTH_TOKEN "xxxxxxxxxxxxx"
Vous devez également entrer le
ssidet lepasswordde votre réseau WiFi.char ssid[] = "your_ssid"; char pass[] = "your_password";
Choisissez la carte correcte (ESP32 Dev Module) et le port, puis cliquez sur le bouton Upload.
Ouvrez le moniteur série (réglez le débit en bauds à 115200) et attendez un message de connexion réussie.
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.
4. Explication du code¶
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>
Configuration WiFi
Entrez vos identifiants WiFi.
char ssid[] = "your_ssid"; char pass[] = "your_password";
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;
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 danssetup(), ici nous réglons pour exécuter la fonctionmyTimerEvent()toutes les 1000ms. Vous pouvez modifier le premier paramètre detimer.setInterval(1000L, myTimerEvent)pour changer l’intervalle entre les exécutions demyTimerEvent.
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 }
Fonction loop()
La fonction loop exécute continuellement les fonctions Blynk et Blynk timer.
void loop() { Blynk.run(); timer.run(); }
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 commandeBlynk.syncVirtual()demande une valeur de broche virtuelle unique. La broche virtuelle spécifiée exécutera l’appelBLYNK_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 }
Gestion des données
Chaque seconde, la fonction
myTimerEvent()appellesendData(). 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










