Mundarija:

Raspberry Pi bilan muzlatgich uchun yuzni aniqlash tizimi: 7 qadam (rasmlar bilan)
Raspberry Pi bilan muzlatgich uchun yuzni aniqlash tizimi: 7 qadam (rasmlar bilan)

Video: Raspberry Pi bilan muzlatgich uchun yuzni aniqlash tizimi: 7 qadam (rasmlar bilan)

Video: Raspberry Pi bilan muzlatgich uchun yuzni aniqlash tizimi: 7 qadam (rasmlar bilan)
Video: Начало → Изучайте английский → Освойте ВСЕ ОСНОВЫ АНГЛИЙСКОГО ЯЗЫКА, которые вам НУЖНО знать! 2024, Noyabr
Anonim
Image
Image
Raspberry Pi bilan muzlatgich uchun yuzni aniqlash tizimi
Raspberry Pi bilan muzlatgich uchun yuzni aniqlash tizimi
Raspberry Pi bilan muzlatgich uchun yuzni aniqlash xavfsizlik tizimi
Raspberry Pi bilan muzlatgich uchun yuzni aniqlash xavfsizlik tizimi

Internetni ko'zdan kechirganimda, xavfsizlik tizimlarining narxi 150 dollardan 600 dollargacha va undan yuqori bo'lganini aniqladim, lekin hamma echimlar (hatto juda qimmatlari ham) sizning uyingizdagi boshqa aqlli asboblar bilan birlashtirilishi mumkin emas! Masalan, siz eshik oldida xavfsizlik kamerasini o'rnatolmaysiz, shuning uchun u sizga yoki do'stlaringizga avtomatik ravishda eshikni ochadi!

Men har qanday joyda foydalanishingiz mumkin bo'lgan oddiy, arzon va kuchli echim topishga qaror qildim! Qanday qilib arzon va uy qurilishi xavfsizlik tizimlarini yaratish bo'yicha ko'plab qo'llanmalar mavjud, lekin men ularning haqiqatan ham noan'anaviy qo'llanilishini ko'rsatmoqchiman - yuzni tanib oladigan muzlatgich uchun xavfsizlik tizimi!

Bu qanday ishlaydi? Sovutgich tepasiga qo'yilgan IP -kamera, sensorlar (ikkita tugma) odam muzlatgich eshigini ochganini aniqlaydi, shundan so'ng Raspberry Pi o'sha odamning rasmini oladi (IP -kamera bilan), keyin uni Microsoft Face API -ga yuboradi. tasvirni tahlil qilish va odamning ismini olish. Bu ma'lumot bilan Raspberry Pi "kirish ro'yxatini" skanerlaydi: agar odamda muzlatgichga kirishga ruxsat bo'lmasa, Raspberry egasiga elektron pochta, matnli xabar va twitter orqali xabar beradi! (Yuqoridagi rasmlarga qarang)

Nima uchun? Tizim sizga oila a'zolaringizni nazorat qilish imkonini beradi, ayniqsa ular dietada yoki yarim tundan keyin ovqat yemaslik bilan kurashayotganda! Yoki shunchaki o'yin -kulgi uchun foydalaning!

Bundan tashqari, siz kamerani old eshigingizga o'rnatishingiz va tizimni siz, oila a'zolaringiz yoki do'stlaringiz yaqinlashganda eshikni ochish uchun sozlashingiz mumkin. Va bu oxirigacha emas! Ilovaning imkoniyatlari cheksiz!

Boshlaylik!

1 -qadam: Tayyorgarlik

Tayyorgarlik
Tayyorgarlik

Sizga kerak bo'ladi:

  • Raspberry Pi 3 (siz eski versiyalardan foydalanishingiz mumkin, lekin uchinchi avlod Wi-Fi-ga ega, shuning uchun bu juda qulay)
  • Tugmalar
  • Simlar
  • Eski smartfon yoki Raspberry Pi kamerasi

