Мазмуну:

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

Video: Raspberry Pi адам детектору + камера + колба: 6 кадам

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

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

1 -кадам: PIR Motion Sensor

PIR Motion Sensor
PIR Motion Sensor

PIR "Пассивдүү инфракызыл" дегенди билдирет жана бул кыймыл сенсору инфракызыл көрүнүштү көрүү жана инфракызыл өзгөртүүлөрдү алуу менен кыймылдарды кабыл алат. Демек, жалбырак жана адам сенсордун жанынан өткөндө, ал адамды гана аныктайт, анткени биз адамдар жылуулукту чыгарабыз жана инфракызыл нурларды чыгарабыз. Демек, кыймыл сенсору адамдын кыймылын аныктоо үчүн жакшы чечим болуп саналат.

2 -кадам: PIR Motion Sensor орнотуу

PIR Motion Sensor орнотуу
PIR Motion Sensor орнотуу

PIR кыймыл сенсору үчүн үч казык бар, Power, Output жана Ground. Пиндердин астында сиз энбелгилерди көрө аласыз, VCC Power үчүн, Output Out үчүн жана GND үчүн. Сенсор кыймылдарды аныктаганда, Output pin сенсорду туташтырган Raspberry Pi пинге жогорку сигналды чыгарат. Power пин үчүн, ал күч үчүн Raspberry Piдеги 5V пинге туташып турганын текшергиңиз келет. Менин долбоорум үчүн, мен Pin11деги Pi11 менен Output пинин туташтырууну чечтим.

Баарын туташтыргандан кийин, сенсорго төмөнкүдөй скрипттерди иштетүү аркылуу текст жөнөтө аласыз:

GPIO импорттоо убактысы катары GPO.cleanup () GPIO.setwarnings (False) = GPIO.input (11) if i == 0: #Кыймыл сенсорунан ЧЫГАРЫЛЫШ "Жок аныктоо", i time.sleep (0.1) elif i == 1: #Кыймыл сенсорунан чыгаруу ЖОГОРУ басылганда " Кыймыл аныкталды ", i time.sleep (0.1)

Пидеги сценарийди иштетип, сенсордун кыймылга келерин текшерүү үчүн колуңузду же досуңузду сенсордун алдына коюңуз.

3 -кадам: Raspberry Pi Camera Module жана Setup

Raspberry Pi Камера Модулу жана Орнотуу
Raspberry Pi Камера Модулу жана Орнотуу

Адамдар ысыктан улам инфракызыл нурларды чыгарышат, ошондой эле температурасы бар объекттер. Ошондуктан, жаныбарлар же ысык нерселер кыймыл сенсорун иштетиши мүмкүн. Биз аныктоо жарактуу экенин текшерүү үчүн бир жол керек. Ишке ашыруунун көптөгөн жолдору бар, бирок менин долбоорумда Raspberry Pi камера модулун колдонуп, кыймыл сенсору кыймылдарды алганда сүрөткө тартууну чечтим.

Камера модулун колдонуу үчүн, адегенде, төөнөгүчтөр Pi'деги камеранын уячасына сайылганын текшергиңиз келет. Түрү

sudo raspi-config

конфигурация интерфейсин ачуу үчүн жана камераңызды "интерфейс опцияларында" иштетүү үчүн Piңизде. Кайра жүктөөдөн кийин, пинин терүү аркылуу камерага чындыгында туташканын текшере аласыз

vcgencmd get_camera

жана ал сизге статусун көрсөтөт. Акыркы кадам - терүү аркылуу пикамера модулун орнотуу

пикамераны орнотуу

Бардык орнотуулардан кийин, сиз камераңызды төмөндөгүдөй скрипттерди иштетип текшере аласыз:

пикамерадан PiCamera импорттоо

убакыттан баштап уйку камерасы = PiCamera () camera.start_preview () уйку (2) camera.capture ('image.jpg') camera.stop_preview ()

Сүрөт каталогдо 'image.jpg' катары сакталат, бул сиздин камераңыздын скриптине окшош. Байкаңыз, сиз "уйку (2)" бар экенине жана саны 2ден чоңураак экенине ынангыңыз келет, ошондуктан камеранын жарык абалын жөнгө салууга жетиштүү убактысы бар.

4 -кадам: PIR Motion Sensor жана Камера Модулун айкалыштырыңыз

Менин долбоорумдун идеясы - кыймыл сенсору менен камера бир багытта карайт. Кыймыл сенсору кыймылдарды алган сайын, камера сүрөткө тартып алат, андыктан биз андан кийин эмне себеп болгонун текшере алабыз.

Сценарий:

GPIO катары RPi. GPIO импорттоо датадан импорттоо датасы импорттоо убактысын пикамерадан импорттоо PiCamera

GPIO.cleanup ()

GPIO.setwarnings (False) 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 болгондо counter> 0: end = str (datetime.now ()) log_f = open ('static/log.txt', ') a ') кабар = кабар +'; аягында ' + аягында +' / n 'басып чыгаруу (билдирүү) log_f.write (билдирүү) log_f.close () final =' static/' + str (pic_name) + ".jpg" pic_name = pic_name + 1 camera.capture (final) counter = 0 print "Intruders", i time.sleep (0.1) elif i == 1: #Качан кыймыл сенсорунан чыгаруу жогору болсо, counter == 0: current = str (datetime.now ()) message = 'Адам аныкталды:' + 'башталышы' + учурдагы эсептегич = эсептегич + 1 басып чыгаруу "Кирүүчү аныкталды", i time.sleep (0.1) camera.stop_preview ()

'Log.txt' каталогдору жана сүрөттөр 'статикалык', бул Флазканын иштеши үчүн зарыл.

5 -кадам: Колбага орнотуу

Flask үчүн орнотуу
Flask үчүн орнотуу

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' return render_template ('view.html', logs = final_logs, filename = name)

HTML файлы 'view.html' үстүнкү тилкеде (анткени мен бул жерде HTML коддорун көчүргөндө, чындыгында HTML FORMATка айланат …)

Жана долбоордун структурасы төмөндөгүдөй болушу керек (бирок, албетте, булардан башка файлдар көп):

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

6 -кадам: Жыйынтык

Жыйынтык
Жыйынтык

Бул ишке ашыруу үчүн, баары туура орнотулгандан кийин, браузерге IP дарегин терүү менен Raspberry Pi -ге кирүү мүмкүнчүлүгүнө ээ болушуңуз керек жана натыйжа бул кадамдын үстүңкү тилкесиндеги сүрөттө окшош болушу керек.