Мазмуну:

LTE Pi HAT менен жүздү таануу Smart Lock: 4 кадам
LTE Pi HAT менен жүздү таануу Smart Lock: 4 кадам

Video: LTE Pi HAT менен жүздү таануу Smart Lock: 4 кадам

Video: LTE Pi HAT менен жүздү таануу Smart Lock: 4 кадам
Video: Планшет Lenovo Tab P11 или Xiaoxin Pad - ДЕТАЛЬНЫЙ ОБЗОР 2024, Июль
Anonim
LTE Pi HAT менен жүздү таануу Smart Lock
LTE Pi HAT менен жүздү таануу Smart Lock

Жүз таануу барган сайын кеңири колдонула баштады, биз аны акылдуу кулпу үчүн колдоно алабыз.

1 -кадам: Бул долбоордо колдонулган нерселер

Аппараттык компоненттер

  • Raspberry Pi 3 Model B.
  • Raspberry Pi камера модулу V2
  • Гроув - Эстафета
  • LTE Cat 1 Pi HAT (Европа)
  • 10.1 дюймдук 1200x1980 HDMI IPS LCD дисплейи

Программалык камсыздоо жана онлайн кызматтары

  • WinSCP
  • Блокнот ++

2 -кадам: Аппараттык туташуу

Аппараттык туташуу
Аппараттык туташуу

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

Ошентип, сиз камераны Raspberry Piнин камера интерфейсине туташтырып, антеннаны жана Grove - LTE Pi шляпасына релелик орнотушуңуз керек, андан кийин HATти Пиңизге туташтырыңыз. Экранды Raspberry Pi менен HDMI кабели аркылуу туташтырса болот, экраныңызга жана Пиңизге электр энергиясын туташтырууну унутпаңыз.

3 -кадам: Программалык камсыздоо

Жүз таануу

Адам Гейтгейге жана анын жүзүн таануу долбооруна рахмат, биз Raspberry Piдеги дүйнөнүн эң жөнөкөй жүз таануу китепканасын колдоно алабыз. Төмөнкү кадамдар Piде жүз таанууну кантип орнотууну көрсөтөт.

Кадам 1. Камераны жана GPU эстутумун конфигурациялоо үчүн raspi-config колдонуңуз.

sudo raspi-config

Интерфейстин параметрлерин тандоо - Камера пикамераны иштетүү үчүн, андан кийин Advanced Options - Memory Split'ти тандоо, GPU эс тутумун орнотуу үчүн аны 64кө өзгөртүү керек. Аяктагандан кийин Raspberry Pi'ни кайра жүктөңүз.

Кадам 2. Керектүү китепканаларды орнотуңуз.

sudo apt-get update

sudo apt-get жогорулатуу sudo apt-get install-essential / cmake / gfortran / git / wget / curl / graphicsmagick / libgraphicsmagick1-dev / libatlas-dev / libavcodec-dev / libavformat-dev / libboost-all-dev / libgtk2. 0-dev / libjpeg-dev / liblapack-dev / libswscale-dev / pkg-config / python3-dev / python3-numpy / python3-picamera / python3-pip / zip sudo apt-get clean

3 -кадам. Пикамераны колдогон массивди жасаңыз.

sudo pip3 орнотуу -пикамераны [массивди] жаңыртуу

Кадам 4. Длибди жана жүздү таанууну орнотуңуз.

sudo pip3 dlib орнотуу

sudo pip3 face_recognition орнотуу

Кадам 5. Жүктөө жана жүздү таануу мисалын иштетүү

git clone-бир бутактуу

cd./face_recognition/examples python3 facerec_on_raspberry_pi.py

ЭСКЕРТҮҮ: Эгер ImportError: libatlas.so.3 болсо: бөлүшүлгөн объект файлын ача албайт: Мындай файл же каталог жок, аны оңдоо үчүн төмөнкү буйрукту аткарыңыз.

Эстафета

Жүз таануу даяр болгондо, биз кошумча функцияларды кошууну уланта алабыз. Биз Grove - Relay'ди LTE Cat 1 Pi HATка туташтырдык, бирок ал I2C портунан эмес, санарип портун колдонот.

Бул Raspberry Pi 3B үчүн pin-out, биз SDA пинди жана SCL pinин тактайдын 3 жана 5 пининде жайгашканын көрө алабыз.

Сүрөт
Сүрөт

Ошентип, биз 5-пинге санариптик сигналды чыгаруу менен релени башкара алабыз, Raspberry Piдеги python программасын аткарыңыз, эгер эч нерсе туура эмес болсо, анда реледен Ti-Ta угасыз.

GPO катары RPi. GPIO импорттоо

RELAY_PIN = 5 GPIO.setmode (GPIO. BOARD) GPIO.setup (RELAY_PIN, GPIO. OUT) GPIO.output (RELAY_PIN, GPIO. HIGH)

Ошентип, бул жерде идея, биз папкадан белгилүү жүздөрдү жүктөйбүз, пикамера тарткан жүздөрдү тааныйбыз, эгер папкадагы жүз, эшиктин кулпусун ачуу үчүн реле. Биз аларды класска топтой алабыз, бул жерде load_known_faces () ыкмасы жана unlock () ыкмасы, аяктаган программаны ушул макаланын аягында көчүрүп алса болот.

def load_known_faces (өзүнчө):

