Բովանդակություն:

Raspberry Pi- ով սառնարանի համար դեմքի ճանաչման անվտանգության համակարգ. 7 քայլ (նկարներով)
Raspberry Pi- ով սառնարանի համար դեմքի ճանաչման անվտանգության համակարգ. 7 քայլ (նկարներով)

Video: Raspberry Pi- ով սառնարանի համար դեմքի ճանաչման անվտանգության համակարգ. 7 քայլ (նկարներով)

Video: Raspberry Pi- ով սառնարանի համար դեմքի ճանաչման անվտանգության համակարգ. 7 քայլ (նկարներով)
Video: Ինչպես պարզել, որ ձեր դիմաց ՉԱՐ մարդ է․ Այս նշանները կօգնեն հասկանալ դա 2024, Հուլիսի
Anonim
Image
Image
Raspberry Pi- ով սառնարանի համար դեմքի ճանաչման անվտանգության համակարգ
Raspberry Pi- ով սառնարանի համար դեմքի ճանաչման անվտանգության համակարգ
Raspberry Pi- ով սառնարանի համար դեմքի ճանաչման անվտանգության համակարգ
Raspberry Pi- ով սառնարանի համար դեմքի ճանաչման անվտանգության համակարգ

Ինտերնետ դիտելիս ես հայտնաբերեցի, որ անվտանգության համակարգերի գները տատանվում են 150 $ -ից մինչև 600 $ և ավելի բարձր, բայց ոչ բոլոր լուծումները (նույնիսկ շատ թանկ լուծումները) կարող են ինտեգրվել ձեր տան այլ խելացի գործիքների հետ: Օրինակ, դուք չեք կարող անվտանգության տեսախցիկ տեղադրել ձեր առջևի դռան մոտ, այնպես որ այն ինքնաբերաբար դուռը բացում է ձեր կամ ձեր ընկերների համար:

Ես որոշեցի պատրաստել մի պարզ, էժան և հզոր լուծում, որը կարող եք օգտագործել ցանկացած վայրում: Կան բազմաթիվ ձեռնարկներ, թե ինչպես կարելի է ստեղծել էժան և ինքնաշեն անվտանգության համակարգեր, սակայն ես ուզում եմ ցույց տալ դրանց իսկապես ոչ մանրակրկիտ կիրառումը `դեմքի ճանաչմամբ սառնարանի անվտանգության համակարգը:

Ինչպես է դա աշխատում? Սառնարանի վերևում տեղադրված IP տեսախցիկը, սենսորները (երկու կոճակ) հայտնաբերում են, երբ մարդը բացում է սառնարանի դուռը, որից հետո Raspberry Pi- ն լուսանկարում է այդ անձին (IP տեսախցիկով), այնուհետև այն ուղարկում Microsoft Face API վերլուծել պատկերը և ստանալ անձի անունը: Այս տեղեկատվության շնորհիվ Raspberry Pi- ն սկանավորում է «մուտքի ցուցակը». Եթե անձը չունի սառնարան մուտք գործելու թույլտվություն, ազնվամորին սեփականատիրոջը տեղեկացնում է էլ. Փոստի, տեքստային հաղորդագրության և Twitter- ի միջոցով: (Տե՛ս վերևի նկարները)

Ինչո՞ւ: Համակարգը թույլ է տալիս վերահսկել ձեր ընտանիքի անդամներին, հատկապես երբ նրանք դիետա են պահում կամ կեսգիշերից հետո դժվարանում են սնվել: Կամ օգտագործեք այն պարզապես հաճույքի համար:

Ավելին, դուք կարող եք իրականում տեղադրել տեսախցիկը ձեր առջևի դռան մոտ և կարգավորել դուռը բացելու համակարգը, երբ դուք, ձեր ընտանիքի անդամները կամ ընկերները մոտենում են: Եվ սա դեռ վերջը չէ! Դիմումի հնարավորություններն անսպառ են:

Եկեք սկսենք!

Քայլ 1: Նախապատրաստում

Պատրաստում
Պատրաստում

Ձեզ հարկավոր կլինի.

  • Raspberry Pi 3 (կարող եք օգտագործել հին տարբերակները, բայց երրորդ սերունդը ունի Wi-Fi, այնպես որ դա շատ հարմար է)
  • Կոճակներ
  • Լարերը
  • Հին սմարթֆոն կամ Raspberry Pi տեսախցիկ

Առաջին բանը, որ դուք պետք է անեք, ձեր Raspberry Pi- ի կազմաձևումն է: Մանրամասն հրահանգներ, թե ինչպես դա անել, կարող եք գտնել այստեղ և այստեղ, բայց մենք կներկայացնենք այս ձեռնարկի ամենակարևոր քայլերը:

  1. Ներբեռնեք Win32 DiskImager- ը այստեղից (եթե օգտագործում եք Windows)
  2. Ներբեռնեք SD ձևաչափը այստեղից
  3. Տեղադրեք SD քարտը ձեր համակարգչի մեջ և ձևաչափեք այն SD ձևաչափով
  4. Ներբեռնեք Raspbian պատկերը այստեղից (Ընտրեք «Raspbian Jessie with pixel»)
  5. Գործարկեք Win32 DiskImager- ը, ընտրեք ձեր SD քարտը, նշեք Raspbian պատկերի ուղին, կտտացրեք «Գրեք»
  6. Տեղադրեք SD քարտ ձեր Raspberry Pi- ի մեջ և միացրեք էներգիան:

Բացի այդ, դուք պետք է կազմաձևեք ձեր Raspberry Pi- ն ՝ SSH- ի միջոցով համակարգ մուտք գործելու համար: Ինտերնետում կան բազմաթիվ հրահանգներ, կարող եք օգտագործել դրանք, օրինակ, կամ կարող եք կցել մոնիտոր և ստեղնաշար:

Այժմ ձեր Pi- ն կազմաձևված է, և դուք պատրաստ եք շարունակել:

Քայլ 2: Սենսոր պատրաստելը

Սենսոր պատրաստելը
Սենսոր պատրաստելը
Սենսոր պատրաստելը
Սենսոր պատրաստելը
Սենսոր պատրաստելը
Սենսոր պատրաստելը

Քայլ Նկարագրություն. Այս քայլում մենք կկատարենք սենսոր, որը կբացահայտի, երբ մարդը բացում է սառնարանի դուռը և ակտիվացնում Raspberry Pi- ն:

Այն կարգավորելու համար ձեզ հարկավոր կլինեն սկզբնական պատրաստած 2 կոճակները: Առաջին կոճակը կբացահայտի դուռը բացելիս, երկրորդ կոճակը կբացահայտի, երբ դուռը բացվի այն կետին, երբ մենք լուսանկարում ենք անձին:

  1. Լարերը կպցրեք կոճակներին:
  2. Սառնարանի դուռին ամրացրեք առաջին կոճակը, որպեսզի այն սեղմվի, երբ դուռը փակվի (տես վերևի նկարը)
  3. Կցեք երկրորդ կոճակը սառնարանի դռանը, ինչպես ցույց է տրված վերևում գտնվող լուսանկարում: Այս կոճակը պետք է բաց թողնել միշտ, բացառությամբ այն դեպքերի, երբ դուռը հասնում է այն կետին, երբ համակարգը նկարում է: Այն կարգավորելու համար հարկավոր է ինչ -որ բան ամրացնել ձեր սառնարանին, որպեսզի դուռը ցանկալի չափով բացելիս սեղմվի այս կոճակը (տե՛ս վերևի լուսանկարները):
  4. Կոճակներից լարեր ամրացրեք Raspberry Pi- ին. Առաջին կոճակը GPIO 23 -ին և գետնին, երկրորդ կոճակը GPIO 24 -ին և գետնին (տես սառցապատման դիագրամ):

Նշում. Ես օգտագործում եմ BCM pinout (ոչ տախտակ), տարբերության մասին ավելին կարդացեք այստեղ:

SSH- ի միջոցով ձեր Raspberry Pi- ին միանալուց հետո, python shell- ը գործարկելու համար մուտքագրեք տերմինալը.

պիթոն 3

Եթե մոնիտորը և ստեղնաշարը կցում եք Raspberry Pi- ին, պարզապես ընտրացանկից գործարկեք «Python 3 IDLE»:

Հաջորդ քայլն այն է, որ Raspberry Pi- ն աշխատի կոճակներով: Մենք կցուցադրենք հատուկ ունկնդիրներ GPIO 23 և 24 կապում, որոնք կլսեն «բարձրացող եզր» իրադարձության և «ընկնելու եզր» իրադարձությունը այդ կապում: Միջոցառման դեպքում ունկնդիրները կկանչեն մեր սահմանած գործառույթները: «Բարձրացող եզր» նշանակում է, որ կոճակը սեղմված է և այժմ բաց է թողնված (առաջին կոճակը - դուռը բացվում է), «ընկնելու եզրը» նշանակում է, որ կոճակը բաց է թողնված և այժմ սեղմված է (երկրորդ կոճակը - դուռը հասել է որոշակի կետի): Ավելին կոճակների ֆունկցիոնալության մասին `այստեղ:

Նախ, ներմուծեք գրադարան, որը մեզ հնարավորություն է տալիս մուտք գործել կապում.

ներմուծեք RPi. GPIO- ն որպես GPIO

Այժմ սահմանեք հատուկ գործառույթներ, որոնք կանչվելու են իրադարձությունը գործարկելիս.

def sensor1 (ալիք). տպել («սենսորը 1 գործարկվել է») def sensor2 (ալիք). տպել («սենսորը 2 գործարկվել է»)

Սահմանել պինետի տեսակը.

GPIO.setmode (GPIO. BCM)

Կարգավորել կապում.

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

Կցեք ունկնդիրներին.

GPIO.add_event_detect (23, GPIO. RISING, հետադարձ = sensor1, bouncetime = 300) GPIO.add_event_detect (24, GPIO. FALLING, callback = sensor2, bouncetime = 300)

Այժմ դուք կարող եք փորձարկել այն: Եթե սեղմում եք կոճակը 1 -ին, «սենսոր 1 -ը գործարկվել է» տերմինալում կտեսնեք հաղորդագրություն, 2 -րդ կոճակը ձեզ տալիս է «սենսոր 2 գործարկված է» հաղորդագրություն:

Նշում. Փորձարկումներն ավարտելուց հետո մի մոռացեք կանչել հետևյալ գործառույթը ՝ GPIO.cleanup ():

Եկեք ստեղծենք ևս մեկ գործառույթ, որը կոչվում է, երբ դուռը հասնում է այն կետին, որտեղ մենք լուսանկարում ենք: Դուք կարող եք դա անել ինքներդ կամ օգտագործել իմ կատարումը, որը ես կցել եմ այստեղ (sensor.py)

Նշում. Sensor.py- ն օգտագործվում է միայն փորձարկման նպատակների համար, որոնք լրիվ ֆունկցիոնալությամբ ֆայլերը կցել եմ վերջին քայլին:

Քայլ 3: Կարգավորեք IP տեսախցիկը

Կարգավորել IP տեսախցիկը
Կարգավորել IP տեսախցիկը
Կարգավորել IP տեսախցիկը
Կարգավորել IP տեսախցիկը
Կարգավորել IP տեսախցիկը
Կարգավորել IP տեսախցիկը

Քայլ նկարագրություն. Այժմ մենք պատրաստվում ենք կարգավորել հին սմարթֆոնը որպես IP տեսախցիկ:

Սմարթֆոնը որպես IP տեսախցիկ օգտագործելը կատարվում է հավելվածի միջոցով: Android- ի, iOS- ի, Windows Phone- ի համար կան տարբեր ծրագրեր, որոնք կարող եք օգտագործել: Android- ի համար ընտրեցի «IP վեբ -տեսախցիկ» անվանումը: Սա անվճար ծրագիր է և հեշտ է կազմաձևել:

Գործարկեք ծրագիրը, անցեք «Տեսանյութի նախապատվություններ» ՝ հավելվածի տրամադրած լուսանկարների լուծաչափը կարգավորելու համար: Այնուհետև կտտացրեք «Սկսել սերվերը» (առաջին պատկերը վերևում): Էկրանի ներքևում դուք պետք է տեսնեք տեսախցիկի IP հասցեն (տես երկրորդ նկարը վերևում): Բրաուզերում կարող եք մուտքագրել https://cam_ip_address/photo-j.webp

Վերջապես, տեսախցիկը ամրացրեք սառնարանին (Վերջին նկարը վերևում):

Քայլ 4: Face API

Face API
Face API

Քայլ Նկարագրություն. Այս քայլում մենք կխոսենք Microsoft- ի Face API- ի մասին, որը կատարում է դեմքի ճանաչում և նույնականացնում մարդկանց:

Microsoft- ի Face API- ն դեմքի ճանաչման ծառայություն է, որի միջոցով մենք կարող ենք վերլուծել լուսանկարները և բացահայտել դրանց վրա գտնվող մարդկանց:

Նախ, ձեզ հարկավոր է Microsoft Azure հաշիվ: Եթե չունեք, կարող եք անվճար ստեղծել այստեղ:

Երկրորդ, գնացեք https://portal.azure.com, ձախ կողմում կտտացրեք «Նոր», մուտքագրեք «ognանաչողական ծառայությունների API» ձևը, ընտրեք այն և կտտացրեք «Ստեղծել»: Կամ կարող եք բացել այս հղումը: Այժմ դուք պետք է մուտքագրեք ձեր ծառայության անունը, ընտրեք բաժանորդագրության տեսակը, ձեզ անհրաժեշտ API- ի տեսակը (մեր դեպքում դա Face API- ն է), գտնվելու վայրը, գնագոյացման մակարդակը, ռեսուրսների խումբը և համաձայնեք իրավական պայմաններին (տես այս քայլին ավելացված սքրինշոթը):

Երրորդ, կտտացրեք «Բոլոր ռեսուրսները», ընտրեք Face API ծառայությունը և տեսեք օգտագործման վիճակագրությունը, հավատարմագրերը և այլն:

Face API- ի մանրամասները կարելի է գտնել այստեղ, տրամադրվում են ծրագրավորման տարբեր լեզուներով օրինակներ: Այս նախագծի համար մենք օգտագործում ենք python: Կարող եք կարդալ փաստաթղթեր և կատարել ձեր սեփական գործառույթների փաթեթը կամ կարող եք օգտագործել այստեղ տրվածը (սա Microsoft- ի կողմից տրամադրված գործառույթների ամբողջական փաթեթը չէ, այլ միայն այն կետերը, որոնք անհրաժեշտ են այս նախագծի համար): Այս քայլին կցված են իմ python ֆայլերը:

Եկեք անցնենք Face API- ի հետ աշխատանքի կառուցվածքին: «Նույնականացում» գործառույթն օգտագործելու համար մենք պետք է ստեղծենք մարդկանց գրադարան, որոնց միջոցով Face API ծառայությունը կճանաչի հավելվածի կողմից արված լուսանկարները: Այն կարգավորելու համար հետևեք հետևյալ քայլերին.

  1. Ստեղծել խումբ
  2. Այս խմբին ավելացրեք անձինք
  3. Այս անձանց ավելացրեք դեմքեր
  4. Գնացքների խումբ
  5. Ներկայացրեք լուսանկար այն անձի հետ, ում ցանկանում եք նույնականացնել (դուք պետք է տրամադրեք լուսանկար և խմբի ID, որի ծառայությունը կփնտրի թեկնածուներին)
  6. Արդյունք. Ի պատասխան, դուք կստանաք այն թեկնածուների ցուցակը, ովքեր կարող են լինել ձեր ներկայացրած լուսանկարում:

Ես ստեղծել եմ երեք ֆայլ `հատուկ ֆունկցիոնալությամբ, որը թույլ է տալիս աշխատել խմբերի, միայնակ մարդկանց և միայնակ լուսանկարների հետ.

  • PersonGroup.py - պարունակում է հնարավորություններ, որոնք թույլ են տալիս ՝ ստեղծել խումբ, ստանալ տեղեկատվություն խմբի մասին, ստանալ ձեր բոլոր խմբերի ցանկը, վերապատրաստել խումբը և ստանալ վերապատրաստման կարգավիճակ
  • Person.py - պարունակում է հնարավորություններ, որոնք թույլ են տալիս. Ստեղծել մարդ, ստանալ անձի մասին տեղեկություններ, թվարկել նշված խմբի բոլոր անձանց, ավելացնել դեմքեր նշված անձին
  • Face.py - պարունակում է առանձնահատկություններ, որոնք թույլ են տալիս. Հայտնաբերել դեմքի պատկերը, նույնականացնել անձին, ստանալ նույնականացված անձի անունը

«Ճանաչում. Py» կոչվող ֆայլում ես տալիս եմ հնարավորություններ, որոնք թույլ են տալիս ստուգել, արդյոք պատկերը դեմք է պարունակում և դեմքեր ավելացնել նշված անձին (ինքնաբերաբար ավելացնում է դեմքը բազմաթիվ պատկերներից նշված թղթապանակից):

Ներբեռնեք այս քայլին կից ֆայլը, բացեք այն, փոխեք «KEY» գլոբալ փոփոխականը այս երեք ֆայլերում ՝ PersonGroup.py, Person.py և Face.py ձեր սեփական բանալին, որը կարող եք գտնել ՝ portal.azure.com> բոլոր ռեսուրսները: > face api ծառայություն (կամ ինչպես եք այն անվանել)> ստեղների ներդիր: Դուք կարող եք օգտագործել երկու բանալիներից որևէ մեկը:

Նշում. Այստեղ մենք պատրաստելու ենք Face API ծառայությունը `մարդկանց ճանաչելու համար, այնպես որ հետևյալ գործողությունները կարող են կատարվել ցանկացած համակարգչից (դրա համար Raspberry Pi- ն անհրաժեշտ չէ). Փոփոխությունները պահվում են Microsoft- ի սերվերում:

KEY- ը փոխելուց հետո գործարկեք ճանաչումը. Py և մուտքագրեք հետևյալ հրամանը python shell- ում.

PersonGroup.create («ընտանիք», «fff-fff»)) // կարող եք օգտագործել ձեր սեփական անունն ու id- ը

խումբ printResJson (PersonGroup.getPersonGroup ('fff-fff'))

Դուք պետք է տեսնեք ձեր ստեղծած խմբի տվյալները: Այժմ մուտքագրեք.

printResJson (Person.createPerson («fff-fff», «անունը անձի»))

Այժմ դուք ստանում եք անձը հաստատող փաստաթուղթ: Ստեղծեք թղթապանակ այս անձի պատկերներով, որպեսզի բոլոր պատկերները պարունակեն այս անձի դեմքը: Դուք կարող եք օգտագործել deteFaceOnImages գործառույթը nas.py- ում, որը ցույց է տալիս, թե որ լուսանկարների վրա է հայտնաբերվում դեմքը: Այժմ գործարկեք հրամանը.

addFacesToPerson («պատկերներով թղթապանակ», «անձի ID, որը ստացել եք նախորդ հրամանից հետո», «fff-fff»)

Այնուհետև մենք պետք է պատրաստենք մեր ծառայությունը ՝ մուտքագրելով հետևյալը.

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

Այժմ մեր խումբը պատրաստված է և պատրաստ է բացահայտել անձին:

Պատկերի վրա անձին ստուգելու համար կարող եք.

Face.checkPerson (պատկեր, 'fff-fff')

Ի պատասխան դուք կստանաք թեկնածուների ցուցակ և հավանականություն, թե ով է լուսանկարում:

Նշում. Ամեն անգամ, երբ որևէ անձի կամ անձի ավելացնում եք դեմքեր, դուք պետք է վերապատրաստեք խումբը:

Քայլ 5: Հանգույց-կարմիր կազմաձևում

Հանգույց-կարմիր կազմաձևում
Հանգույց-կարմիր կազմաձևում

Քայլ նկարագրություն. Այս քայլում մենք կստեղծենք Node-Red հոսք, որը ձեզ կտեղեկացնի ձեր սառնարանին մուտքի խախտման մասին =)

Եթե ձեր Raspberry Pi- ն աշխատում է Raspbian Jessie 2015 թվականի նոյեմբերին կամ ավելի ուշ տարբերակով, ապա կարիք չկա տեղադրել Node-Red- ը, քանի որ այն արդեն նախապես տեղադրված է: Պարզապես պետք է այն թարմացնել: Խնդրում ենք այստեղ օգտագործել ձեռնարկը:

Այժմ մենք պետք է տեղադրենք Twilio հանգույցը Node-Red- ում, որպեսզի կարողանանք տեքստային հաղորդագրություն առաջացնել: Բացեք տերմինալը և մուտքագրեք ՝

cd ~/.node-rednpm տեղադրել node-red-node-twilio

Ավելին Twilio հանգույցի մասին այստեղ: Դրանից հետո գործարկեք Node-Red տերմինալը մուտքագրելով.

հանգույց-կարմիր

Այնուհետև գնացեք ՝ https://127.0.0.1:1880/ - եթե ձեր Raspberry Pi- ում դիտարկիչ եք բացում

Ազնվամորու pi- ի IP հասցեն իմանալու համար օգտագործեք այս հրահանգը:

Այժմ դուք պետք է Twilio հանգույցը գտնեք ձեր Node-Red խմբագրիչի հանգույցների ցանկում (սովորաբար այն հայտնվում է «սոցիալական» խմբից հետո):

Theամանակն է հոսք ստեղծելու:

Նշում. Կարող եք օգտագործել այս քայլին կցված իմ հոսքը, բայց մի մոռացեք կարգավորել հանգույցները `էլ. Փոստ, թվիթեր և թվիլիո: Այդ մասին կարդացեք ավելի ուշ:

Մեր հոսքը սկսվում է «ծանուցել» հանգույցից, որն ընդունում է մեր հիմնական ծրագրից POST- ի հայտը ՝ մուտքի խախտման վերաբերյալ որոշ տվյալներով (տվյալների օրինակները կարելի է գտնել «օբյեկտներ ստանալու մասին» մեկնաբանության հանգույցում): Այս հանգույցն անմիջապես պատասխանում է «Լավ» հաղորդագրությամբ, այնպես որ հիմնական ծրագիրը իմանա, որ տվյալները ստացվել են (հոսք. /Ծանուցել> պատասխանը Ok> պատասխանի հետ): Կանաչ հանգույցը ներքևում ՝ msg.payload- ով կա վրիպազերծման նպատակով. Եթե ինչ -որ բան չի աշխատում, կարող եք օգտագործել այն:

«Տվյալների թեմա» և «Պատկեր թեմա» տարածվող բռունցքի հանգույցի (/ծանուցման) տվյալները, որտեղ համապատասխանաբար ավելացվել են «տվյալներ» և «պատկեր» թեմաները:

«Կազմել» հանգույցում մենք ստանում ենք տվյալներ (որոնք ստանում ենք առաջին քայլի ընթացքում) «տվյալներ» թեմայով և պատկեր «պատկեր» թեմայով (պատկերը վերցված է /home/pi/image-j.webp

Հաջորդ քայլը ստուգելն է ՝ արդյոք մեր մուտքի ցուցակից անձը, թե օտար է (checkConditions հանգույց): Մեր ստացած տվյալների մեջ կա «վստահելի անձ» դաշտ. «Ճշմարիտ» նշանակում է, որ մենք ճանաչում ենք այս անձին, բայց նա խախտել է մուտքի թույլտվությունը, «կեղծ» նշանակում է, որ տվյալ անձը օտար է:

Երբ արդյունքը «ճշմարիտ» է, մենք ծանուցում ենք ուղարկում twitter, twilio և էլ. երբ արդյունքը «կեղծ» է `միայն էլ. փոստ և twilio: Մենք ստեղծում ենք էլ. Նամակի համար հաղորդագրություն, կցված պատկեր և էլ. Փոստի թեմա, օբյեկտ ՝ twilio- ի համար ՝ հաղորդագրությամբ: Թվիթերի համար մենք տվյալներ ենք ավելացնում օբյեկտի վրա, եթե «trustedPerson» - ը ճշմարիտ է: Այնուհետեւ ուղարկեք այս երեք օբյեկտները երեք տարբեր հանգույցների:

Նշում. Եթե հետևյալ հանգույցը չպետք է հաղորդագրություն ստանա, մենք նրան պարզապես ուղարկում ենք «null»:

It'sամանակն է կարգավորել ծանուցումների համար հանգույցները:

Twitter Ավելացնել «twitter» հանգույց հոսքին: Բացեք այն կրկնակի սեղմումով: Կտտացրեք մատիտին «Twitter ID» - ի կողքին: Այնուհետև կտտացրեք «Կտտացրեք այստեղ ՝ Twitter- ով վավերացնելու համար»: Մուտք գործեք ձեր twitter հաշիվ և տվեք Node-Red- ի անհրաժեշտ թույլտվությունները:

EmailAl հոսքին ավելացնել «էլփոստի» հանգույց: Եթե դուք չեք օգտագործում Gmail- ը, ապա ձեզ հարկավոր է փոխել տվյալները հետևյալ դաշտերում ՝ «Սերվեր» և «Պորտ» (կարող եք գտնել, թե որ սերվերն ու նավահանգիստը պետք է օգտագործեք ձեր էլ. Փոստի գործակալի Օգնության էջերում), այլապես դրանք մի փոխեք դաշտերը:

  • Դեպի> էլփոստի հասցե, որին կուղարկվեն հաղորդագրությունները
  • Userid> մուտքագրեք ձեր էլ. Փոստից (գուցե նույնն է, ինչ «Դեպի» դաշտը)
  • Գաղտնաբառ> գաղտնաբառ ձեր էլփոստի հաշվից
  • Անուն> անուն այս հանգույցի համար

Twilio Գնացեք https://www.twilio.com/try-twilio և գրանցեք հաշիվ: Հաստատեք այն: Գնացեք https://www.twilio.com/console. Սեղմեք «Հեռախոսահամարներ» (մեծ # պատկերակ) և ստեղծեք անվճար համար: Եթե ԱՄՆ-ից դուրս եք, պետք է ավելացնեք GEO թույլտվություններ, գնացեք https://www.twilio.com/console/sms/settings/geo-pe… և ավելացրեք ձեր երկիրը:

Այժմ, գնացեք Node-Red խմբագիր, ավելացրեք Twilio հանգույցը, կրկնակի կտտացրեք դրա վրա ՝ բոլոր դաշտերը կազմաձևելու և լրացնելու համար.

  • Հավատարմագրեր> Օգտագործեք տեղական հավատարմագրերը
  • Twilio> խմբագրել

    • SID հաշվի> վերցրեք այստեղից
    • From> մուտքագրեք ձեր ստեղծած վիրտուալ համարը
    • Նշան> վերցրեք այստեղից
    • Անուն> Twilio
  • Ելք> SMS
  • Ձեր հեռախոսահամարին>
  • Անուն> անուն այս հանգույցի համար:

Կտտացրեք Տեղակայել:

Այժմ ձեր հոսքը պատրաստ է: Դուք կարող եք այն ստուգել ՝ ուղարկելով POST հարցումը նշված օբյեկտով:

Քայլ 6: Ամբողջ նախագծի կազմում

Կազմելով ամբողջ նախագիծը
Կազմելով ամբողջ նախագիծը
Կազմելով ամբողջ նախագիծը
Կազմելով ամբողջ նախագիծը

Քայլ նկարագրություն. Այս քայլում մենք բոլոր մասերը միասին կդնենք և կստիպենք աշխատել որպես առանձին համակարգ:

Այս քայլով դուք պետք է.

  1. Կարգավորեք հին սմարթֆոնը որպես ip տեսախցիկ
  2. Ունեն աշխատանքային սենսորներ
  3. Սովորեցրեց Microsoft- ի Face API- ն
  4. Կարգավորված հանգույց-կարմիր հոսք

Այժմ մենք պետք է բարելավենք ծածկագիրը, որը գրել ենք 2 -րդ քայլում: Ավելի կոնկրետ գործառական գործընթացը (), որը կոչվում է այն ժամանակ, երբ անձը բացում է դուռը: Այս գործառույթում մենք կանենք հետևյալը.

  1. Ստացեք պատկեր ip տեսախցիկից և պահեք այն «/home/pi/» - ում ՝ «image.jpg» անունով («getImage» ֆայլում «fromIpCam» գործառույթը)
  2. Ստացեք այդ պատկերի անձի անունը (գործառույթ «checkPerson» ֆայլում «ճանաչում»)
  3. Ստուգեք այդ անձի մուտքի թույլտվությունը (գործառույթ «ստուգել» ֆայլում «մուտք»)
  4. «Ստուգման» գործառույթի արդյունքի հիման վրա կազմեք հաղորդագրություն
  5. Ուղարկեք կազմված հաղորդագրություն Node-Red- ին (գործառույթը «toNodeRed» ՝ «sendData» ֆայլում)

