สารบัญ:
- ขั้นตอนที่ 1: สิ่งที่ใช้ในโครงการนี้
- ขั้นตอนที่ 2: การเชื่อมต่อฮาร์ดแวร์
- ขั้นตอนที่ 3: การเขียนโปรแกรมซอฟต์แวร์
- ขั้นตอนที่ 4: เสร็จสิ้น
วีดีโอ: การจดจำใบหน้า Smart Lock ด้วย LTE Pi HAT: 4 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
การจดจำใบหน้ามีการใช้กันอย่างแพร่หลายมากขึ้นเรื่อย ๆ เราสามารถใช้เพื่อสร้างล็อคอัจฉริยะได้
ขั้นตอนที่ 1: สิ่งที่ใช้ในโครงการนี้
ส่วนประกอบฮาร์ดแวร์
- Raspberry Pi 3 รุ่น B
- โมดูลกล้อง Raspberry Pi V2
- โกรฟ - รีเลย์
- LTE Cat 1 Pi HAT (ยุโรป)
- 10.1 นิ้ว 1200x1980 HDMI IPS LCD Display
แอพซอฟต์แวร์และบริการออนไลน์
- WinSCP
- แผ่นจดบันทึก++
ขั้นตอนที่ 2: การเชื่อมต่อฮาร์ดแวร์
ในโครงการนี้ เราวางแผนที่จะถ่ายภาพด้วย picamera และจดจำใบหน้าในนั้น จากนั้นแสดงผลการจดจำบนหน้าจอ หากรู้ใบหน้าให้เปิดประตูและส่งผู้ที่เปิดประตูไปยังหมายเลขโทรศัพท์ที่ระบุทาง SMS
ดังนั้น คุณต้องเชื่อมต่อกล้องกับอินเทอร์เฟซกล้องของ Raspberry Pi และติดตั้งเสาอากาศและ Grove - รีเลย์ไปยังหมวก LTE Pi จากนั้นเสียบ HAT กับ Pi ของคุณ หน้าจอสามารถเชื่อมต่อกับ Raspberry Pi ผ่านสาย HDMI อย่าลืมต่อไฟเข้ากับหน้าจอและ Pi ของคุณ
ขั้นตอนที่ 3: การเขียนโปรแกรมซอฟต์แวร์
การจดจำใบหน้า
ขอบคุณสำหรับ Adam Geitgey และโครงการจดจำใบหน้าของเขา เราสามารถใช้ไลบรารีการจดจำใบหน้าที่ง่ายที่สุดในโลกบน Raspberry Pi ขั้นตอนต่อไปนี้จะแสดงวิธีตั้งค่าการจดจำใบหน้าบน Pi
ขั้นตอนที่ 1. ใช้ raspi-config เพื่อกำหนดค่ากล้องและหน่วยความจำ GPU
sudo raspi-config
การเลือกตัวเลือกอินเทอร์เฟซ -- กล้องเพื่อเปิดใช้งาน picamera จากนั้นเลือก Advanced Options -- Memory Split เพื่อตั้งค่าหน่วยความจำ GPU ควรเปลี่ยนเป็น 64 หลังจากเสร็จสิ้น ให้รีบูต Raspberry Pi ของคุณ
ขั้นตอนที่ 2 ติดตั้งไลบรารีที่จำเป็น
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
ขั้นตอนที่ 3 ทำให้ picamerea รองรับอาร์เรย์
sudo pip3 ติดตั้ง -- อัปเกรด picamera [อาร์เรย์]
ขั้นตอนที่ 4 ติดตั้ง dlib และการจดจำใบหน้า
sudo pip3 ติดตั้ง dlib
sudo pip3 ติดตั้ง face_recognition
ขั้นตอนที่ 5. ดาวน์โหลดและเรียกใช้ตัวอย่างการจดจำใบหน้า
git clone -- สาขาเดียว
cd./face_recognition/examples python3 facerec_on_raspberry_pi.py
ข้อสังเกต: หากคุณได้รับ ImportError: libatlas.so.3: cannot open shared object file: No such file or directory, เรียกใช้คำสั่งต่อไปนี้เพื่อแก้ไข
รีเลย์
เมื่อการจดจำใบหน้าพร้อมแล้ว เราก็สามารถเพิ่มคุณสมบัติเพิ่มเติมได้ต่อไป เราเชื่อมต่อ Grove - Relay กับ LTE Cat 1 Pi HAT แต่ใช้พอร์ตดิจิทัลแทนพอร์ต I2C
นี่คือพินเอาต์สำหรับ Raspberry Pi 3B เราจะเห็นพิน SDA และพิน SCL อยู่ในพิน 3 และพิน 5 ของบอร์ด
ดังนั้นเราจึงสามารถควบคุมรีเลย์โดยเอาท์พุตสัญญาณดิจิตอลไปยังขา 5 รันตามโปรแกรม python บน Raspberry Pi ของคุณ ถ้าไม่มีอะไรผิดพลาด คุณจะได้ยิน Ti-Ta จากรีเลย์
นำเข้า RPi. GPIO เป็น GPIO
RELAY_PIN = 5 GPIO.setmode (GPIO. BOARD) GPIO.setup (RELAY_PIN, GPIO. OUT) GPIO.output (RELAY_PIN, GPIO. HIGH)
นี่คือแนวคิด เราโหลดใบหน้าที่รู้จักจากโฟลเดอร์ จดจำใบหน้าที่ picamera จับได้ หากใบหน้าอยู่ในโฟลเดอร์ ให้ควบคุมรีเลย์เพื่อปลดล็อกประตู เราสามารถจัดแพ็คเกจให้กับคลาส นี่คือเมธอด load_known_faces() และเมธอด Unlock() โดยสามารถดาวน์โหลดโปรแกรมที่เสร็จสมบูรณ์ได้ในตอนท้ายของบทความนี้
def load_known_faces (ตัวเอง):
known_faces = os.listdir(self._known_faces_path) สำหรับ known_face ในknown_faces: self._known_faces_name.append(known_face[0: len(known_face) - len('.jpg')])known_face_image = face_recognition.load_image_file(ตัวเอง._known_faces_path) self._known_faces_encoding.append(face_recognition.face_encodings(known_face_image)[0]) คืนค่า len(self._known_faces_encoding) def unlock(self): if self._matched.count(True) > 0: GPIO.output(self._relay_pin, GPIO. HIGH) print('Door open') 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)) คืนค่า False
คิดเหนือธรรมชาติ เราสามารถแสดงรูปภาพที่รับรู้ได้ ไลบรารี PIL และ matplotlib อาจมีประโยชน์ ในหมู่พวกเขา จำเป็นต้องติดตั้ง matplotlib ด้วยตนเอง เรียกใช้คำสั่งนี้ในเทอร์มินัลของ Raspberry Pi
sudo pip3 ติดตั้ง matplotlib
นำเข้ามาในรหัสของคุณและเปลี่ยนหากบล็อกในวิธี Unlock() ดังนี้:
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) พิมพ์ ('Door open') plt.pause(3) plt.close() GPIO.output(self._relay_pin, GPIO. LOW) self._reset_recognise_params() คืนค่า True
ตอนนี้ หากจำใบหน้าได้แล้ว รูปภาพในโฟลเดอร์จะแสดงบนหน้าจอ
ข้อความ
บางครั้งเราอยากรู้ว่าใครอยู่ในห้องของเรา และตอนนี้ก็มีที่สำหรับ LTE Cat 1 Pi HAT แล้ว เสียบซิมการ์ดแล้วทำตามขั้นตอนเพื่อทดสอบว่าใช้งานได้หรือไม่
ขั้นตอนที่ 1. เปิดใช้งาน UART0 ใน Raspberry Pi
ใช้ nano เพื่อแก้ไข config.txt ใน /boot
sudo nano /boot/config.txt
เพิ่ม dtoverlay=pi3-disable-bt ที่ด้านล่างของมันและปิดการใช้งานบริการ hciuart
sudo systemctl ปิดการใช้งาน hciuart
จากนั้นลบ console=serial0, 115200 ใน cmdline.txt ใน /boot
sudo nano /boot/cmdline.txt
หลังจากทำทุกอย่างเสร็จแล้ว คุณควรรีบูท Raspberry Pi ของคุณ
ขั้นตอนที่ 2 ดาวน์โหลดตัวอย่างและเรียกใช้
เปิดเทอร์มินัลบน Raspberry Pi ของคุณ พิมพ์คำสั่งเหล่านี้ทีละบรรทัด
ซีดี ~
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 ทำงานได้ดี
ตรวจพบส่วนหัว GPIO 40 พิน
เปิดใช้งาน CTS0 และ RTS0 บน GPIO 16 และ 17 rts cts เมื่อปลุก… ชื่อโมดูล: LARA-R211 RSSI: 3
ตอนนี้เรารู้แล้วว่า HAT ทำงานได้ดีแล้วจะใช้งานส่ง SMS ได้อย่างไร สิ่งแรกที่คุณต้องรู้คือ Raspberry Pi สื่อสารกับ HAT ผ่านคำสั่ง AT โดย UART คุณสามารถส่งคำสั่ง AT ไปยัง LTE HAT โดยเรียกใช้รหัสนี้ใน python
จากการนำเข้า ublox_lara_r2 *
u = Ublox_lara_r2() u.initialize() u.reset_power() # ปิดนวดแก้จุดบกพร่อง u.debug = False u.sendAT('')
คำสั่ง AT สำหรับส่ง SMS มีดังนี้
AT+CMGF=1
AT+CMGS=
ดังนั้นนี่คือ _send_sms() วิธีการ:
def _send_sms (ตัวเอง):
if self._phonenum == None: คืนค่า False สำหรับตัวปลดล็อคใน self._recognise_face_names(): if self._ublox.sendAT('AT+CMGF=1\r\n'): พิมพ์ (self._ublox.response) หากเป็นตัวเอง _ublox.sendAT('AT+CMGS="{}"\r\n'.format(self._phonenum)): print(self._ublox.response) ถ้า self._ublox.sendAT('{} เข้ามาในห้อง\ x1a'.format(unlocker)): พิมพ์ (self._ublox.response)
ประกาศ: ไลบรารีของ LTE Cat 1 Pi HAT เขียนโดย python2 ซึ่งไม่ค่อยเข้ากันได้กับ python3 หากคุณต้องการใช้กับการจดจำใบหน้า โปรดดาวน์โหลดจากลิงก์ท้ายบทความนี้
แนะนำ:
วิธีการตั้งค่า OSMC ด้วย Hyperion บน Raspberry Pi ด้วย WS2812b Led Strip: 8 ขั้นตอน
วิธีการตั้งค่า OSMC ด้วย Hyperion บน Raspberry Pi ด้วย WS2812b Led Strip: บางครั้งฉันพูดภาษาอังกฤษได้ดีมาก บางครั้งก็ไม่มี… สิ่งแรกเลย นี่เป็นการสอนครั้งแรกของฉันและภาษาอังกฤษไม่ใช่ภาษาแม่ของฉัน ดังนั้นโปรดอย่ากดดันฉันมากเกินไป นี่จะไม่เกี่ยวกับวิธีการสร้างเฟรมที่ง่าย มันเกี่ยวกับการติดตั้ง
วิธีทำ Safe Locker ด้วย RFID Lock: 5 ขั้นตอน
วิธีทำ Safe Locker ด้วย RFID Lock: เรียนรู้วิธีทำ Safe Locker ด้วย RFID Lock At Home โดยใช้ Arduino และส่วนประกอบอิเล็กทรอนิกส์ขั้นพื้นฐาน มาสร้างตู้ล็อคเกอร์ที่ปลอดภัยด้วยล็อค RFID โดยใช้ Arduino และ Rfid Scanner
การจดจำใบหน้า Opencv: 4 ขั้นตอน
Opencv Face Recognition: การจดจำใบหน้าเป็นเรื่องธรรมดาในทุกวันนี้ ในแอปพลิเคชั่นมากมาย เช่น สมาร์ทโฟน อุปกรณ์อิเล็กทรอนิกส์มากมาย เทคโนโลยีประเภทนี้เกี่ยวข้องกับอัลกอริธึมและเครื่องมือมากมาย ฯลฯ ซึ่งใช้แพลตฟอร์ม SOC แบบฝังตัว เช่น Raspberry
วิธีสร้าง CubeSat ด้วย Arduino ด้วย Arducam: 9 ขั้นตอน
วิธีสร้าง CubeSat ด้วย Arduino ด้วย Arducam: ในรูปแรก เรามี Arduino และเรียกว่า "Arduino Uno"ในรูปที่สอง เรามี Arducam และเรียกว่า "Arducam OV2640 มินิ 2MP"พร้อมกับภาพที่สอง มีวัสดุที่คุณต้อง
การตรวจจับใบหน้า+การจดจำใบหน้า: 8 ขั้นตอน (พร้อมรูปภาพ)
การตรวจจับใบหน้า+การจดจำใบหน้า: นี่เป็นตัวอย่างง่ายๆ ของการตรวจจับใบหน้าและการจดจำใบหน้าด้วย OpenCV จากกล้อง หมายเหตุ: ฉันทำโครงการนี้เพื่อประกวดเซ็นเซอร์ และฉันใช้กล้องเป็นเซ็นเซอร์เพื่อติดตามและจดจำใบหน้า ดังนั้นเป้าหมายของเราในเซสชันนี้ 1. ติดตั้งอนาคอนด้า