Siz qilishingiz kerak bo'lgan birinchi narsa - Raspberry Pi -ni sozlash. Buni qanday qilish haqida batafsil ko'rsatmalarni bu erda va bu erda topishingiz mumkin, lekin biz ushbu qo'llanmada eng muhim qadamlarni ko'rib chiqamiz.

  1. Win32 DiskImager -ni bu erdan yuklab oling (agar siz Windows -dan foydalansangiz)
  2. SD formatlashni bu yerdan yuklab oling
  3. SD -kartani kompyuterga joylashtiring va uni SD Formatter yordamida formatlang
  4. Bu yerdan Raspbian tasvirini yuklab oling ("Raspbian Jessie with pixel" ni tanlang)
  5. Win32 DiskImager -ni ishga tushiring, SD -kartangizni tanlang, Raspbian tasviriga yo'lni belgilang va "Yozish" tugmasini bosing.
  6. Raspberry Pi -ga SD -kartani joylashtiring va quvvatni yoqing!

Bundan tashqari, siz Raspberry Pi -ni tizimga SSH orqali kirishni sozlashingiz kerak bo'ladi. Internetda juda ko'p ko'rsatmalar mavjud, masalan, siz undan foydalanishingiz mumkin, yoki monitor va klaviaturani ulashingiz mumkin.

Endi sizning Pi sozlangan va siz davom etishga tayyormiz!

2 -qadam: Sensor yaratish

Sensor yasash
Sensor yasash
Sensor yasash
Sensor yasash
Sensor yasash
Sensor yasash

Bosqich tavsifi: Ushbu bosqichda biz muzlatgich eshigini ochgan va Raspberry Pi -ni ishga tushirgan odamni aniqlaydigan sensor yaratamiz.

Uni sozlash uchun sizga avval tayyorlagan 2 tugma kerak bo'ladi. Birinchi tugma eshik ochilganda, ikkinchi tugma eshik ochilganda, biz odamni suratga olayotganimizda aniqlanadi.

  1. Lehim simlari tugmachalarga.
  2. Birinchi tugmani muzlatgich eshigiga mahkamlang, shunda eshik yopilganda u bosiladi (yuqoridagi rasmga qarang)
  3. Ikkinchi tugmani muzlatgich eshigiga yuqoridagi rasmda ko'rsatilgandek ulang. Bu tugma har doim qo'yib yuborilishi kerak, faqat eshik rasmga tushganda. Uni sozlash uchun siz muzlatgichga biror narsa biriktirishingiz kerak, shunda eshik kerakli darajada ochilganda bu tugma bosiladi (yuqoridagi rasmlarga qarang).
  4. Tugmalardan Raspberry Pi ga simlarni ulang: birinchi tugma GPIO 23 va erga, ikkinchi tugma GPIO 24 va erga (Fritzing diagrammasiga qarang).

Eslatma: Men BCM pinoutini ishlataman (taxta emas), bu erda o'qilgan farq haqida ko'proq ma'lumot.

Python qobig'ini ishga tushirish uchun Raspberry Pi -ga SSH orqali ulangandan so'ng, terminalga yozing:

python3

Agar siz Raspberry Pi -ga monitor va klaviaturani biriktirmoqchi bo'lsangiz, menyudan "Python 3 IDLE" ni ishga tushiring.

Keyingi qadam - Raspberry Pi -ni tugmalar bilan ishlash. Biz GPIO 23 va 24 pinlariga maxsus tinglovchilarni biriktiramiz, ular "yuqoriga ko'tarilish" va "pasayish" hodisalarini tinglaydi. Agar shunday bo'lsa, tinglovchilar biz belgilagan funktsiyalarni chaqirishadi. "Ko'tarilgan chekka" tugma bosilgan va hozir qo'yib yuborilganligini bildiradi (birinchi tugma - eshik ochiladi), "tushgan qirrasi" tugma qo'yib yuborilganligini bildiradi (ikkinchi tugma - eshik ma'lum bir nuqtaga yetdi). Tugmalar funktsiyasi haqida ko'proq - bu erda.

Birinchidan, pinlarga kirishni ta'minlaydigan kutubxonani import qiling:

RPi. GPIO -ni GPIO sifatida import qilish

Endi voqea sodir bo'lganda chaqiriladigan maxsus funktsiyalarni aniqlang:

def sensori1 (kanal): bosib chiqarish ("sensor 1 tetiklandi") def sensori2 (kanal): chop etish ("sensor 2 tetiklandi)

Tugatish turini o'rnating:

GPIO.setmode (GPIO. BCM)

Pimlarni sozlash:

GPIO.setup (23, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (24, GPIO. IN, pull_up_down = GPIO. PUD_UP)

Tinglovchilarni biriktiring:

GPIO.add_event_detect (23, GPIO. RISING, qayta qo'ng'iroq = sensor1, bouncetime = 300) GPIO.add_event_detect (24, GPIO. FALLING, qayta qo'ng'iroq = sensor2, bouncetime = 300)

Endi siz sinab ko'rishingiz mumkin! Agar siz 1 -tugmani bosgan bo'lsangiz, siz "sensor 1 tetiklandi" degan xabarni ko'rasiz, 2 -tugma sizga "sensor 2 ishga tushdi" xabarini beradi.

Eslatma: Tajriba tugagach, quyidagi funktsiyani chaqirishni unutmang: GPIO.cleanup ().

Eshik biz suratga oladigan joyga yetganda chaqiriladigan yana bir funktsiyani o'rnataylik! Siz buni o'zingiz qilishingiz yoki bu erda biriktirilgan mening ilovamdan foydalanishingiz mumkin (sensor.py)

Eslatma: sensor.py faqat sinov maqsadlarida ishlatiladi, men oxirgi bosqichga biriktirilgan to'liq funksiyali fayllar.

3 -qadam: IP -kamerani sozlash

IP -kamerani sozlash
IP -kamerani sozlash
IP -kamerani sozlash
IP -kamerani sozlash
IP -kamerani sozlash
IP -kamerani sozlash

Qadam tavsifi: Endi biz eski smartfonni IP -kamera sifatida sozlaymiz.

IP -kamera sifatida smartfondan foydalanish ilova orqali amalga oshiriladi. Android, iOS, Windows Phone uchun turli xil ilovalar mavjud. Men Android uchun "IP -veb -kamera" deb nomlangan birini tanladim. Bu bepul dastur va uni sozlash oson.

Ilovani ishga tushiring va "Video sozlamalari" bo'limiga o'ting, shunda ilova taqdim etadigan rasmlarning aniqligini belgilaydi. Keyin "Serverni ishga tushirish" ni bosing (yuqoridagi birinchi rasm). Ekranning pastki qismida siz kameraning ip manzilini ko'rishingiz kerak (yuqoridagi ikkinchi rasmga qarang). Brauzerda siz https://cam_ip_address/photo-j.webp

Nihoyat, kamerani muzlatgichga ulang (oxirgi rasm yuqoridagi).

4 -qadam: Face API

Face API
Face API

Qadam ta'rifi: Ushbu bosqichda biz yuzni aniqlash va odamlarni identifikatsiyalash bilan shug'ullanadigan Microsoft Face API haqida gaplashamiz.

Microsoft Face API - bu yuzni aniqlash xizmati bo'lib, uning yordamida biz rasmlarni tahlil qilib, undagi odamlarni aniqlay olamiz.

Birinchidan, sizga Microsoft Azure hisob qaydnomasi kerak. Agar sizda yo'q bo'lsa, uni bu erda bepul yaratishingiz mumkin.

Ikkinchidan, https://portal.azure.com saytiga o'ting, chap tomonda "Yangi" ni bosing, "Kognitiv xizmatlar APIlari" shaklini kiriting, uni tanlang va "Yaratish" tugmasini bosing. Yoki bu havolani ochishingiz mumkin. Endi siz xizmat nomini kiritishingiz kerak, obuna turini, sizga kerak bo'lgan API turini (bizning holatlarimizda Face API), joylashuvni, narxlanish darajasini, resurslar guruhini tanlashingiz va qonuniy shartlarni qabul qilishingiz kerak (bu bosqichga qo'shilgan skrinshotni ko'ring).

Uchinchidan, "Barcha manbalar" ni bosing, Face API xizmatini tanlang va foydalanish statistikasini, hisob ma'lumotlarini va boshqalarni ko'ring.

Face API tafsilotlarini bu erda topishingiz mumkin, turli dasturlash tillarida misollar keltirilgan. Ushbu loyiha uchun biz pythondan foydalanmoqdamiz. Siz hujjatlarni o'qishingiz va o'zingizning funktsiyalar to'plamingizni yaratishingiz mumkin yoki siz bu erda berilganidan foydalanishingiz mumkin (bu Microsoft tomonidan taqdim etilgan funktsiyalar to'plami emas, faqat ushbu loyiha uchun zarur bo'lgan nuqtalar). Mening python fayllarim bu bosqichga biriktirilgan.

Keling, Face API bilan ishlash tuzilishiga o'tamiz. "Identifikatsiya" funksiyasidan foydalanish uchun biz odamlar kutubxonasini yaratishimiz kerak, uning yordamida Face API xizmati ilova tomonidan olingan suratlarni taniydi. Uni sozlash uchun quyidagi amallarni bajaring:

  1. Guruh yaratish
  2. Bu guruhga odamlarni qo'shing
  3. Bu odamlarga yuz qo'shing
  4. Poyezdlar guruhi
  5. O'zingiz aniqlamoqchi bo'lgan odam bilan fotosuratni yuboring (siz xizmatda nomzodlarni qidiradigan rasm va guruh identifikatorini ko'rsatishingiz kerak)
  6. Natija: Bunga javoban siz yuborgan fotosuratda bo'lishi mumkin bo'lgan nomzodlar ro'yxatini olasiz.

Men guruhlar, yakka odamlar va bitta fotosuratlar bilan ishlashga imkon beradigan o'ziga xos funktsiyali uchta fayl yaratdim:

  • PersonGroup.py - quyidagi funktsiyalarni o'z ichiga oladi: guruh yaratish, guruh haqida ma'lumot olish, barcha guruhlaringiz ro'yxatini olish, guruhni o'rgatish va mashg'ulotlar maqomini olish.
  • Person.
  • Face.py - quyidagi xususiyatlarni o'z ichiga oladi: rasmdagi yuzni aniqlash, shaxsni aniqlash, shaxsning ismini olish

"Tanish.py" nomli faylda men tasvirning yuzi bor -yo'qligini tekshirishga va ko'rsatilgan shaxsga yuz qo'shishga imkon beradigan xususiyatlarni taqdim etaman (ko'rsatilgan papkadagi ko'plab rasmlardan avtomatik ravishda yuz qo'shiladi).

Ushbu qadamga biriktirilgan faylni yuklab oling, oching va "KEY" global o'zgaruvchisini ushbu uchta faylda o'zgartiring: PersonGroup.py, Person.py va Face.py siz o'z kalitingiz bilan topishingiz mumkin: portal.azure.com> barcha manbalar > yuz api xizmati (yoki siz buni qanday atagansiz)> tugmalar yorlig'i. Siz ikkita tugmachadan birini ishlatishingiz mumkin.

Eslatma: bu erda biz Face API xizmatini odamlarni tanishga o'rgatmoqchimiz, shuning uchun quyidagi amallarni har qanday kompyuterdan bajarish mumkin (buning uchun Raspberry Pi kerak emas) - o'zgarishlar Microsoft serverida saqlanadi.

KEY -ni o'zgartirgandan so'ng, tanishni.py -ni ishga tushiring va python qobig'iga quyidagi buyruqni kiriting:

PersonGroup.create ("oila", "fff-fff")) // siz o'z ismingiz va identifikatoringizdan foydalanishingiz mumkin.

printResJson guruhi (PersonGroup.getPersonGroup ('fff-fff'))

Siz yaratgan guruh haqidagi ma'lumotlarni ko'rishingiz kerak. Endi kiriting:

printResJson (Person.createPerson ('fff-fff', 'shaxs nomi'))

Endi siz shaxsiy guvohnomani olasiz. Bu odamning suratlari bo'lgan papkani yarating, shunda barcha tasvirlar uning yuzini o'z ichiga oladi. Tanishuv.py -da DetectFaceOnImages funktsiyasidan foydalanishingiz mumkin, bu sizga qaysi fotosuratlar yuzi aniqlanganligini ko'rsatadi. Endi buyruqni bajaring:

addFacesToPerson ("rasmli papka", "oldingi buyruqdan keyin olingan shaxs identifikatori", "fff-fff")

Keyin biz o'z xizmatimizni quyidagilarni kiritish orqali o'rgatishimiz kerak:

PersonGroup.trainPersonGroup ('fff-fff') printResJson (PersonGroup.getPersonGroupTrainingStatus ('fff-fff'))

Endi bizning guruhimiz o'qitildi va odamni aniqlashga tayyor.

Rasmdagi odamni tekshirish uchun siz:

Face.checkPerson (rasm, 'fff-fff')

Bunga javoban siz rasmda kim bo'lishi mumkinligi va nomzodlar ro'yxatini olasiz.

E'tibor bering: har safar odamga yoki odamga yuz qo'shsangiz, guruhni o'rgatishingiz kerak bo'ladi!

5-qadam: Qizil tugunli konfiguratsiya

Qizil tugunli konfiguratsiya
Qizil tugunli konfiguratsiya

Qadam ta'rifi: Ushbu bosqichda biz sizning muzlatgichingizga kirishni buzish haqida sizni xabardor qiladigan tugun-qizil oqimni yaratamiz =)

Agar Raspberry Pi sizning Raspbian Jessie noyabr 2015 yoki undan keyingi versiyasida ishlasa, Node-Red-ni o'rnatishingiz shart emas, chunki u allaqachon o'rnatilgan. Siz faqat uni yangilashingiz kerak. Iltimos, bu erda qo'llanmani ishlating.

Endi biz Twilio tugunini Node-Red-ga o'rnatishimiz kerak, shuning uchun biz matnli xabarni ishga tushiramiz. Terminalni oching va kiriting:

cd ~/.node-rednpm tugun-qizil-tugun-twilio ni o'rnating

Bu erda Twilio tuguni haqida ko'proq ma'lumot. Shundan so'ng, terminalga yozib tugun-qizilni ishga tushiring:

qizil tugun

Keyin quyidagi manzilga o'ting: https://127.0.0.1:1880/ - agar siz Raspberry Pi -da brauzerni ochsangiz: // {raspberry_pi_ip}: 1880/ - agar siz Node -Red muharririni boshqa kompyuterdan ochmoqchi bo'lsangiz.

Malinali pi -ning IP -manzilini bilish uchun ushbu yo'riqnomadan foydalaning.

Endi siz "Node-Red" muharriri tugunlari ro'yxatidan Twilio tugunini topishingiz kerak (odatda "ijtimoiy" guruhdan keyin paydo bo'ladi).

Oqimni yaratish vaqti keldi!

Eslatma: siz bu bosqichga biriktirilgan mening oqimimdan foydalanishingiz mumkin, lekin tugunlarni sozlashni unutmang: elektron pochta, twitter va twilio. Bu haqda keyinroq o'qing.

Bizning oqimimiz asosiy dasturimizdan POST so'rovini qabul qiladigan "xabardor qilish" tugunidan boshlanadi va kirish buzilishi haqidagi ba'zi ma'lumotlarni o'z ichiga oladi (ma'lumotlar namunasini "ob'ektlarni qabul qilish to'g'risida" sharhlar tugunida topish mumkin). Bu tugun darhol "Ok" xabari bilan javob beradi, shuning uchun asosiy dastur ma'lumotlarning qabul qilinganligini biladi (Oqim: /bildirish> Ok bilan javob> javob). Nosozliklarni tuzatish uchun pastki qismida msg.payload nomi bilan yashil tugun mavjud: agar biror narsa ishlamayotgan bo'lsa, uni ishlatishingiz mumkin.

Birinchi tugundan (/xabar berish) "Ma'lumotlar mavzusi" va "Tasvir mavzusi" ga targ'ib qilingan ma'lumotlar mos ravishda "ma'lumotlar" va "tasvir" mavzulari qo'shilgan.

"Kompilyatsiya" tugunida biz "ma'lumotlar" mavzusidagi ma'lumotlarni (birinchi qadamda oladigan) va "tasvir" mavzusidagi tasvirni olamiz (rasm /home/pi/image-j.webp

Keyingi qadam, kirish ro'yxatimizdagi odam yoki begona ekanligini tekshirish (checkConditions tuguni). Biz olgan ma'lumotlarda "ishonchli shaxs" maydoni mavjud: "rost" bu odamni taniganimizni bildiradi, lekin u kirish ruxsatini buzgan, "yolg'on" - bu notanish odam.

Natija "rost" bo'lganda, biz twitter, twilio va elektron pochta xabarlarini yuboramiz; natija "noto'g'ri" bo'lganda - faqat elektron pochta va twilio. Biz elektron pochta xabarini, unga biriktirilgan rasm va elektron pochta mavzusini, xabar bilan twilio uchun ob'ektni yaratamiz. Twitter uchun "ishonchliPerson" rost bo'lsa, biz ob'ektga ma'lumotlarni qo'shamiz. Keyin bu uchta ob'ektni uch xil tugunga yuboring.

Eslatma: Agar quyidagi tugun xabar olmagan bo'lsa, biz unga "null" yuboramiz.

Xabar berish uchun tugunlarni sozlash vaqti keldi!

Twitter Oqimga "twitter" tugunini qo'shing. Uni ikki marta bosish bilan oching. "Twitter identifikatori" yonidagi qalamni bosing. Keyin "Twitter orqali autentifikatsiya qilish uchun shu erni bosing" tugmasini bosing. Tvitter hisob qaydnomangizga kiring va "Node-Red" ga kerakli ruxsatlarni bering.

"Elektron pochta" tugunini oqimga qo'shing. Agar siz Gmail -dan foydalanmasangiz, siz quyidagi sohalarda ma'lumotlarni o'zgartirishingiz kerak bo'ladi - "Server" va "Port" (elektron pochta agentingizning yordam sahifalarida qaysi server va portdan foydalanish kerakligini topishingiz mumkin), aks holda ularni o'zgartirmang. maydonlar.

  • To> xabarlar yuboriladigan elektron pochta manzili
  • Userid> elektron pochtangizdan kirish (ehtimol "Kimga" maydoniga o'xshash bo'lishi mumkin)
  • Parol> elektron pochta hisob qaydnomangizdan parol
  • Ism> bu tugunning nomi

Twilio https://www.twilio.com/try-twilio saytiga o'ting va hisobni ro'yxatdan o'tkazing. Tasdiqlang. Https://www.twilio.com/console saytiga o'ting. "Telefon raqamlari" ni bosing (katta # belgisi) va bepul raqam yarating. Agar siz AQShdan tashqarida bo'lsangiz, GEO ruxsatnomalarini qo'shishingiz kerak, https://www.twilio.com/console/sms/settings/geo-pe… saytiga o'ting va o'z mamlakatingizni qo'shing.

Endi "Node-Red" tahrirlovchisiga o'ting, Twilio tugunini qo'shing, barcha maydonlarni sozlash va to'ldirish uchun ustiga ikki marta bosing:

  • Hisob ma'lumotlari> Mahalliy hisob ma'lumotlaridan foydalaning
  • Twilio> tahrirlash

    • Hisob qaydnomasi SID> bu erdan https://www.twilio.com/console manzilini oling
    • > Siz yaratgan virtual raqamni kiriting
    • Token> bu yerdan oling
    • Ism> Twilio
  • Chiqish> SMS
  • > Sizning telefon raqamingizga
  • Ism> bu tugunning nomi.

Deploy ni bosing

Endi sizning oqimingiz tayyor! Siz POST so'rovini ko'rsatilgan ob'ekt bilan yuborish orqali sinab ko'rishingiz mumkin!

6 -qadam: Butun loyihani kompilyatsiya qilish

Butun loyihani kompilyatsiya qilish
Butun loyihani kompilyatsiya qilish
Butun loyihani kompilyatsiya qilish
Butun loyihani kompilyatsiya qilish

Bosqich tavsifi: Ushbu bosqichda biz barcha qismlarni birlashtiramiz va ularni alohida tizim sifatida ishlashga majbur qilamiz.

Ushbu bosqichda siz:

  1. Eski smartfonni ip -kamera sifatida sozlang
  2. Ishlaydigan sensorlar mavjud
  3. Microsoft Face API -ni o'rgatgan
  4. Konfiguratsiya qilingan tugun-qizil oqim

Endi biz 2 -qadamda yozgan kodni takomillashtirishimiz kerak. Aniqroq aytganda, jarayon eshikni ochganda chaqiriladi. Bu funksiyada biz quyidagilarni bajaramiz:

  1. IP -kameradan rasm oling va uni "/home/pi/" da "image.jpg" nomi bilan saqlang ("getImage" faylidagi "fromIpCam" funktsiyasi).
  2. Rasmdagi odamning ismini oling ("tanib olish" faylidagi "checkPerson" funktsiyasi)
  3. Bu odamga kirish ruxsatini tekshiring ("kirish" faylidagi "tekshirish" funktsiyasi)
  4. "Tekshirish" funktsiyasining natijasi bo'yicha xabar yozish
  5. Node-Redga tuzilgan xabarni yuborish ("sendData" faylidagi "toNodeRed" funktsiyasi)

Eslatma: ko'rsatilgan funktsiyalarning to'liq kodini ko'rish uchun ushbu bosqichga biriktirilgan zip faylini yuklab oling.

"FromIpCam" funktsiyasi haqida. Bu funksiya sizning IP -kamerangizga GET so'rovini yuboradi, javoban tasvirni oladi va uni siz ko'rsatgan yo'lga saqlaydi. Ushbu funktsiyani bajarish uchun siz kameraning IP -manzilini ko'rsatishingiz kerak.

"CheckPerson" funktsiyasi haqida. Funktsiya parametr sifatida rasmdan odam qidirmoqchi bo'lgan rasm va guruhga yo'l oladi. Birinchidan, u tasvirdagi yuzni aniqlaydi (Face.py fayli, "aniqlash" funktsiyasi). Bunga javoban, agar yuz aniqlansa, u identifikatorga ega bo'ladi. Keyin u "identifikatsiya qilish" funktsiyasini chaqiradi (Face.py fayli), ular ma'lum guruhda o'xshash odamlarni topadi. Bunga javoban, agar odam topilsa, u shaxs identifikatorini oladi. Keyin "shaxs" funktsiyasini (Person.py fayli) parametr sifatida shaxs identifikatori bilan chaqiring, "shaxs" funktsiyasi ko'rsatilgan identifikatorli odamni qaytaradi, biz odamning ismini olamiz va uni qaytaramiz.

"Tekshirish" funktsiyasi haqida. Bu funktsiya "kirish" fayliga joylashtirilgan, u erda "kirish ro'yxati" global o'zgaruvchi sifatida joylashtiriladi (siz xohlaganingizcha o'zgartirishingiz mumkin). Oldingi funktsiyadan odamning ismini bilib, "tekshirish" funktsiyasi, bu odamni kirish ro'yxati bilan solishtiring va natijani qaytaring.

Eslatma: to'liq loyiha keyingi bosqichga biriktirilgan.

7 -qadam: Xulosa

Bu bosqichda men siz ochadigan va Raspberry Pi -ga joylashtirishingiz kerak bo'lgan to'liq loyihani biriktirdim.

Ushbu loyihani ishga tushirish uchun "main.py" faylini ishga tushiring.

Agar siz Raspberry Pi-ni SSH orqali boshqaradigan bo'lsangiz, bitta qobiqdan ikkita dasturni ishga tushirishingiz kerak bo'ladi: python dasturi va Node-Red. Terminalga quyidagilarni kiriting:

qizil tugun

"Ctrl + Z" tugmachasini bosing va yozing:

ish o'rinlari

Siz Node-Red jarayonini ko'rdingiz. Jarayonning identifikatoriga qarang va yozing:

bg

Endi Node-Red fonda ishlashni boshlashi kerak. Keyin loyihangiz bilan katalogga o'ting va asosiy dasturni ishga tushiring:

python3 main.py

Eslatma: python fayllaridagi kalitni o'zgartirishni unutmang (4-qadam) va tugun-qizil oqimdagi hisob ma'lumotlari (5-qadam)

Bajarildi! Sovutgichingiz xavfsiz!

Umid qilamanki, bu hal qilinmagan narsa sizga yoqdi! Fikrlaringizni komentariyada qoldiring.

Agar siz mening loyihamga ovoz bersangiz xursand bo'lardim =)

Rahmat!

Tavsiya: