Orodha ya maudhui:

Kigunduzi cha Kibinadamu cha Raspberry Pi + Kamera + chupa: Hatua 6
Kigunduzi cha Kibinadamu cha Raspberry Pi + Kamera + chupa: Hatua 6

Video: Kigunduzi cha Kibinadamu cha Raspberry Pi + Kamera + chupa: Hatua 6

Video: Kigunduzi cha Kibinadamu cha Raspberry Pi + Kamera + chupa: Hatua 6
Video: Shock!!! THE SOULS OF THE DEAD BEING TRAPPED BY THE DEMON IN THIS SCARY HOUSE 2024, Novemba
Anonim
Kigunduzi cha Kibinadamu cha Raspberry Pi + Kamera + chupa
Kigunduzi cha Kibinadamu cha Raspberry Pi + Kamera + chupa

Katika mafunzo haya, nitatembea kupitia hatua za Mradi wangu wa Raspberry Pi IoT - Kutumia Sensor ya Mwendo wa PIR, Moduli ya Kamera ya Raspberry kujenga kifaa rahisi cha IoT, na Kupata logi ya kugundua na Flask.

Hatua ya 1: Sensor ya Mwendo wa PIR

Sensorer ya Mwendo wa PIR
Sensorer ya Mwendo wa PIR

PIR inasimama kwa "Passive Infrared" na sensa hii ya mwendo inachukua mwendo kwa kutazama maoni ya infrared na kuchukua mabadiliko ya infrared. Kwa hivyo, na jani na mwanadamu anayepita kitambuzi, hugundua tu mwanadamu kwani sisi kama wanadamu tunazalisha joto na kwa hivyo hutoa miale ya infrared. Kwa hivyo, sensor ya mwendo ni chaguo nzuri kwa kugundua harakati za wanadamu.

Hatua ya 2: Usanidi wa sensorer ya PIR Motion

Usanidi wa sensorer ya Motion ya PIR
Usanidi wa sensorer ya Motion ya PIR

Kuna pini tatu za sensorer ya mwendo wa PIR, Nguvu, Pato na Ground. Chini ya pini unaweza kuona lebo, VCC ya Nguvu, Kati ya Pato na GND kwa ardhi. Wakati sensorer inagundua harakati, pini ya Pato itatoa ishara ya JUU kwa pini ya Raspberry Pi ambayo unaunganisha sensa na. Kwa pini ya Nguvu, unataka kuhakikisha kuwa inaunganisha na pini ya 5V kwenye Raspberry Pi kwa nguvu. Kwa mradi wangu, ninachagua kuunganisha pini ya Pato na Pin11 kwenye Pi.

Baada ya kuunganisha kila kitu, unaweza kuandika sensa yako kwa kutumia maandishi kama hii hapa chini:

kuagiza RPi. GPIO kama GPIOingiza wakati GPIO.cleanup () GPIO.tahadhari (Uongo) GPIO.setmode (GPIO. BOARD) GPIO.setup (11, GPIO. IN) #Soma pato kutoka kwa sensorer ya mwendo wa PIR kwenye Pin 11 ilhali ni kweli: i = GPIO.input (11) ikiwa i == 0: #Wakati pato kutoka kwa sensorer ya mwendo ni kuchapisha LOW "Hakuna kugundua", i time.sleep (0.1) elif i == 1: #Wakati pato kutoka kwa sensorer ya mwendo ni chapisho la JUU " Harakati imegunduliwa ", i time.sleep (0.1)

Endesha hati kwenye Pi yako, na uweke mikono yako au rafiki yako mbele ya sensa ili kuangalia ikiwa sensorer inachukua harakati.

Hatua ya 3: Moduli ya Kamera ya Raspberry Pi na Usanidi

Moduli na Usanidi wa Kamera ya Raspberry Pi
Moduli na Usanidi wa Kamera ya Raspberry Pi

Binadamu hutoa miale ya infrared kwa sababu ya joto, na vivyo hivyo vitu vyenye joto. Kwa hivyo, wanyama au vitu vya moto vinaweza kusababisha sensorer ya mwendo pia. Tunahitaji njia ya kuangalia ikiwa ugunduzi ni halali. Kuna njia nyingi za kutekeleza, lakini katika mradi wangu, ninachagua kutumia moduli ya kamera ya Raspberry Pi kuchukua picha wakati sensor ya mwendo inachukua harakati.

Kutumia moduli ya kamera, kwanza unataka kuhakikisha kuwa pini zimechomekwa kwenye nafasi ya kamera kwenye Pi. Andika

Sudo raspi-config

kwenye Pi yako kufungua kiolesura cha usanidi, na uwezesha kamera katika 'chaguzi za kuingiliana'. Baada ya kuanza upya, unaweza kujaribu ikiwa Pi imeunganishwa na kamera kwa kuandika

