- Būtini komponentai:
- Darbinis paaiškinimas:
- Grandinės aprašymas:
- „Raspberry Pi“ konfigūravimo ir programavimo paaiškinimas:
Daiktų interneto (IoT) pasaulyje, kai turime visas technologijas, kurios pervers mūsų gyvenimą, puiki idėja sukurti sistemą, kurią būtų galima valdyti ir stebėti iš bet kur. Namų apsaugai yra daugybė gerų apsaugos sistemų ir fotoaparatų, tačiau jie yra daug brangesni, todėl šiandien mes sukursime pigų paprastą „ Raspberry Pi“ pagrįstą įsibrovėlių perspėjimo sistemą, kuri ne tik perspės jus el. Paštu, bet ir atsiųs nuotrauką Įsibrovėlis, kai aptinka bet kurį.
Šiame IoT pagrįstame projekte sukursime namų apsaugos sistemą naudodami PIR jutiklį ir PI kamerą. Ši sistema aptiks įsibrovėlio buvimą ir greitai įspės vartotoją išsiųsdama jam perspėjimo laišką. Šiame laiške taip pat bus įsibrovėlio paveikslėlis, užfiksuotas „Pi“ kameros. Avietė Pi naudojama visai sistemai valdyti. Šią sistemą galima įdiegti prie pagrindinių jūsų namų ar biuro durų, ir jūs galite ją stebėti iš bet kurios pasaulio vietos naudodamiesi savo el. Paštu per internetą.
Būtini komponentai:
- Avietė Pi
- Pi kamera
- PIR jutiklis
- LED
- Bandomoji Lenta
- Rezistorius (1k)
- Jungiamieji laidai
- Maitinimo šaltinis
Visus šiame projekte naudojamus komponentus galite įsigyti čia.
Darbinis paaiškinimas:
Darbas su šiuo projektu yra labai paprastas. PIR jutiklis naudojamas aptikti bet kurio asmens buvimą, o „Pi“ kamera naudojama vaizdams užfiksuoti, kai aptiktas buvimas.
Kai kas nors ar įsibrovėlis patenka į PIR jutiklio diapazoną, PIR jutiklis suaktyvina „Pi“ kamerą per „Raspberry Pi“. „Raspberry pi“ siunčia komandas „Pi“ kamerai, kad spustelėtų paveikslėlį ir jį išsaugotų. Po to „Raspberry Pi“ sukuria laišką ir išsiunčia jį nurodytu pašto adresu su neseniai spustelėjamais vaizdais. Laiške kaip priedas yra pranešimas ir įsibrovėlio paveikslėlis. Čia mes panaudojome pranešimą „Prašome rasti priedą“, jį galite atitinkamai pakeisti pabaigoje pateiktame kode.
Čia nuotraukos išsaugomos „Raspberry Pi“ su pavadinimu, kuriame yra įrašymo laikas ir data. Kad galėtume patikrinti įsibrovėlio įėjimo laiką ir datą, tiesiog žiūrėdami paveikslėlio pavadinimą, patikrinkite toliau pateiktus vaizdus. Jei esate „Pi Camera“ naujokas, patikrinkite mūsų ankstesnę „Lankytojų stebėjimo sistemos su„ Pi Camera “pamoką.
Taip pat galite reguliuoti šios sistemos aptikimo diapazoną arba atstumą naudodami PIR jutiklio potenciometrus. Sužinokite daugiau apie PIR jutiklį čia, jei norite reguliuoti diapazoną, taip pat patikrinkite PIR jutikliu pagrįstą įsilaužimo signalizaciją.
Grandinės aprašymas:
Šioje įsibrovėlių perspėjimo sistemoje prie „Raspberry Pi 3“ turime prijungti tik „ Pi Camera“ modulį ir PIR jutiklį. „Pi“ kamera yra prijungta prie „Raspberry Pi“ kameros angos, o PIR - prie GPIO kaiščio 18. Šviesos diodas taip pat prijungtas prie GPIO kaiščio 17 per 1k rezistorių.
„Raspberry Pi“ konfigūravimo ir programavimo paaiškinimas:
Programai čia naudojame Python kalbą. Prieš koduodamas vartotojas turi sukonfigūruoti „Raspberry Pi“. Žemiau turėtumėte pateikti dvi „Raspberry Pi“ darbo pradžios ir „Raspbian Jessie“ OS diegimo ir konfigūravimo „Pi“ instrukcijas:
- Darbo pradžia naudojant „Raspberry Pi“ - įvadas
- Darbo pradžia naudojant „Raspberry Pi“ - konfigūracija
Sėkmingai įdiegę „Raspbian OS“ į „Raspberry Pi“, turime įdiegti „Pi“ kameros bibliotekos failus, kad galėtumėte vykdyti šį projektą „Raspberry pi“. Norėdami tai padaryti, turime vykdyti nurodytas komandas:
$ sudo apt-get install python-picamera $ sudo apt-get installpython3-picamera
Po to vartotojas turi įgalinti „Raspberry Pi“ kamerą naudodamas „Raspberry Pi“ programinės įrangos konfigūravimo įrankį („raspi-config“):
$ sudo raspi-config
Tada pasirinkite Įjungti kamerą ir Įgalinti.
Tada vartotojas turi iš naujo paleisti „Raspberry Pi“, išleisdamas „ sudo“ perkrovimą , kad būtų galima atlikti naują nustatymą. Dabar jūsų „Pi“ kamera yra paruošta naudoti.
Dabar, sukūrę „Pi Camera“, įdiegsime programinę įrangą laiškams siųsti. Čia mes naudojame ssmtp, kuris yra lengvas ir geras sprendimas siųsti laiškus naudojant komandinę eilutę arba naudojant „Python“ scenarijų. Turime įdiegti dvi bibliotekas laiškams siųsti naudojant SMTP:
Sudo apt-get install ssmtp sudo apt-get install mailutils
Įdiegę bibliotekas, vartotojas turi atidaryti ssmtp.conf failą ir redaguoti šį konfigūracijos failą, kaip parodyta paveikslėlyje žemiau, tada išsaugoti failą. Norėdami išsaugoti failą ir išeiti iš jo, paspauskite „CTRL + x“, tada „y“, tada paspauskite „Enter“.
sudo nano /etc/ssmtp/ssmtp.conf
root = „YourEmailAddress“ mailhub = smtp.gmail.com: 587 hostname = raspberrypi AuthUser = YourEmailAddress AuthPass = YourEmailPassword FromLineOverride = YES UseSTARTTLS = YES UseTLS = YES
Mes taip pat galime jį išbandyti siųsdami bandomąjį laišką, pateikdami žemiau esančią komandą. Paštą gausite nurodytu el. Pašto adresu, jei viskas gerai:
aidas „Hello saddam“ - paštas -s „Testing…“ [email protected]
Šio projekto „Python“ programa atlieka labai svarbų vaidmenį atliekant visas operacijas. Visų pirma, mes įtraukiame reikalingas bibliotekas el. Paštu, inicijuojame kintamuosius ir apibrėžiame PIR, LED ir kitų komponentų kaiščius. Norint siųsti paprastą el. Laišką, pakanka „smtplib“, bet jei norite siųsti laiškus švaresniu būdu su temos eilute, priedu ir pan., Turite naudoti „MIME“ (daugiafunkcinius interneto pašto plėtinius).
importuoti „RPi.GPIO“ kaip „gpio“ importuoti „picamera“ importavimo laiką importuoti smtplib iš el. pašto adreso. MIMEMultipart importuoti MIMEMultipart iš el. pašto. MIMEText importuoti MIMEText iš el. pašto. MIMEBase importuoti MIMEBase iš el.
Po to mes inicijavome paštą ir nustatėme pašto adresą ir pranešimus:
fromaddr = "[email protected]" toaddr = "[email protected]" mail = MIMEMultipart () mail = fromaddr mail = toaddr mail = "Priedas" body = "Prašome rasti priedą"
Tada mes sukūrėme def sendMail (duomenų) funkciją laiškams siųsti:
def sendMail (duomenys): mail.attach (MIMEText (body, 'plain')) spausdinti duomenis dat = '% s.jpg'% data print dat attachment = open (dat, 'rb') image = MIMEImage (attachment.read ()) attachment.close () mail.attach (image) serveris = smtplib.SMTP ('smtp.gmail.com', 587) server.starttls () server.login (fromaddr, "jūsų slaptažodis") text = mail. as_string () server.sendmail (fromaddr, toaddr, text) server.quit ()
Funkcija def capture_image () sukurta norint užfiksuoti įsibrovėlio vaizdą su laiku ir data.
def capture_image (): data = time.strftime ("% d_% b_% Y-% H:% M:% S") camera.start_preview () time.sleep (5) spausdinti duomenų camera.capture ('% s. jpg '% data) camera.stop_preview () time.sleep (1) sendMail (duomenys)
Tada mes inicijavome „ Picamera“ su kai kuriais jo nustatymais:
camera = picamera.PiCamera () camera.rotation = 180 camera.awb_mode = 'auto' camera.brightness = 55
Ir dabar paskutinis, mes perskaitėme PIR jutiklio išvestį ir, kai jis padidėja, Raspberry Pi iškviečia funkciją capture_image (), kad užfiksuotų įsibrovėlio vaizdą ir išsiųstų įspėjimo pranešimą su įsibrovėlio paveikslėliu kaip priedą. Mes naudojome Sendmail () insdie capture_image () funkciją siunčiant laišką.
o 1: jei gpio.input (pir) == 1: gpio.output (led, HIGH) capture_image () o (gpio.input (pir) == 1): time.sleep (1) led, LOW) laikas. miega (0,01)
Taigi, kaip veikia ši „ Raspberry Pi“ apsaugos sistema, taip pat galite naudoti ultragarso jutiklį arba IR jutiklį, kad aptiktumėte įsilaužimo ar įsibrovėlio buvimą. Toliau patikrinkite visą kodą ir demonstracinį vaizdo įrašą.