known_faces = os.listdir (өзүн._ белгилүү_жүздөрдүн жолу) белгилүү_фейстеги белгилүү_фейс үчүн: өзүн -өзү._ белгилүү_жүздөрдүн_аяны) өзүн -өзү._ белгилүү_жүздөрдү_кодирование. GPIO. HIGH) басып чыгаруу ('Эшик ачылды') убактысы. Уктоо (5) GPIO.output (өзүнчө._ релелик_пин, GPIO. LOW) өз алдынча._ reset_recognise_params () чыныгы өзүн кайтаруу._ retry_count += 1 басып чыгаруу ('Кайталап көрүңүз… { } '. формат (өзүн -өзү._ retry_count)) кайтуу False

Трансценденталдуу түрдө ойлонуп көрүңүз, биз ким тааныган сүрөттү көрсөтө алабыз, китепканалар PIL жана matplotlib пайдалуу болушу мүмкүн, алардын арасында matplotlib кол менен орнотулушу керек, бул буйрукту Raspberry Pi терминалында иштетиңиз.

sudo pip3 matplotlib орнотуу

Аларды кодуңузга импорттоңуз жана unlock () ыкмасы менен бөгөттөө болсо төмөнкүдөй өзгөртүңүз:

img = Image.open ('{}/{}. jpg'.format (өзүн -өзү._ белгилүү_жүздөр_жолу, өзүн -өзү._беттери_ аты [0])))

plt.imshow (img) plt.ion () GPIO.output (өзүнчө._ релелик_пин, GPIO. HIGH) басып чыгаруу ('Эшик ачылды' ') plt.pause (3) plt.close () GPIO.output (өзүнчө._ релелик_пин, GPIO). LOW) өз алдынча._ reset_recognise_params () кайтаруу True

Эми, эгер жүз таанылса, папкадагы сүрөт экранда көрсөтүлөт.

Сүрөт
Сүрөт

SMS

Кээде биз биздин бөлмөдө ким бар экенин билгибиз келет, эми LTE Cat 1 Pi HAT үчүн орун бар. SIM картаны ага сайыңыз жана анын иштээр -иштебесин текшерүү үчүн төмөндөгү кадамдарды аткарыңыз.

Кадам 1. Raspberry Pi'де UART0 иштетүү

Config.txt файлын түзөтүү үчүн нанону колдонуңуз /boot

sudo nano /boot/config.txt

dtoverlay = pi3-disable-bt анын түбүнө кошуп, hciuart кызматын өчүрүңүз

sudo systemctl hciuart өчүрүү

андан кийин /boot ичинде cmdline.txt консолун = serial0, 115200 жок кылыңыз

sudo nano /boot/cmdline.txt

Баары бүткөндөн кийин, Raspberry Pi'ни кайра жүктөө керек.

Кадам 2. Мисалды жүктөп алып, иштетиңиз.

Raspberry Piңизде терминал ачыңыз, ага бул буйрукту сап -сапка териңиз.

cd ~

git clone https://github.com/Seeed-Studio/ublox_lara_r2_pi_hat.git cd ublox_lara_r2_pi_hat sudo python setup.py cd тестти sudo python test01.py орнотуу

Эгер сиз бул терминалдарды терминалда көрсөңүз, LTE Cat 1 Pi HAT жакшы иштейт.

40-пин GPIO аталышы табылды

Ойгонгондо GPIOs 16 жана 17 rts cts CTS0 жана RTS0 иштетүү… модулдун аталышы: LARA-R211 RSSI: 3

Эми биз HAT жакшы иштээрин билдик, аны кантип SMS жөнөтүү үчүн колдонсо болот? Сиз билишиңиз керек болгон биринчи нерсе, Raspberry Pi HAT менен UART тарабынан AT буйруктарын жөнөтүү аркылуу байланышат. Бул кодду pythonдо иштетүү менен LTE HATка AT буйруктарын жөнөтсөңүз болот

ublox_lara_r2 импортунан *

u = Ublox_lara_r2 () u.initialize () u.reset_power () # Мүчүлүштүктөрдү оңдоо массажы u.debug = False u.sendAT ('')

SMS жөнөтүү үчүн AT командасы төмөнкүдөй

AT+CMGF = 1

AT+CMGS =

бул жерде _send_sms () ыкмасы:

def _send_sms (өзүн):

эгер өз алдынча._ phonenum == Эч ким: өзүнөн өзү кулпуну ачуу үчүн False кайтаруу._ tanınүү_бети_амдары (): эгер өзүн._ ublox.sendAT ('AT+CMGF = 1 / r / n'): басып чыгаруу (өзүн._ ublox.response) эгерде өзү. _ublox.sendAT ('AT+CMGS = "{}" / r / n'.format (self._ phonenum))): басып чыгаруу (self._ ublox.response) эгер өзүн өзү._ ublox.sendAT (' {} бөлмөгө кирүү. / x1a'.format (кулпуну ачуучу)): басып чыгаруу (өзүн._ ublox.response)

ЭСКЕРТҮҮ: LTE Cat 1 Pi HATтин китепканасы python2 тарабынан жазылган эмес, ал python3 менен анча шайкеш келбейт, эгер сиз аны жүздү таануу менен колдонгуңуз келсе, аны ушул макаланын аягындагы шилтемеден жүктөп алыңыз.

Сунушталууда: