Une maison plus sûre grâce à un système de détection de mouvement facile à installer
Nous privilégions notre sécurité et essayons de réduire les risques autant que possible, une réalité mise en évidence par le fait que le marché de la sécurité domestique est estimé à environ 56,9 milliards USD .
Peu de choses sont aussi universelles et importantes que le sentiment de sécurité chez soi. Toute perturbation de ce sentiment peut avoir un impact négatif sur toute une vie. C'est pourquoi, quelle que soit la réalité des menaces, nous privilégions notre sécurité et cherchons à réduire les risques autant que possible, une réalité illustrée par le fait que le marché de la sécurité résidentielle est estimé à environ 56,9 milliards USD .
L'émergence de IoT), associée à une plus grande disponibilité de technologies de connectivité fiables, a largement contribué à la croissance de ce marché et a permis aux propriétaires de se procurer toutes sortes d'appareils qui enregistrent des vidéos, alertent les utilisateurs ou verrouillent les portes, entre autres avantages.
Et même si ces appareils sont abordables et très faciles à utiliser (ce qui permet une installation et une utilisation aisées), chez Ubidots, nous sommes avant tout des créateurs, c'est pourquoi notre premier réflexe est généralement de chercher les pièces et de construire nous-mêmes les appareils dont nous avons besoin.
Ce fut le cas de Leonardo, l'un de nos ingénieurs en réussite client, qui a récemment été confronté à une situation où la sécurité de sa maison et de sa famille était potentiellement menacée.
Pour faire court, des individus à l'allure suspecte ont été aperçus à plusieurs reprises errant dans son quartier, et même si rien ne s'était encore produit, la communauté s'accordait à dire qu'elle ressentait un malaise.
Dans le cas de Leonardo, cette situation était encore plus stressante car il voyage avec sa famille la plupart des week-ends, laissant la maison vide et offrant à ces individus (ou à d'autres) une occasion idéale de s'introduire chez lui.
Compte tenu de tout cela, il était temps de se mettre au travail… Après avoir évalué tous les outils et ressources dont il disposait déjà, Léonard de Vinci a décidé de créer un système de détection de mouvement qui prend une photo à chaque déclenchement, car, parmi toutes les options, celle-ci était la plus efficace pour résoudre son problème.

Le système qu'il envisageait présentait l'avantage d'être à la fois discret et extrêmement efficace, puisqu'il n'aurait pas à surveiller constamment les images (étant donné qu'il serait alerté de chaque nouvelle image/mouvement) et qu'il pourrait toujours appeler la police chaque fois que le système photographierait quelque chose qu'il jugeait problématique, quel que soit son emplacement.
Le système fonctionne grâce à un capteur infrarouge passif qui, lorsqu'il détecte un mouvement, déclenche la prise de vue par une caméra ESP32-CAM. L'image est ensuite envoyée à Google Drive, et ses identifiants (FileID , FolderID et FileName) sont transmis à Ubidots où les photos peuvent être visualisées sur un dashboard . Ubidots génère également les notifications que Leonardo reçoit sur son téléphone à chaque prise de vue, lui permettant ainsi de rester informé des nouveautés.
Construction du système de détection de mouvement, étape par étape
Matériel utilisé dans le projet
- Capteur de mouvement PIR (1)
- Carte de développement du module caméra M5Stack ESP32 (1)
- SparkFun FTDI carte d'extension de base - 3,3 V (1)
- Fils de connexion (1)
Logiciels/outils cloud utilisés dans le projet
- Un compte Ubidots actif
- Arduino IDE
- Script Google
1. Connectez le capteur de mouvement PIR à l'ESP32-CAM
À l'aide de fils de connexion, reliez le capteur de mouvement PIR à l'ESP32-CAM en suivant le schéma ci-dessous. Notez que vous pouvez modifier le brochage dans le code.
2. Programmation du projet Google Script.
Pour créer un nouveau projet Google Script, suivez ces étapes :
- Rendez-vous sur le de Google Apps Script .
- Cliquez sur le bouton « + Nouveau projet » en haut à gauche et créez un nouveau projet.
- Copiez le code trouvé dans ce dépôt et collez-le dans votre projet Google Script.
- Saisissez le jeton de votre Ubidots dans la variable « TOKEN ». Le système enverra ainsi l' identifiant du fichier (fileID) , (folderID ) et le nom du fichier (fileName) sous forme de chaîne de caractères, dans le contexte du point. Ce contexte sert généralement à stocker des chaînes de caractères sous forme de paires clé-valeur.
const TOKEN = "VOTRE-TOKEN";Vous pouvez modifier l'étiquette de la variable et celle du périphérique à votre guise. Dans ces périphériques et variables, vous stockerez l'identifiant du fichier (fileID) , identifiant du dossier (folderID ) et le nom du fichier (fileName) de la photo prise par l'ESP32-CAM.
- Déployez votre code et modifiez les autorisations du script pour permettre à tous de le voir.

