Capteur de mouvement SmartThings par vision par ordinateur sur Raspberry Pi 3
Prérequis
Je pars du principe que vous disposez d'un Raspberry Pi 3 avec une caméra fonctionnelle et OpenCV installé. Sinon, je recommande ce tutoriel.
Création d'un Device Handler SmartThings personnalisé
Dans l'IDE SmartThings, créez un nouveau device handler pour notre capteur de mouvement par vision par ordinateur.
- Allez dans la section « My Device Handler » et cliquez sur « + Create New Device Handler » en haut à droite.
- Cliquez sur l'onglet « From Code », collez le code du Device Handler joint et cliquez sur « Create ».
- Sur la page suivante, cliquez sur « Publish » pour rendre le device disponible.
Écriture de la SmartApp SmartThings
De même, créez une SmartApp. Dans la section « My SmartApps », cliquez sur « + Create New SmartApps » en haut à droite.
- Créez‑la depuis le code, collez le code de la SmartApp joint, et cliquez sur « Create ».
- Puis publiez‑la.
Préparation du Raspberry Pi
Nous avons maintenant besoin d'un script Python qui capture des images, détecte des visages et signale l'état à SmartThings.
Installation des bibliothèques requises
pip install imutils
sudo apt-get install python3-twisted-web
Création du répertoire et du script
mkdir -p /home/pi/camera
cd /home/pi/camera
sudo nano ssdpcamera.py
Collez le script Python Camera joint et enregistrez.
Testez le script avec python3 ssdpcamera.py – vous devriez voir des logs indiquant l'initialisation de la caméra et les événements de détection de visage.
Découverte et appairage du Raspberry Pi
Dans l'application mobile SmartThings, allez dans Marketplace → SmartApps, puis localisez « Computer Vision (Connect) » sous « + My Apps ».
Assurez‑vous que le Raspberry Pi est alimenté et que le script Python tourne. La SmartApp lancera la découverte ; une fois le device apparu, sélectionnez‑le et appuyez sur « Done ».
Après l'appairage, le device commencera à remonter les mises à jour de présence vers votre compte SmartThings.
Configuration du démarrage automatique
Pour lancer le script automatiquement au boot, éditez /etc/rc.local et ajoutez la ligne suivante avant exit 0 :
(sleep 10; python3 /home/pi/camera/ssdpcamera.py)&
Les parenthèses exécutent la commande en arrière‑plan après un court délai.
Aperçu du code
Voici un extrait concis des composants clés du script Python. Les fichiers sources complets sont fournis en pièces jointes.
#!/usr/bin/python3
import cv2
from picamera import PiCamera
from twisted.web import server, resource
# Initialisation caméra
camera = PiCamera()
camera.resolution = (640, 480)
camera.framerate = 32
# Détecteur de visage
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
# Serveurs SSDP et HTTP configurés pour permettre la découverte SmartThings et le polling d'état.
Le script capture continuellement des images, exécute la détection de visage par cascade de Haar, et notifie le hub SmartThings dès qu'une personne est détectée ou que la scène redevient vide.
Processus de fabrication
- STMicroelectronics LSM6DSOX : Capteur Inertiel Machine-Learning pour Suivi Activité Précis et Économe en Énergie
- Surveillance domestique sécurisée avec Home Assistant sur Raspberry Pi : Mouvement, Alarme et Capture Vidéo
- Construire un capteur de mouvement infrarouge DIY pour Raspberry Pi – Guide étape par étape
- Contrôler une LED avec un capteur de mouvement PIR sur Raspberry Pi
- Construire un compteur Geiger Raspberry Pi – Tutoriel capteur radiations open-hardware
- Maîtriser le GPIO Raspberry Pi : Interfacer un capteur PIR de mouvement sur B+/Modèle 2
- Déployer un réseau de capteurs sans fil dans un moulin à grain du 18e siècle
- Comment connecter, calibrer et programmer le capteur de mouvement PIR HC‑SR501 avec un Raspberry Pi
- Construire un robot évitant les obstacles avec Raspberry Pi – Guide débutant