vcgencmd pata_kamera

na itakuonyesha hali hiyo. Hatua ya mwisho ni kusanikisha moduli ya picha kwa kuandika

bomba kufunga picamera

Baada ya usanidi wote, unaweza kujaribu kamera yako kwa kutumia maandishi kama hii hapa chini:

kutoka kwa picha ya kuagiza PiCamera

kutoka wakati kuagiza kamera ya kulala = PiCamera () kamera. kuanza_preview () kulala (2) kamera.kamataji ('image.jpg') camera.stop_preview ()

Picha itahifadhiwa kama 'image.jpg' kwenye saraka sawa na ile ya hati yako ya kamera. Kumbuka, unataka kuhakikisha 'kulala (2)' iko na nambari ni kubwa zaidi kuliko 2 kwa hivyo kamera ina wakati wa kutosha kurekebisha hali ya nuru.

Hatua ya 4: Unganisha Sura ya Mwendo wa PIR na Moduli ya Kamera

Wazo la mradi wangu ni kwamba sensa ya mwendo na kamera zitakutana na mwelekeo huo huo. Wakati wowote sensor ya mwendo inachukua harakati, kamera itachukua picha ili tuweze kuangalia ni nini husababisha harakati baadaye.

Hati:

kuagiza RPi. GPIO kama GPIOkuanzia wakati wa kuingiza wakati wa kuagiza wakati kutoka kwa picha ya kuagiza kamera

Usafishaji wa GPIO ()

Maonyo ya GPIO. Uwongo (Uongo) GPIO.setmode (GPIO. BOARD), 'w') log_f. karibu ()

kamera = PiCamera ()

pic_name = 0

mwoneko awali wa kamera ()

saa. kulala (2)

wakati Kweli:

i = GPIO.input (11) ikiwa i == 0: #Wakati pato kutoka kwa sensorer ya mwendo LOW ikiwa counter> 0: end = str (datetime.now ()) log_f = open ('static / log.txt', ' a ') ujumbe = ujumbe +'; mwisho kwa '+ mwisho +' / n 'chapisha (ujumbe) log_f.writ (message) log_f.close () final =' static / '+ str (pic_name) + ".jpg" pic_name = pic_name + 1 camera. mwisho) counter = 0 print "Hakuna waingiliaji", i time.sleep (0.1) elif i == 1: # Wakati pato kutoka kwa sensorer ya mwendo ni HIGH ikiwa counter == 0: current = str (datetime.now ()) message = 'Binadamu amegunduliwa:' + 'anza saa' + ya sasa ya kaunta = kaunta + chapa 1 "Mjinga amegunduliwa", i time.sleep (0.1) camera.stop_preview ()

Saraka za 'log.txt' na picha ni 'tuli', ambayo ni muhimu kwa Flask kufanya kazi.

Hatua ya 5: Sanidi kwa Flask

Sanidi kwa chupa
Sanidi kwa chupa

Flask ni mfumo mdogo wa wavuti ulioandikwa katika Python na kulingana na vifaa vya Werkzeug na injini ya templeti ya Jinja2. Ni rahisi kutekeleza na kudumisha. Kwa mafunzo bora ya Flask, ninapendekeza kiungo hiki: Flask Mega Tutorial

Hati kuu, 'routes.py', ya mradi wangu:

kutoka kwa kuingiza programu-jalizi programu

APP_ROOT = os.path.dirname (os.path.abspath (_ file_)) # inahusu application_top

APP_STATIC = os.path.join (APP_ROOT, 'tuli')

@ appFlask.route ('/', methods = ['GET', 'POST'])

def view (): log_f = open (os.path.join (APP_STATIC, 'log.txt'), 'r') magogo = log_f.readlines () final_logs = kwa magogo ya kuingia: final_logs.append (log. strip ()) name = str (len (final_logs) -1) + '-j.webp;

Faili ya HTML 'view.html' iko kwenye upau wa juu (kwa sababu wakati ninakili nambari za HTML hapa, inageuka kuwa FORMAT ya HTML…)

Na muundo wa mradi unapaswa kuonekana kama kitu chini (lakini kwa kweli kuna faili zaidi ya hizi):

iotproject / appfolder / routes.py templates / view.html static / log.txt 0-j.webp

Hatua ya 6: Matokeo

Matokeo
Matokeo

Kwa utekelezaji huu, baada ya kila kitu kusanidi kwa usahihi, unapaswa kupata Raspberry Pi yako kwa kuandika anwani yake ya IP kwenye kivinjari, na matokeo yanapaswa kuonekana kama picha kwenye bar ya juu kwa hatua hii.

Ilipendekeza: