Мазмұны:

Raspberry Pi адам детекторы + камера + колба: 6 қадам
Raspberry Pi адам детекторы + камера + колба: 6 қадам

Бейне: Raspberry Pi адам детекторы + камера + колба: 6 қадам

Бейне: Raspberry Pi адам детекторы + камера + колба: 6 қадам
Бейне: Обнаружение масок для лица с использованием OpenCV, Keras/TF и глубокого обучения | Обнаружение масок в видео в реальном времени 2024, Қараша
Anonim
Raspberry Pi адам детекторы + камера + колба
Raspberry Pi адам детекторы + камера + колба

Бұл оқулықта мен Raspberry Pi IoT жобасының қадамдарын - PIR Motion Sensor, Raspberry Camera модулін қолдана отырып, қарапайым қауіпсіз IoT құрылғысын жасауды және Flask көмегімен анықтау журналына кіруді үйренемін.

1 -қадам: PIR қозғалыс сенсоры

PIR қозғалыс сенсоры
PIR қозғалыс сенсоры

PIR «пассивті инфрақызыл» дегенді білдіреді және бұл қозғалыс сенсоры инфрақызыл көріністі қарап, инфрақызыл өзгерістерді қабылдау арқылы қозғалысты қабылдайды. Демек, сенсордан өтетін жапырақ пен адам тек адамды анықтайды, өйткені біз адамдар жылу шығарамыз және инфрақызыл сәуле шығарамыз. Демек, қозғалыс сенсоры - адамның қозғалысын анықтау үшін жақсы таңдау.

2 -қадам: PIR қозғалыс сенсорын орнату

PIR қозғалыс сенсорын орнату
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 камера модулі және оны орнату
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 -ге кіруіңіз керек және нәтиже осы қадамда жоғарғы жолақтағы суретке ұқсас болуы керек.