Агуулгын хүснэгт:

Raspberry Pi хүний илрүүлэгч + камер + колбо: 6 алхам
Raspberry Pi хүний илрүүлэгч + камер + колбо: 6 алхам

Видео: Raspberry Pi хүний илрүүлэгч + камер + колбо: 6 алхам

Видео: Raspberry Pi хүний илрүүлэгч + камер + колбо: 6 алхам
Видео: BTT - Manta E3EZ - EZ2130 2024, Долдугаар сарын
Anonim
Raspberry Pi хүний илрүүлэгч + камер + колбо
Raspberry Pi хүний илрүүлэгч + камер + колбо

Энэхүү гарын авлагад би Raspberry Pi IoT төслийнхөө алхамуудыг авч үзэх болно - PIR Motion Sensor, Raspberry Camera модулийг ашиглан энгийн аюулгүй байдлын IoT төхөөрөмж бүтээх, Колботой илрүүлэх бүртгэлд хандах.

Алхам 1: PIR хөдөлгөөн мэдрэгч

PIR хөдөлгөөн мэдрэгч
PIR хөдөлгөөн мэдрэгч

PIR нь "Идэвхгүй хэт улаан туяаны" гэсэн утгатай бөгөөд энэхүү хөдөлгөөн мэдрэгч нь хэт улаан туяаны үзэмжийг харж, хэт улаан туяаны өөрчлөлтийг олж авах замаар хөдөлгөөнийг авдаг. Тиймээс, навч, хүн мэдрэгчээр дамжин өнгөрөхөд энэ нь зөвхөн хүнийг л илрүүлдэг, учир нь бид хүн төрөлхтөн дулаан үүсгэж улмаар хэт улаан туяа цацруулдаг. Тиймээс хөдөлгөөн мэдрэгч нь хүний хөдөлгөөнийг илрүүлэх сайн сонголт юм.

Алхам 2: PIR Motion Sensor -ийн тохиргоо

PIR хөдөлгөөн мэдрэгчийн тохиргоо
PIR хөдөлгөөн мэдрэгчийн тохиргоо

PIR хөдөлгөөн мэдрэгч, цахилгаан, гаралт, газардуулга гэсэн гурван зүү байдаг. Тээглүүрийн доор та VCC for Power, Output for Output, GND гэсэн шошгыг харж болно. Мэдрэгч нь хөдөлгөөнийг илрүүлэх үед гаралтын зүү нь мэдрэгчийг холбосон Raspberry Pi зүү рүү өндөр дохио өгөх болно. Power pin -ийн хувьд та Raspberry Pi дээрх 5V зүүтэй холбогдсон эсэхийг шалгах хэрэгтэй. Миний төслийн хувьд би Output pin -ийг Pi11 дээрх Pin11 -тэй холбохыг сонгосон.

Бүгдийг холбосны дараа та доорх шиг скрипт ажиллуулж мэдрэгч рүү мессеж бичих боломжтой.

GPIO импортлох цаг GPIO.cleanup () GPIO.setwarnings (Худал) GPIO.setmode (GPIO. BOARD) GPIO.setup (11, GPIO. IN) #PIR хөдөлгөөн мэдрэгчийн Pin 11 дэх гаралтыг унших үед True: i = GPIO.input (11) if 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

бөгөөд энэ нь танд статусыг харуулах болно. Сүүлийн алхам бол бичээд пикамера модулийг суулгах явдал юм

pip пикамера суулгах

Бүх тохиргоог хийсний дараа та доорх шиг скриптүүдийг ажиллуулж камераа туршиж үзэх боломжтой.

пикамераас 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 (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: #Хэрэв тоолуур> 0: end = str (datetime.now ()) log_f = нээлттэй ('static/log.txt') бол хөдөлгөөн мэдрэгчийн гаралт LOW байхад. a ') message = message +'; ' + төгсгөлд' төгсгөл final) тоолуур = 0 хэвлэх "Халдлагагүй хүмүүс", i time.sleep (0.1) elif i == 1: #Хэрэв тоолуур == 0 бол одоогийн мэдрэгчээс гарах гаралт өндөр байх үед: current = str (datetime.now ()) message = 'Хүн илрүүлсэн:' + 'эхлэх' + одоогийн тоолуур = тоолуур + 1 хэвлэх "Халдлага илрүүлсэн", i time.sleep (0.1) camera.stop_preview ()

'Log.txt' болон зургийн лавлахууд нь "статик" бөгөөд энэ нь Колбыг ажиллуулахад шаардлагатай байдаг.

Алхам 5: Колбонд тохируулах

Колбонд тохируулах
Колбонд тохируулах

Flask бол Python дээр бичигдсэн, Werkzeug багаж хэрэгсэл, Jinja2 загвар хөдөлгүүр дээр суурилсан бичил вэб хүрээ юм. Үүнийг хэрэгжүүлэх, арчлахад хялбар байдаг. Flask -ийн талаар илүү сайн заавар авахын тулд би энэ линкийг санал болгож байна: Flask Mega Tutorial

Миний төслийн гол скрипт 'route.py':

appfolder импортлох 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 = logs logs: final_logs.append (log. strip ()) name = str (len (final_logs) -1)+'. jpg' return render_template ('view.html', logs = final_logs, filename = name)

'View.html' HTML файл нь дээд талд байна (учир нь би энд HTML кодыг хуулж байхдаа HTML формат руу шилждэг …)

Төслийн бүтэц нь доорх шиг харагдах ёстой (гэхдээ мэдээж эдгээрээс илүү олон файлууд байна):

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

Алхам 6: Үр дүн

Үр дүн
Үр дүн

Үүнийг хэрэгжүүлэхийн тулд бүх зүйл зөв тохируулагдсаны дараа та Raspberry Pi руу хөтөч дээрээ IP хаягаа оруулах замаар нэвтрэх боломжтой байх ёстой бөгөөд үр дүн нь энэ шатанд дээд талын зурган дээрх шиг харагдах ёстой.