Daftar Isi:

Pengenalan Wajah Smart Lock Dengan LTE Pi HAT: 4 Langkah
Pengenalan Wajah Smart Lock Dengan LTE Pi HAT: 4 Langkah

Video: Pengenalan Wajah Smart Lock Dengan LTE Pi HAT: 4 Langkah

Video: Pengenalan Wajah Smart Lock Dengan LTE Pi HAT: 4 Langkah
Video: Pengenalan Wajah Face Recognition dengan Raspberry Pi 3B dan OpenCV 2024, Juli
Anonim
Kunci Cerdas Pengenalan Wajah Dengan LTE Pi HAT
Kunci Cerdas Pengenalan Wajah Dengan LTE Pi HAT

Pengenalan wajah menjadi semakin banyak digunakan, kita dapat menggunakannya untuk membuat kunci pintar.

Langkah 1: Hal-hal yang Digunakan dalam Proyek Ini

Komponen perangkat keras

  • Raspberry Pi 3 Model B
  • Modul Kamera Raspberry Pi V2
  • Grove - Relay
  • LTE Cat 1 Pi HAT (Eropa)
  • 10,1 inci 1200x1980 HDMI IPS LCD Display

Aplikasi perangkat lunak dan layanan online

  • WinSCP
  • Notepad++

Langkah 2: Koneksi Perangkat Keras

Koneksi Perangkat Keras
Koneksi Perangkat Keras

Dalam proyek ini, kami berencana untuk mengambil gambar dengan picamera dan mengenali wajah di dalamnya, kemudian menampilkan hasil pengenalan di layar. Jika wajah diketahui, buka pintu, dan kirim siapa yang membuka pintu ke nomor telepon yang ditentukan melalui SMS.

Jadi Anda perlu menghubungkan kamera ke antarmuka kamera Raspberry Pi, dan memasang antena dan Grove - Relay ke LTE Pi hat, lalu pasang HAT ke Pi Anda. Layar dapat dihubungkan ke Raspberry Pi melalui kabel HDMI, jangan lupa sambungkan daya ke layar dan Pi Anda.

Langkah 3: Pemrograman Perangkat Lunak

Pengenalan Wajah

Terima kasih untuk Adam Geitgey dan proyek Pengenalan Wajahnya, kami dapat menggunakan perpustakaan pengenalan wajah paling sederhana di dunia di Raspberry Pi. Langkah-langkah berikut akan menunjukkan kepada Anda cara mengatur pengenalan wajah di Pi.

Langkah 1. Gunakan raspi-config untuk mengonfigurasi kamera dan memori GPU.

sudo raspi-config

Pilih Interface Options -- Camera untuk mengaktifkan picamera, lalu pilih Advanced Options -- Memory Split untuk mengatur memori GPU, harus diubah menjadi 64. Setelah selesai, reboot Raspberry Pi Anda.

Langkah 2. Instal perpustakaan yang diperlukan.

sudo apt-get update

sudo apt-get upgrade sudo apt-get install build-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

Langkah 3. Buat picamerea mendukung array.

sudo pip3 install --upgrade picamera[array]

Langkah 4. Instal dlib dan pengenalan wajah.

sudo pip3 instal dlib

sudo pip3 instal face_recognition

Langkah 5. Unduh dan jalankan contoh pengenalan wajah

git clone --single-branch

cd./face_recognition/examples python3 facerec_on_raspberry_pi.py

PEMBERITAHUAN: Jika Anda mendapatkan ImportError: libatlas.so.3: tidak dapat membuka file objek bersama: Tidak ada file atau direktori tersebut, jalankan perintah berikut untuk memperbaikinya.

Menyampaikan

Saat pengenalan wajah sudah siap, kami dapat terus menambahkan fitur tambahan. Kami menghubungkan Grove - Relay ke LTE Cat 1 Pi HAT, tetapi menggunakan port digital daripada port I2C.

Ini adalah pin-out untuk Raspberry Pi 3B, kita bisa melihat pin SDA dan pin SCL yang terletak di pin 3 dan pin 5 board.

Gambar
Gambar

Jadi kita dapat mengontrol relay dengan mengeluarkan sinyal digital ke pin 5. Jalankan program python mengikuti di Raspberry Pi Anda, jika tidak ada yang salah, Anda akan mendengar Ti-Ta dari relay.

impor RPi. GPIO sebagai GPIO

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

Jadi inilah idenya, kami memuat wajah yang dikenal dari folder, mengenali wajah yang ditangkap oleh picamera, jika wajah ada di folder, kontrol relai untuk membuka kunci pintu. Kita dapat mengemasnya ke dalam sebuah kelas, berikut adalah metode load_known_faces() dan metode unlock(), program yang telah selesai dapat diunduh di akhir artikel ini.

def load_known_faces(sendiri):

known_faces = os.listdir(self._known_faces_path) untuk known_face di known_faces: self._known_faces_name.append(known_face[0: len(known_face) - len('.jpg')]) known_face_image = face_recognition.load_image_file(self_path +known_faces) self._known_faces_encoding.append(face_recognition.face_encodings(known_face_image)[0]) return len(self._known_faces_encoding) def unlock(self): if self._matched.count(True) > 0: GPIO.output(self._relay_pin, GPIO. HIGH) print('Pintu dibuka') time.sleep(5) GPIO.output(self._relay_pin, GPIO. LOW) self._reset_recognise_params() return True self._retry_count += 1 print('Please try again…{ }'.format(self._retry_count)) mengembalikan Salah

Berpikir transendental, kami dapat menunjukkan gambar yang dikenali, perpustakaan PIL dan matplotlib dapat membantu, di antaranya, matplotlib perlu diinstal secara manual, jalankan perintah ini di terminal Raspberry Pi Anda.

sudo pip3 instal matplotlib

Impor mereka dalam kode Anda, dan ubah metode if block in unlock() seperti ini:

img = Image.open('{}/{}.jpg'.format(self._known_faces_path, self._known_faces_name[0]))

plt.imshow(img) plt.ion() GPIO.output(self._relay_pin, GPIO. HIGH) print('Pintu dibuka') plt.pause(3) plt.close() GPIO.output(self._relay_pin, GPIO. LOW) self._reset_recognise_params() mengembalikan True

Sekarang, jika wajah dikenali, gambar dalam folder akan ditampilkan di layar.

Gambar
Gambar

SMS

Terkadang kami ingin tahu siapa yang ada di kamar kami, dan sekarang ada tempat untuk LTE Cat 1 Pi HAT. Colokkan kartu SIM ke sana, dan ikuti langkah-langkah untuk menguji apakah itu berfungsi atau tidak.

Langkah 1. Aktifkan UART0 di Raspberry Pi

Gunakan nano untuk mengedit config.txt di /boot

sudo nano /boot/config.txt

tambahkan dtoverlay=pi3-disable-bt ke bagian bawahnya, dan nonaktifkan layanan hciuart

sudo systemctl nonaktifkan hciuart

lalu hapus console=serial0, 115200 di cmdline.txt di /boot

sudo nano /boot/cmdline.txt

Setelah semuanya selesai, Anda harus me-reboot Raspberry Pi Anda.

Langkah 2. Unduh contoh dan jalankan.

Buka terminal di Raspberry Pi Anda, ketik perintah ini baris demi baris.

cd ~

git clone https://github.com/Seeed-Studio/ublox_lara_r2_pi_hat.git cd ublox_lara_r2_pi_hat sudo python setup.py instal cd test sudo python test01.py

Jika Anda melihat output ini di terminal Anda, LTE Cat 1 Pi HAT bekerja dengan baik.

Header GPIO 40-pin terdeteksi

Mengaktifkan CTS0 dan RTS0 pada GPIO 16 dan 17 rts cts saat bangun… nama modul: LARA-R211 RSSI: 3

Sekarang kita tahu HAT bekerja dengan baik, bagaimana menggunakannya untuk mengirim SMS? Hal pertama yang perlu Anda ketahui adalah bahwa Raspberry Pi berkomunikasi dengan HAT melalui perintah kirim AT oleh UART. Anda dapat mengirim perintah AT ke LTE HAT dengan menjalankan kode ini dengan python

dari ublox_lara_r2 impor *

u = Ublox_lara_r2() u.initialize() u.reset_power() # Tutup pijat debug u.debug = False u.sendAT('')

Perintah AT untuk mengirim SMS adalah sebagai berikut:

AT+CMGF=1

AT+CMGS=

jadi di sini adalah metode _send_sms():

def _send_sms(sendiri):

if self._phonenum == None: return False for unlocker in self._recognise_face_names(): if self._ublox.sendAT('AT+CMGF=1\r\n'): print(self._ublox.response) jika self. _ublox.sendAT('AT+CMGS="{}"\r\n'.format(self._phonenum)): print(self._ublox.response) jika self._ublox.sendAT('{} memasuki ruangan.\ x1a'.format(unlocker)): print(self._ublox.response)

PEMBERITAHUAN: Perpustakaan LTE Cat 1 Pi HAT ditulis oleh python2, yang sangat tidak kompatibel dengan python3, jika Anda ingin menggunakannya dengan pengenalan wajah, silakan unduh dari tautan di akhir artikel ini.

Direkomendasikan: