Une maison plus sûre avec un système de détection de mouvement facile à construire
Nous accordons la priorité à 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 de se sentir en sécurité chez soi. Toute perturbation de ce sentiment peut suffire à avoir un impact négatif sur toute votre vie. C'est pourquoi, quelle que soit la réalité des menaces, nous accordons la priorité à 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 .
L'émergence de IoT , associée à la plus grande disponibilité de technologies de connectivité fiables, a donné aux propriétaires la possibilité d'acquérir toutes sortes d'appareils qui enregistrent des vidéos, alarment les utilisateurs ou verrouillent les portes. entre autres avantages.
Et même si ces appareils sont abordables et très conviviaux (ce qui permet une installation et une utilisation faciles), nous sommes des fabricants ici chez Ubidots , c'est pourquoi notre premier réflexe est généralement de rechercher les pièces et de construire les appareils dont nous avons besoin avec nos propres moyens. mains.
Ce fut le cas de Leonardo, l'un de nos ingénieurs Customer Success, qui a récemment été confronté à une situation dans laquelle la sécurité de sa maison et de sa famille était potentiellement menacée.
Pour faire court, des individus à l'air suspect ont été vus à plusieurs reprises errant dans son quartier, et même si rien ne s'était encore passé, il y avait un consensus au sein de la communauté sur leur 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 donnant à ces individus (ou à d'autres) une occasion idéale d'entrer sans autorisation.
Avec tout cela en tête, il était temps de se mettre au travail… Après avoir évalué tous les outils et ressources dont il disposait déjà, Leonardo a décidé de réaliser un système de détection de mouvement qui prend une photo à chaque déclenchement, car, hors de Parmi toutes les autres options, celle-ci était la plus efficace pour son problème.
Le système qu'il envisageait avait l'avantage d'être à la fois subtil et extrêmement efficace, puisqu'il n'aurait pas à surveiller les images en permanence (étant donné que cela l'alerterait de chaque nouvelle image/mouvement) et il pourrait toujours appeler la police à tout moment. le système a photographié quelque chose qu'il pensait problématique, quel que soit son emplacement.
Le système fonctionne en utilisant un capteur infrarouge passif qui, lors de l'enregistrement d'un mouvement, déclenche un ESP32-CAM pour prendre une photo. L'image est ensuite envoyée à Google Drive et ses FileID , FolderID et FileName sont ensuite envoyés à Ubidots où les images peuvent être visualisées dans un dashboard . Ubidots génère également les alertes que Leonardo reçoit sur son téléphone chaque fois qu'une photo est prise, ce qui permet de se tenir facilement informé de toute nouveauté.
Construire le 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 de module de caméra M5Stack ESP32 (1)
- Dérivation de base SparkFun FTDI - 3,3 V (1)
- Fils de liaison (1)
Logiciels/outils cloud utilisés dans le projet
- Un compte actif Ubidots
- EDI Arduino
- Script Google
1. Câblez le capteur de mouvement PIR à l'ESP32-CAM
À l'aide de quelques câbles de démarrage, connectez le capteur de mouvement PIR à l'ESP32-CAM en suivant le schéma présenté dans l'image 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, procédez comme suit :
- Accédez au Google Apps Script .
- Cliquez sur le bouton « + Nouveau projet » en haut à gauche et créez un nouveau projet.
- Copiez le code trouvé dans ce référentiel et collez-le dans votre projet Google Script.
- Mettez le token de votre Ubidots dans la variable appelée « TOKEN ». De cette façon, le système enverra le fileID , le FolderID et le fileName dans le contexte du point au format chaîne. En règle générale, le contexte est utilisé pour stocker des chaînes dans des paires clé-valeur.
const TOKEN = "VOTRE-JETON" ;
Vous pouvez modifier l'étiquette de la variable et l'étiquette de l'appareil comme vous le souhaitez. Dans ces appareils et variables, vous stockerez le fileID , le dossierID et le nom de fichier de la photo prise par l'ESP32-CAM.
- Déployez votre code et modifiez les autorisations du script pour permettre à tout le monde de le voir.
- Copiez l'ID qui apparaît sous « ID de déploiement » une fois que vous avez publié le script. Nous l'utiliserons à l'intérieur de l'ESP32-CAM.
3. Programmation de votre ESP32-CAM.
Il existe de nombreux tutoriels sur Internet expliquant comment programmer l'ESP32-CAM, par exemple celui-ci . Téléchargez le code correspondant à partir de ce référentiel 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.
- Mettez vos informations d'identification 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 monScript = "/macros/s/VOTRE-URL-ID/exec"; //Remplacez uniquement "VOTRE-URL-ID"
Enfin, exécutez tout le code dans votre IDE Arduino et flashez votre ESP32-CAM.
4. Personnalisez votre widget Ubidots
Le widget HTML Canvas vous permet de créer votre propre widget personnalisé. Cliquez ici pour en savoir plus. Avec le widget créé dans les étapes suivantes, vous pourrez voir les photos prises par l'ESP32-CAM. De plus, vous verrez une liste déroulante avec quelques registres d'images qui, si vous préférez, peuvent être supprimées.
Maintenant, créons notre propre widget en utilisant ces extraits de code :
- Allez dans le 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 « Toile HTML ».
- Copiez les HTML , CSS et JavaScript et collez-les dans l'éditeur de code du widget.
- Dans le code JavaScript, mettez le token de votre Ubidots dans la variable appelée « TOKEN ».
var TOKEN = 'VOTRE-JETON';
- Vérifiez les autorisations dans le dossier Google Drive qui contient toutes les images. Vous devez autoriser l’accès à « toute personne disposant du lien ».
Remarque importante : vous devez confirmer que les étiquettes de périphérique et de variable définies dans le projet Google Script correspondent aux étiquettes de périphérique et de variable 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, appels vocaux et même webhook en fonction des données de vos capteurs. Dans ce cas, nous utiliserons les événements pour recevoir des emails avec les images capturées par l'ESP32-CAM. Veuillez suivre ces étapes.
- Allez dans le menu déroulant « Données » dans la barre de navigation, puis « Événements ».
- Cliquez sur le bouton « + » en haut à droite et créez un nouvel événement.
- Définissez votre événement pour qu'il soit déclenché une fois que la variable reçoit "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, qui est stocké dans le contexte du point de données. Pour accéder au contexte, utilisez cette notation :
Bonjour, le système a détecté un étranger à : {{variable.last_value_timestamp}}
, veuillez vérifier l'image dans le lien suivant : https://drive.google.com/file/d/ {{variable.last_value_context.fileID} }
/view?usp=partage
Dans "PUIS actions", définissez un zéro dans la variable pour réinitialiser le déclencheur d'événement.
Et juste comme ça, vous pouvez, en tant que Leonardo, construire un système IoT simple mais efficace qui améliore la sécurité de votre maison et apporte une tranquillité d'esprit dans votre vie.