Նշում. Նշված գործառույթների ամբողջական ծածկագիրը տեսնելու համար խնդրում ենք ներբեռնել այս քայլին կցված zip ֆայլը:

«FromIpCam» գործառույթի մասին: Այս գործառույթը կատարեք GET- ի հարցումը ձեր ip տեսախցիկին, ի պատասխան կենտրոնացեք պատկերի վրա և պահեք այն ձեր կողմից նշված ճանապարհին: Այս գործառույթին պետք է տրամադրեք տեսախցիկի IP հասցեն:

«CheckPerson» գործառույթի մասին: Ֆունկցիան ստանում է դեպի այն պատկերի և խմբի ուղին, որում դուք ցանկանում եք մարդուն փնտրել լուսանկարից որպես պարամետրեր: Նախ, այն հայտնաբերում է մատուցվող պատկերի դեմքը (ֆայլ Face.py, «հայտնաբերել» գործառույթը): Ի պատասխան այն ստանում է id, եթե հայտնաբերված դեմքը: Այնուհետև այն կանչում է «նույնականացման» գործառույթ (Face.py ֆայլ), որը գտնում է նման անձանց նշված խմբում: Ի պատասխան այն ստանում է անձի ID, եթե անձը գտնվի: Այնուհետև կանչեք «անձ» (ֆայլ Person.py) գործառույթ ՝ անձի ID- ն որպես պարամետր, «անձ» գործառույթը վերադարձնում է նշված ID ունեցող անձին, մենք ստանում ենք անձի անուն և վերադարձնում այն:

«Ստուգում» գործառույթի մասին: Այս գործառույթը տեղադրված է «մուտք» ֆայլում, որտեղ տեղադրված է նաև «մուտքի ցուցակը» որպես գլոբալ փոփոխական (կարող եք փոփոխել այն, ինչպես ցանկանում եք): Ստանալով անձի անունը նախորդ գործառույթից, «ստուգել» գործառույթը համեմատել այս անձի մուտքի ցուցակի հետ և վերադարձնել արդյունքը:

Նշում. Նախագիծը կցված է հաջորդ քայլին:

Քայլ 7: Եզրակացություն

Այս քայլին ես կցեցի ամբողջական նախագիծը, որը դուք պետք է բացեք և տեղադրեք ձեր Raspberry Pi- ին:

Այս նախագիծը աշխատեցնելու համար գործարկեք «main.py» ֆայլը:

Եթե դուք վերահսկում եք Raspberry Pi- ն SSH- ի միջոցով, դուք պետք է գործարկեք երկու ծրագիր մեկ պատյանից `python ծրագիր և Node-Red: Տերմինալում մուտքագրեք հետևյալը.

հանգույց-կարմիր

Ներկայացրեք «Ctrl + Z» և մուտքագրեք.

աշխատատեղեր

Դուք տեսել եք Node-Red գործընթացը: Նայեք գործընթացի ID- ին և տեսակին.

բգ

Այժմ Node-Red- ը պետք է սկսի աշխատել հետին պլանում: Այնուհետև ձեր նախագծով գնացեք գրացուցակ և գործարկեք հիմնական ծրագիրը.

python3 main.py

Նշում. Մի մոռացեք փոխել KEY- ը python ֆայլերում (քայլ 4) և հավատարմագրերը Node-Red հոսքում (քայլ 5)

Կատարած! Ձեր սառնարանն անվտանգ է:

Հուսով եմ, որ ձեզ դուր եկավ այս անքննելիությունը: Ազատորեն թողեք ձեր միտքը մեկնաբանություններում:

Շնորհակալ կլինեմ, եթե քվեարկեք իմ նախագծի համար =)

Շնորհակալություն!

Խորհուրդ ենք տալիս: