SmartThings-bewegingsensor met computer vision op Raspberry Pi 3
Implementeer een computer-vision-ingeschakelde bewegingsensor op een Raspberry Pi 3 uitgerust met een PiCamera. Het apparaat detecteert gezichten en verzendt aanwezigheidsinformatie via UPnP over het lokale netwerk naar SmartThings.
Ik ga ervan uit dat u een Raspberry Pi 3 met een werkende camera en OpenCV geïnstalleerd hebt. Als niet, raad ik deze tutorial aan 🙂
Een custom SmartThings Device Handler aanmaken
In de SmartThings IDE, maak een nieuwe device handler voor onze computer-vision-bewegingsensor.
Ga naar de sectie "My Device Handler" en klik op "+ Create New Device Handler" in de rechterbovenhoek.
In dit geval maken we het vanuit code. Klik op het tweede tabblad "From Code", plak de bijgevoegde Device Handler-code en klik op "Create".
Op de volgende pagina klik op "Publish" om het apparaat beschikbaar te maken voor u.
De SmartThings App schrijven
Op dezelfde manier, maak een SmartApp. In de sectie "My SmartApps" klik op "+ Create New SmartApps" in de rechterbovenhoek.
Maak het vanuit code, plak de bijgevoegde SmartApp-code en klik op "Create". Publiceer het daarna.
De Raspberry Pi klaarmaken
We hebben nu een Python-script nodig dat afbeeldingen vastlegt, gezichten detecteert en de status aan SmartThings rapporteert.
Installeer de vereiste bibliotheken:
pip install imutils sudo apt-get install python3-twisted-web
Maak een map voor het script:
mkdir -p /home/pi/camera cd /home/pi/camera
Maak het scriptbestand:
sudo nano ssdpcamera.py
Plak de bijgevoegde Camera Python Script en bewaar het.
Test het script met python3 ssdpcamera.py – u zou log-output moeten zien die camera-initialisatie en gezichtsdetectie-evenementen aangeeft.
De Raspberry Pi ontdekken en koppelen
In de SmartThings-mobiele app, navigeer naar Marketplace → SmartApps, zoek dan "Computer Vision (Connect)" onder "+ My Apps".
Zorg ervoor dat de Raspberry Pi aangezet is en het Python-script draait. De SmartApp initieert ontdekking; zodra het apparaat verschijnt, selecteer het en tik op "Done".
Na koppeling begint het apparaat aanwezigheidsupdates te rapporteren aan uw SmartThings-account.
Auto-startconfiguratie
Om het script automatisch bij opstart te draaien, bewerk /etc/rc.local en voeg het volgende toe vóór de exit 0-regel:
(sleep 10; python3 /home/pi/camera/ssdpcamera.py)&
De haakjes draaien de commando op de achtergrond na een korte vertraging.
Code-overzicht
Hieronder is een beknopt uittreksel van de sleutelcomponenten in het Python-script. Volledige bronbestanden zijn in de bijlagen.
#!/usr/bin/python3
import cv2
from picamera import PiCamera
from twisted.web import server, resource
# Camera-initialisatie
camera = PiCamera()
camera.resolution = (640, 480)
camera.framerate = 32
# Gezichtsdetector
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
# SSDP en HTTP-servers worden opgezet om SmartThings-ontdekking en status-polling toe te staan.
Het script vangt continu frames, voert Haar-cascade gezichtsdetectie uit en notificeert de SmartThings-hub wanneer een persoon gedetecteerd wordt of de scène leeg wordt.
Productieproces
- Veilige thuismonitoring met Home Assistant op Raspberry Pi: Beweging, alarm en videocapture
- Een DIY Infrarood Bewegingssensor Bouwen voor Raspberry Pi – Stapsgewijze Handleiding
- Een LED Besturen met een PIR-bewegingssensor op Raspberry Pi
- Een Raspberry Pi Geiger-teller Bouwen – Open-Hardware Stralingssensor Tutorial
- Raspberry Pi GPIO onder de knie: Een PIR-bewegingsensor interfacen op B+/Model 2
- Een draadloos sensornetwerk implementeren op een 18e-eeuwse graanmalerij
- Hoe de HC‑SR501 PIR-bewegingsensor aan te sluiten, kalibreren en programmeren met een Raspberry Pi
- Bouw een Raspberry Pi Obstakel-vermijdende Robot – Een Beginnersgids
- Zeven Bewezen Manieren Hoe Computervisie Efficiëntie Drijft & Kosten Bespaart
- Revolutioneren van Industrie 4.0: Hoe Computer Vision Slimme Productie Drijft
- STMicroelectronics LSM6DSOX: machine‑learning‑enabled inertiële sensor voor nauwkeurige, energie‑efficiënte activiteits‑tracking