Мазмұны:
- 1 -қадам: PIR қозғалыс сенсоры
- 2 -қадам: PIR қозғалыс сенсорын орнату
- 3 -қадам: Raspberry Pi камера модулі және оны орнату
- 4 -қадам: PIR қозғалыс сенсоры мен камера модулін біріктіріңіз
- 5 -қадам: Колбаны орнату
- 6 -қадам: Нәтиже
Бейне: Raspberry Pi адам детекторы + камера + колба: 6 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:26
Бұл оқулықта мен Raspberry Pi IoT жобасының қадамдарын - PIR Motion Sensor, Raspberry Camera модулін қолдана отырып, қарапайым қауіпсіз IoT құрылғысын жасауды және Flask көмегімен анықтау журналына кіруді үйренемін.
1 -қадам: PIR қозғалыс сенсоры
PIR «пассивті инфрақызыл» дегенді білдіреді және бұл қозғалыс сенсоры инфрақызыл көріністі қарап, инфрақызыл өзгерістерді қабылдау арқылы қозғалысты қабылдайды. Демек, сенсордан өтетін жапырақ пен адам тек адамды анықтайды, өйткені біз адамдар жылу шығарамыз және инфрақызыл сәуле шығарамыз. Демек, қозғалыс сенсоры - адамның қозғалысын анықтау үшін жақсы таңдау.
2 -қадам: PIR қозғалыс сенсорын орнату
PIR қозғалыс сенсорына арналған үш түйреуіш бар: қуат, шығыс және жер. Түйреуіштердің астында сіз жапсырмаларды көре аласыз, қуат үшін VCC, шығыс үшін шығыс және жерге арналған GND. Сенсор қозғалыстарды анықтаған кезде, шығыс түйреуіші сенсорды қосатын Raspberry Pi түйреуішіне жоғары сигнал шығарады. Қуат түйреуіші үшін, ол қуат үшін Raspberry Pi -дегі 5В істікшеге қосылатынына көз жеткізгіңіз келеді. Менің жобам үшін мен шығыс түйреуішті Pin11 -дегі Pi -ге қосуды таңдаймын.
Барлығын қосқаннан кейін сенсорға төмендегідей сценарийлерді жіберу арқылы мәтін жіберуге болады:
RPi. GPIO -ны GPIO импорттау уақыты ретінде GPIO.cleanup () GPIO.setwarnings (False) GPIO.setmode (GPIO. BOARD) GPIO.setup (11, GPIO. IN) #PIR қозғалыс сенсорынан Pin 11 -де оқуды оқу True: i = GPIO.input (11), егер i == 0: #Қозғалыс сенсорынан шығысы LOW басып шығарылса «Анықталмайды», i time.sleep (0.1) elif i == 1: #Қозғалыс сенсорынан шығысы жоғары баспа болса « Қозғалыс анықталды «, i time.sleep (0.1)
Пи сценарийін іске қосыңыз және сенсордың қозғалысты қабылдайтынын тексеру үшін қолыңызды немесе досыңызды сенсордың алдына қойыңыз.
3 -қадам: Raspberry Pi камера модулі және оны орнату
Адам инфрақызыл сәулені жылу әсерінен шығарады, сонымен қатар температурасы бар объектілер. Сондықтан жануарлар немесе ыстық заттар қозғалыс сенсорын іске қосуы мүмкін. Бізге анықтаудың жарамдылығын тексеру әдісі қажет. Іске асырудың көптеген жолдары бар, бірақ мен өз жобамда Raspberry Pi камера модулін қозғалыс сенсоры қозғалысты алған кезде суретке түсіру үшін қолдануды таңдадым.
Камера модулін пайдалану үшін алдымен түйреуіштердің Pi камерасындағы ұяға қосылғанына көз жеткізіңіз. Түрі
sudo raspi-config
конфигурация интерфейсін ашу үшін Pi -де камераны «интерфейс опцияларында» қосыңыз. Қайта жүктеуден кейін Pi теру арқылы камераға шынымен қосылғанын тексеруге болады
vcgencmd get_camera
және ол сізге мәртебесін көрсетеді. Соңғы қадам - теру арқылы пикамера модулін орнату
пикамераны орнатыңыз
Барлық параметрлерді орнатқаннан кейін камераны төмендегідей сценарийлерді іске қосу арқылы тексеруге болады:
пикамерадан PiCamera импорты
уақыт импорттық ұйқы камерасы = PiCamera () camera.start_preview () ұйқы (2) camera.capture ('image.jpg') camera.stop_preview ()
Сурет каталогта 'image.jpg' түрінде сақталады, ол сіздің камера сценарийімен бірдей. Назар аударыңыз, сіз «ұйықтау (2)» бар екеніне көз жеткізгіңіз келеді және саны 2 -ден көп, сондықтан камерада жарық жағдайын реттеуге жеткілікті уақыт бар.
4 -қадам: PIR қозғалыс сенсоры мен камера модулін біріктіріңіз
Менің жобамның идеясы - қозғалыс сенсоры мен камера бір бағытта болады. Қозғалыс сенсоры қозғалыстарды қабылдаған кезде, камера суретке түсіреді, осылайша біз кейіннен қозғалыстардың себебін тексере аламыз.
Сценарий:
RPi. GPIO -ны GPIO ретінде импорттау
GPIO.cleanup ()
GPIO.setwarnings (жалған) GPIO.setmode (GPIO. BOARD) GPIO.setup (11, GPIO. IN) #PIR қозғалыс сенсорының хабарламасынан оқу оқу = 'бастау' санауышы = 0 log_f = ашық ('static/log.txt'), 'w') log_f.close ()
камера = PiCamera ()
pic_name = 0
camera.start_preview ()
уақыт.ұйықтау (2)
шындық кезінде:
i = GPIO.input (11) if i == 0: #Қозғалыс сенсорынан шығыс LOW болғанда, егер есептегіш> 0: end = str (datetime.now ()) log_f = open ('static/log.txt', ') а)) хабар = хабар + '; соңы ' + end +' / n 'басып шығару (хабар) log_f.write (хабар) log_f.close () final =' static/' + str (pic_name) + «.jpg» pic_name = pic_name + 1 camera.capture (final) counter = 0 print «Invuders», i time.sleep (0.1) elif i == 1: #Егер қозғалыс сенсорынан шығыс жоғары болса, counter == 0: current = str (datetime.now ()) хабарлама = 'Адам анықталды:' + 'басталуы' + ағымдағы санауыш = есептегіш + 1 басып шығару «Кіруші анықталды», i time.sleep (0.1) camera.stop_preview ()
'Log.txt' каталогтары мен суреттер 'статикалық' болып табылады, бұл Флэш жұмыс істеуі үшін қажет.
5 -қадам: Колбаны орнату
Flask - бұл Python тілінде жазылған және Werkzeug құралдар жиынтығы мен Jinja2 үлгі қозғалтқышына негізделген шағын веб -құрылым. Оны іске асыру және күтіп ұстау оңай. Flask үшін жақсы оқулық үшін мен мына сілтемені ұсынамын: Flask Mega Tutorial
Менің жобамның 'route.py' негізгі сценарийі:
appFlask колбасынан импорттау render_template, қалтаны импорттау, импорттауды қайта бағыттау
APP_ROOT = os.path.dirname (os.path.abspath (_ file_)) # # application_top -қа сілтеме жасайды
APP_STATIC = os.path.join (APP_ROOT, «статикалық»)
@appFlask.route ('/', әдістер = ['АЛУ', 'ПОСТ'])
def view (): log_f = open (os.path.join (APP_STATIC, 'log.txt'), 'r') logs = log_f.readlines () final_logs = журналға кіру үшін: final_logs.append (журнал. strip ()) name = str (len (final_logs) -1)+'. jpg' render_template қайтару ('view.html', журналдар = final_logs, файл атауы = аты)
«View.html» HTML файлы жоғарғы жолақта орналасқан (себебі мен HTML кодтарын осында көшіргенде, ол шын мәнінде HTML FORMAT -қа ауысады …)
Жобаның құрылымы төмендегідей болуы керек (бірақ, әрине, бұл файлдар көп):
iotproject / appfolder / route.py templates / view.html static / log.txt 0-j.webp
6 -қадам: Нәтиже
Бұл әрекетті орындау үшін, бәрі дұрыс орнатылғаннан кейін, сіз браузерге IP мекенжайын енгізу арқылы Raspberry Pi -ге кіруіңіз керек және нәтиже осы қадамда жоғарғы жолақтағы суретке ұқсас болуы керек.