Zaznavanje gibanja s PIR senzorjem in pošiljanje slike z Raspberry Pi kamere kot e-poštno sporočilo.
Hackster Inc.
Avtor: Ujjval Rathod
2021-302-48
Naredite si svoj sistem za zaznavanje premikanja oseb in zajemanje njihovih fotografij.
Komponente, uporabljene v tem projektu:
- Raspberry Pi 3 Model B
- Raspberry Pi kamera
- PIR senzor gibanja (kateri koli)
Potrebne programske aplikacije in spletne storitve:
- gmail račun
- SSH povezava
Zgodba
Pred kratkim sem ustvaril nov projekt in menil sem, da bi bilo dobro, če bi ga delil z vami na Hackster skupnosti. Neprestano poskušam temu obstoječemu projektu dodati nove funkcionalnosti.
Ta vsebina je samo za naročnike
Motivacijo za ta projekt sem dobil iz projekta, ki sem ga naredil brez PIR senzorja in je temeljil na zaznavanju obrazov za obdelavo slik. Spoznal sem, da ima veliko dolgih python in XML skript, kar bi bilo vsem težko razumljivo, v nekaterih primerih pa bi bilo zaznavanje gibanja in zajemanje slik učinkovitejše.
Trenutno projekt zajame sliko, ko s kamero Raspberry Pi zazna gibanje, in jo pošlje kot e-poštno obvestilo. Za pisanje skripta sem uporabil python in ga tudi objavil. Za pošiljanje in prejemanje e-pošte bi morali imeti dva e-poštna računa (uporabljal sem gmail). Priključil sem PIR senzor na GPIO 23. Če vaš gmail uporablja potrdila SSL, boste morda potrebovali druga vrata: 587.
Izgled vezja
Povezano RPi ploščo s kamero in PIR senzorjem vidimo na sliki 1.
Električna shema
Priključite priključek št. 3 na RaspberryPi (5V napajanje) na napajalni priključek senzorja. Povežite priključek št. 5 na RaspberryPi (GND) na GND senzorja. In povežite GPIO23 na RaspberryPi na izhodni priključek senzorja (seveda lahko uporabite drugi GPIO, potem pa je to treba ustrezno spremeniti v python kodi).
Programska koda
To je preprosta python koda, samo spremenite e-poštni naslov v vaš naslov. Po zajemu slike je nastavljenih 10 sekund zakasnitve. Tako bo naslednje gibanje zaznano šele po 10 sekundah. Vsak lahko spremeni ta čas glede na svoje zahteve.
from picamera import PiCamera
from time import sleep
import smtplib
import time
from datetime import datetime
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
import RPi.GPIO as GPIO
import time
toaddr = ‘TO_EMAIL’
me = ‘FROM_EMAIL’
Subject=’security alert’
GPIO.setmode(GPIO.BCM)
P=PiCamera()
P.resolution= (1024,768)
P.start_preview()
GPIO.setup(23, GPIO.IN)
while True:
if GPIO.input(23):
print(“Motion…”)
#camera warm-up time
time.sleep(2)
P.capture(‘movement.jpg’)
time.sleep(10)
subject=’Security allert!!’
msg = MIMEMultipart()
msg[‘Subject’] = subject
msg[‘From’] = me
msg[‘To’] = toaddr
fp= open(‘movement.jpg’,’rb’)
img = MIMEImage(fp.read())
fp.close()
msg.attach(img)
server = smtplib.SMTP(‘smtp.gmail.com’,587)
server.starttls()
server.login(user = ‘FROM_EMAIL’,password=’PASSWORD’)
server.send_message(msg)
server.quit()
Povzeto po:
https://www.hackster.io/ujur007/raspberry-pi-home-security-system-with-camera-and-pir-sensor-6154f3?f=1#