- Copiez l'identifiant qui apparaît sous « ID de déploiement » une fois le script publié. Nous l'utiliserons dans l'ESP32-CAM.
3. Programmation de votre ESP32-CAM.
Vous trouverez de nombreux tutoriels sur Internet expliquant comment programmer l'ESP32-CAM, par exemple celui-ci . Téléchargez le code correspondant depuis ce dépôt et ouvrez-le dans votre IDE Arduino.
Cependant, certaines modifications doivent être apportées au code pour qu'il fonctionne correctement sur votre ESP32-CAM.
- Saisissez vos identifiants de réseau sans fil dans les champs SSID et Mot de passe.
const char* ssid = "VOTRE-SSID"; const char* password = "VOTRE-MOT-DE-PASSE";
- Collez l'ID de votre script Google dans la variable suivante.
String myScript = "/macros/s/VOTRE-ID-URL/exec"; //Remplacez uniquement "VOTRE-ID-URL"Enfin, exécutez tout le code dans votre IDE Arduino et flashez votre ESP32-CAM.
4. Personnalisez votre widget Ubidots
Le widget Canvas HTML vous permet de créer votre propre widget personnalisé. Cliquez ici pour en savoir plus. Grâce au widget créé selon les étapes suivantes, vous pourrez visualiser les images prises par l'ESP32-CAM. De plus, un menu déroulant affichera certains enregistrements des images ; vous pourrez les masquer si vous le souhaitez.
À présent, créons notre propre widget en utilisant ces extraits de code :

- Accédez au menu déroulant « Données » Ubidots dans la barre de navigation, puis à «Dashboards», et enfin sélectionnez le dashboard sur lequel vous allez travailler.
- Cliquez sur le bouton « + » en haut à droite de votre dashboard.
- Sélectionnez l’option « Canevas HTML ».

- Copiez les HTML , CSS et JavaScript et collez-les dans l'éditeur de code du widget.
- Dans le code JavaScript, placez le jeton de votre Ubidots dans la variable appelée « TOKEN ».
var TOKEN = 'VOTRE-TOKEN';- Vérifiez les autorisations du dossier Google Drive contenant toutes les photos. Vous devez autoriser l'accès à « toute personne disposant du lien ».

Remarque importante : vous devez vérifier que les étiquettes de périphérique et de variable définies dans le projet Google Script correspondent à celles définies dans le code JavaScript.
5. Configurer une alerte
Les événements Ubidots vous permettent de déclencher des notifications par e-mail, SMS, appel vocal et même webhook en fonction des données de vos capteurs. Ici, nous utiliserons ces événements pour recevoir des e-mails contenant les images capturées par l'ESP32-CAM. Veuillez suivre les étapes suivantes.
- Dans la barre de navigation, cliquez sur le menu déroulant « Données », puis sur « Événements ».
- Cliquez sur le bouton « + » en haut à droite et créez un nouvel événement.
- Configurez votre événement pour qu'il se déclenche une fois que la variable reçoit la valeur « 1 ».
- Veuillez noter Ubidots vous permet d'utiliser des champs personnalisés dans les actions d'événement. Par exemple, nous inclurons l'URL du fichier image, stockée dans le contexte du point de données. Pour accéder au contexte, utilisez la notation suivante :
Bonjour, le système a détecté une présence extérieure à l'adresse : { { variable.last_value_timestamp}} . Veuillez consulter l'image sur le lien suivant : https://drive.google.com/file/d/{{variable.last_value_context.fileID}}/view?usp=sharing
Dans la section « Actions ALORS », définissez la variable à zéro pour réinitialiser le déclencheur d'événement.
Et voilà, vous pouvez, comme Leonardo, construire un système IoT simple mais efficace qui améliore la sécurité de votre maison et vous apporte la tranquillité d'esprit.