1. Trang chủ
  2. » Giáo Dục - Đào Tạo

NGHIÊN cứu, xây DỰNG hệ THỐNG GIÁM sát NHÀ THÔNG MINH và NHẬN DIỆN KHUÔN mặt

97 4 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 97
Dung lượng 4,59 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • CHƯƠNG I: TỔNG QUAN VỀ HỆ THỐNG (4)
    • 1.1. Giới thiệu tổng quan về các vấn đề có thể xảy ra trong ngôi nhà bạn (17)
      • 1.1.1. Tổng quan về vấn đề trộm cắp (17)
      • 1.1.2. Các vấn đề về nước sinh hoạt (18)
      • 1.1.3. Vấn đề cháy nổ do sử dụng khí gas (18)
      • 1.1.4. Vấn đề liên quan đến nhiệt độ, độ ẩm trong nhà (19)
    • 1.2. Giới thiệu về những lý thuyết phần cứng cũng như các giao thức được sử dụng trong đề tài (20)
      • 1.2.1. Module ESP32-CAM (20)
      • 1.2.2. Module ESP8266 (22)
      • 1.2.3. Cảm biến khí GAS MQ2 (25)
      • 1.2.4. Cảm biến đo độ đục nước (28)
      • 1.2.5. Cảm biến nhiệt độ, độ ẩm DHT11 (29)
      • 1.2.6. LCD 20x4 và mạch chuyển đồi I2C cho LCD (30)
    • 1.3. Các giao thức và giao tiếp có trong đề tài (34)
      • 1.3.1. Giao thức I2C (34)
      • 1.3.2. Giao thức HTTP (35)
  • CHƯƠNG II: THIẾT KẾ HỆ THỐNG (4)
    • 2.1. Nguyên lý làm việc của hệ thống (37)
    • 2.2. Thiết kế mạch cảm biến (38)
      • 2.2.1. Lưu đồ thuật toán (38)
      • 2.2.2. Sơ đồ nguyên lý (39)
    • 2.3. Thiết kế mạch nhận diện khuôn mặt (42)
      • 2.3.1. Lưu đồ thuật toán (43)
      • 2.3.2. Sơ đồ nguyên lý (43)
    • 2.4. Xây dựng phần mềm điều khiển hệ thống (45)
      • 2.4.1. Chương trình xây dựng và nạp phần mềm (45)
    • 2.5. Thiết kế giao diện người dùng - Blynk (49)
      • 2.5.1. Giới thiệu Blynk (50)
      • 2.5.2. Xây dựng giao diện người dùng trên Blynk App (50)
    • 2.6. Xây dựng, phát triển tính năng nhận diện khuôn mặt (53)
      • 2.6.1. Phân vùng lại bộ nhớ (53)
      • 2.6.2. Thu thập dữ liệu khuôn mặt ESP32-CAM và lưu vào bộ nhớ đã phân vùng. 38 2.6.3. Sử dụng các nhận dạng đã lưu để điều khiển các thiết bị kết nối với ESP32. 38 CHƯƠNG III: KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN (54)
    • 3.1. Kết quả thiết kế in mạch PCB (57)
      • 3.1.1. Mạch cảm biến (57)
      • 3.1.2. Mạch nhận diện khuôn mặt (58)
    • 3.2. Kiểm tra, vận hành, đo lường (58)
      • 3.2.1. Kiểm tra quá trình đo lường Nhiệt độ, độ ẩm và khí gas (59)
      • 3.2.2. Quá trình đo lường độ đục trong của nước (59)
      • 3.2.3. Mạch nhận diện khuôn mặt (62)
    • 3.3. Nhận xét (66)
      • 3.3.1. Nhật xét tổng quan về mạch (66)
      • 3.3.2. Nhận xét về mạch cảm biến (66)
      • 3.3.3. Nhận xét về mạch nhận diện khuôn mặt (66)
    • 3.4. Khó khăn và hướng khắc phục đề tài (66)
      • 3.4.1. Khó khăn (66)
      • 3.4.2. Hướng khắc phục (66)
    • 3.5. Hướng phát triển đề tài (67)
  • TÀI LIỆU THAM KHẢO (5)
  • PHỤ LỤC (69)

Nội dung

Mục tiêu - Tìm hiểu các cảm biến thu thập thông tin môi trường như: cảm biến nhiệt độ, độ ẩm; cảm biến khí gas, cảm biến đo độ đục trong của nước - Tìm hiểu về vi điều khiển ESP32 tích

TỔNG QUAN VỀ HỆ THỐNG

Giới thiệu tổng quan về các vấn đề có thể xảy ra trong ngôi nhà bạn

Hiện nay, tình trạng trộm cắp và cướp giật thường xảy ra khi chủ nhà vắng mặt và thiếu thiết bị phòng thủ an ninh, đặc biệt vào những ngày giáp Tết Để bảo vệ an toàn cho gia đình, nên lắp đặt hệ thống báo động và camera giám sát, đảm bảo khóa cửa chắc chắn, kiểm tra cửa sổ và khu vực dễ bị xâm nhập, đồng thời duy trì thói quen an toàn khi ở nhà hoặc vắng nhà.

Tình trạng trộm cắp tài sản sẽ tiếp tục diễn ra nếu người dân không nâng cao ý thức phòng chống và thực hiện các biện pháp bảo vệ, dẫn đến thiệt hại về tài sản và an toàn cá nhân Theo ước tính năm 2021, cả nước Việt Nam ghi nhận 24.360 vụ trộm cắp tài sản, cho thấy mức độ ảnh hưởng đáng kể đối với đời sống và kinh tế địa phương Để giảm thiểu rủi ro, cần tăng cường ý thức cảnh giác và triển khai các biện pháp bảo vệ tài sản phù hợp ở gia đình, nơi làm việc và công cộng.

Hình 1.1 Vấn nạn trộm xảy ra

Hình 1.2 Các công cụ gây án

SVTH: Lê Đình Phong, Nguyễn Đức Thắng Trang 2

1.1.2 Các vấn đề về nước sinh hoạt

Hiện nay, nguồn nước phục vụ sinh hoạt của người dân đến từ nhiều nguồn khác nhau như nước mưa, nước giếng khơi, giếng khoan và nước máy Tuy nhiên, ở một số khu vực nguồn nước chưa thực sự đảm bảo và chưa đạt tiêu chuẩn nước sạch, gây lo ngại về chất lượng nước dùng hàng ngày.

Ở một số vùng nông thôn, nước máy bị nhiễm tạp chất nặng như chì, sắt, thủy ngân hoặc asen do ô nhiễm từ hoạt động sản xuất nông nghiệp; trong khi ở khu vực đô thị, nước máy có thể chứa dư clo, còn nước đóng bình có nguy cơ ô nhiễm do nước thải công nghiệp Nếu những nguồn nước này không được xử lý trước khi dùng cho ăn uống, người dân có nguy cơ mắc các bệnh tật nguy hiểm, trong đó có ung thư.

Hình 1.3 Sử dụng nguồn nước chưa đảm bảo sức khoẻ

Hình 1.4 Sử dụng nước không rõ vấn đề trong sinh hoạt

1.1.3 Vấn đề cháy nổ do sử dụng khí gas

Gần đây, rò rỉ khí gas gây cháy nổ đã để lại nhiều hậu quả nghiêm trọng về người và tài sản Nguyên nhân chủ yếu bắt nguồn từ sự chủ quan của người dân: sau khi sử dụng các thiết bị liên quan đến khí gas, người dùng thường quên hoặc không khóa van gas, hoặc có thể do dây dẫn gas bị hở khiến khí thoát ra ngoài mà không được phát hiện.

Khí gas rò rỉ có thể ngưng tụ và tích tụ trong một không gian kín, khiến nguồn lửa từ bật công tắc điện hoặc các thiết bị điện trở nên dễ cháy nổ và có sức công phá lớn Vì vậy, khi phát hiện mùi gas hoặc nghi ngờ rò rỉ, cần thông gió ngay, ngắt nguồn điện tại khu vực đó và liên hệ với đơn vị cấp gas hoặc cơ quan chức năng để kiểm tra an toàn, nhằm giảm thiểu nguy cơ tai nạn nghiêm trọng.

Hình 1.5 rò rĩ khí ga dẫn đến cháy nổ

Hình 1.6 Hậu quả để lại sau cháy nổ

1.1.4 Vấn đề liên quan đến nhiệt độ, độ ẩm trong nhà

SVTH: Lê Đình Phong, Nguyễn Đức Thắng Trang 4

Nhiệt độ thích hợp cho cơ thể người nằm trong khoảng 25–28°C, với sự chênh lệch giữa nhiệt độ trong và ngoài khoảng 5–7°C Nhiệt độ cao có thể gây rối loạn điều hòa nhiệt, Say nóng và các triệu chứng kèm theo như da khô, chóng mặt, buồn nôn, sốt cao, nôn mửa và có thể ảnh hưởng đến trí nhớ, thậm chí dẫn tới tử vong Độ ẩm không khí lý tưởng dao động từ khoảng 40–70% Khi độ ẩm dưới 40%, cơ thể thoát nước qua da nhanh hơn bình thường, khiến da khô nẻ và bong tróc; độ ẩm càng thấp càng gây suy nhược, giảm hiệu suất làm việc và làm yếu hệ miễn dịch, dễ mắc bệnh.

Độ ẩm thấp khiến cơ thể khó chịu và đường thở có cảm giác khô khi hít thở, khiến việc thở trở nên khó khăn hơn Đối với trẻ em, hệ hô hấp còn non yếu dễ bị kích ứng và dễ mắc các bệnh liên quan đến khí quản và phổi khi môi trường khô hanh Vì vậy, duy trì độ ẩm phù hợp cho không gian sống là yếu tố quan trọng để bảo vệ sức khỏe hô hấp của cả gia đình.

Hình 1.7 Nhiệt độ quá cao làm ảnh hưởng đến sức khoẻ

Giới thiệu về những lý thuyết phần cứng cũng như các giao thức được sử dụng trong đề tài

sử dụng trong đề tài

Hình 1.8 Sơ đồ cấu tạo chân Module ESP32-Cam a Giới thiệu:

ESP32-CAM tích hợp camera kích thước nhỏ và rất cạnh tranh trên thị trường, hoạt động như một module độc lập với khả năng xử lý công việc riêng Thiết kế siêu nhỏ gọn chỉ 40 x 27 x 12 mm, và mức tiêu thụ dòng ngủ chỉ 6 mA, mang lại sự tiện lợi cho các ứng dụng nhúng và IoT.

ESP32-CAM là một giải pháp linh hoạt cho các ứng dụng IoT, được sử dụng rộng rãi cho các thiết bị thông minh gia đình, hệ thống điều khiển không dây công nghiệp và giám sát từ xa Nó cũng hỗ trợ nhận dạng QR không dây và truyền tín hiệu cho các hệ thống định vị không dây, mang lại hiệu quả vận hành và khả năng tích hợp cao Với khả năng tích hợp camera và kết nối Wi‑Fi, ESP32-CAM là lựa chọn tối ưu cho các giải pháp IoT hiện đại.

Mạch thu phát Wifi BLE ESP32 này là mạch chính hãng AI – Thinker có chất lượng độ ổn định và độ bền rất cao, sử dụng camera OV2640 chất lượng cao hình ảnh sắc nét, không nhiễu sọc, không xảy ra tình trạng treo khi hoạt động do sử dụng ic cấp nguồn chất lượng cao

Module Mạch thu phát Wifi BLE ESP32-CAM Ai-Thinker có thể lập trình bằng Arduino IDE để biên dịch và viết mã, đồng thời nhận được sự hỗ trợ mạnh mẽ từ cộng đồng người dùng Nó kết nối Wifi và Bluetooth Low Energy, phù hợp cho các dự án IoT đòi hỏi truyền dữ liệu nhanh, ổn định và tiết kiệm năng lượng Người dùng có thể khai thác kho tài liệu, thư viện và ví dụ phong phú từ cộng đồng để triển khai nhanh các ứng dụng camera và streaming Phần thông số kỹ thuật đi kèm cung cấp các đặc điểm về khả năng mạng, tiêu thụ điện năng và khả năng tương thích với các dự án Arduino.

 IC chính: ESP32-S (AI-Thinker)

 Module Wi-Fi BT SoC 802.11 b/g/n/e/i

 CPU 32-bit công suất thấp, cũng có thể phục vụ bộ xử lý ứng dụng

 Tốc độ đồng hồ lên đến 160MHz, sức mạnh tính toán lên đến 600 DMIPS

 Tích hợp 520 KB SRAM, 4MPSRAM bên ngoài

 Hỗ trợ UART / SPI / I2C / PWM / ADC / DAC

 Hỗ trợ máy ảnh OV2640 và OV7670, đèn flash tích hợp

 Hỗ trợ tải lên WiFI hình ảnh

 Hỗ trợ nhiều chế độ ngủ

 Hỗ trợ chế độ hoạt động STA / AP / STA + AP

 Hỗ trợ cấu hình thông minh / công nghệ AirKiss

 Hỗ trợ nâng cấp cục bộ và từ xa cho cổng nối tiếp (FOTA) c Chức năng của module ESP32 CAM

Tích hợp module ESP32-S trên board mạch, hỗ trợ WiFi + Bluetooth

- Camera OV2640 có đèn flash

SVTH: Lê Đình Phong, Nguyễn Đức Thắng Trang 6

- Khe cắm thẻ TF trên board mạch, hỗ trợ thẻ nhớ TF lên đến 4G để lưu trữ dữ liệu

- Hỗ trợ WiFi video monitoring and WiFi image upload

- Hỗ trợ multi sleep modes, dòng sleep sâu thấp tới 6mA

- Giao diện điều khiển có thể truy cập thông qua pinheader, dễ dàng tích hợp và nhúng vào các sản phẩm của người dùng

Hình 1.9 Sơ đồ cấu tạo chân module ESP8266 a Giới thiệu

ESP8266 là một hệ thống trên chip (SoC) do Espressif của Trung Quốc sản xuất, được thiết kế cho nhu cầu IoT nhúng Nó tích hợp bộ vi xử lý Tensilica L106 32‑bit (MCU) và bộ thu phát Wi‑Fi, mang lại khả năng kết nối Internet dễ dàng với chi phí tối ưu cho các dự án nhúng và sản phẩm IoT.

ESP8266 có 11 chân GPIO (đầu vào/đầu ra đa dụng) và một chân đầu vào analog, cho phép bạn lập trình nó giống như Arduino hoặc các vi điều khiển khác Bản thân chip ESP8266 có 17 chân GPIO, nhưng 6 trong số các chân này (chân 6–11) được dùng để giao tiếp với chip nhớ flash trên bo mạch Ngoài ra, nó có kết nối Wi‑Fi, giúp bạn kết nối với mạng Internet, lưu trữ máy chủ web với các trang web thực, và cho điện thoại thông minh của bạn kết nối với nó Khả năng của ESP8266 là vô tận! Không có gì lạ khi con chip này đã trở thành thiết bị IoT phổ biến nhất hiện nay.

Chip ESP8266 do Espressif phát triển nhằm cung cấp giải pháp giao tiếp Wifi cho các thiết bị IoT Điểm đặc biệt của dòng ESP8266 là tích hợp sẵn các mạch RF như balun, antenna switches, TX power amplifier và RX filter ngay bên trong chip với kích thước chỉ 5x5mm, giúp các board dựa trên ESP8266 không cần thiết kế bo mạch lớn hay phụ kiện xung quanh phức tạp Thêm vào đó, ESP8266 có giá thành rất cạnh tranh, đủ hấp dẫn các nhà phát triển sản phẩm IoT khi xây dựng các giải pháp kết nối Wifi.

ESP8285 là một phiên bản của vi xử lý ESP8266 được tích hợp sẵn 1 MB bộ nhớ flash, cho phép người dùng thiết kế và sản xuất các thiết bị có khả năng kết nối Wi‑Fi chỉ với một chip duy nhất Nhờ tích hợp bộ nhớ flash, ESP8285 tối giản hóa thiết kế phần cứng, giảm chi phí và thời gian phát triển cho các ứng dụng IoT, mang lại hiệu suất Wi‑Fi ổn định và tối ưu không gian PCB cho các sản phẩm thông minh.

Dòng chip kế thừa ESP8266 là ESP32, bao gồm cả vi điều khiển ESP32-

C3 tương thích chân.[3] b Thông số kỹ thuật

 WiFi: 2.4 GHz hỗ trợ chuẩn 802.11 b/g/n

 Điện áp vào: 5V thông qua cổng USB

 Số chân I/O: 11 (tất cả các chân I/O đều có Interrupt/PWM/I2C/One-wire, trừ chân D0)

 Số chân Analog Input: 1 (điện áp vào tối đa 3.3V)

 Giao tiếp: Cable Micro USB

 Hỗ trợ bảo mật: WPA/WPA2

 Tích hợp giao thức TCP/IP

 Lập trình trên các ngôn ngữ: C/C++, Micropython, NodeMCU – Lua c Tính năng

Các tính năng của chip ESP8266EX bao gồm:

 Bộ xử lý: Lõi vi xử lý L106 32-bit RISC dựa trên Tiêu chuẩn Tensilica Xtensa Diamond, hoạt động ở tần số 80 MHz và SRAM trên chip

 Bộ nhớ nội: Bộ nhớ nội của ESP8266EX bao gồm SRAM và ROM

ESP8266EX có thể truy xuất các bộ nhớ này thông qua các interface iBus, dBus, và AHB Kích thước SRAM nhỏ hơn 36kB khi ESP8266EX hoạt động ở chế độ station ROM của ESP8266EX không lập trình được nên chương trình được lưu trong Flash ngoại

ESP8266EX dùng flash ngoại để lưu trữ chương trình và boot trực tiếp từ bus SPI Kích thước flash ngoại mặc định khác nhau giữa các module ESP8266, ví dụ ESP-01 có 1 MB và ESP-12E có 16 MB Nếu chương trình của bạn yêu cầu dung lượng lớn hơn kích thước flash mặc định, bạn cần dùng flash ngoại có dung lượng lớn hơn phù hợp với module đang dùng; tuy nhiên cần đảm bảo rằng phần cứng và bootloader của thiết bị hỗ trợ kích thước flash đó.

SVTH: Lê Đình Phong, Nguyễn Đức Thắng Trang 8 kích thước flash ngoại tối đa về mặt lý thuyết cho phép là 16 MB Kích thước bộ nhớ flash nhỏ nhất có thể là 512 kB (tắt chế độ OTA) hoặc 1 MB (bật chế độ OTA)

Thiết bị hỗ trợ chuẩn IEEE 802.11 b/g/n Wi‑Fi và tích hợp đầy đủ các thành phần RF như TR switch, balun, LNA, bộ khuếch đại công suất và mạng kết hợp, tối ưu hóa hiệu suất và độ nhạy của tín hiệu Đồng thời, nó hỗ trợ các tùy chọn xác thực WEP hoặc WPA/WPA2 hoặc làm việc với mạng mở không mật khẩu, mang lại sự linh hoạt về bảo mật phù hợp với nhiều môi trường sử dụng.

 17 chân GPIO: Các chân có thể được dồn kênh cho các chức năng I²C, I2S, UART, PWM, IR - điều khiển từ xa,

 2 hardware timer 23 bit: FRC1 và FRC2

 3 SPI: general Slave/Master SPI, Slave SDIO/SPI và general Slave/Master HSPI

I2C hỗ trợ hoạt động ở cả chế độ master và slave Nhờ các GPIO có thể được cấu hình ở chế độ cao trở kháng, mọi GPIO đều có thể được dùng làm chân SDA hoặc SCL cho I²C thông qua phần mềm, cho phép triển khai I2C bằng phần mềm (bit-bang) trên các chân GPIO linh hoạt.

 Giao diện I2S với DMA (sử dụng chung chân với GPIO)

UART hỗ trợ 2 kênh, UART0 và UART1 UART0 sử dụng GPIO3 làm RX và GPIO1 làm TX UART1 sử dụng GPIO2 làm TX và GPIO8 làm RX, nhưng GPIO8 được dùng để kết nối bộ nhớ flash của chip nên UART1 chỉ có thể truyền dữ liệu qua GPIO2.

1.2.3 Cảm biến khí GAS MQ2

Hình 1.10 Module cảm biến khí ga MQ2 a Giới thiệu

MQ2 là cảm biến khí gas dựa trên chất bán dẫn SnO2, có độ nhạy thấp khi ở không khí sạch, nhưng độ dẫn điện của cảm biến sẽ thay đổi ngay khi gặp các chất dễ cháy; nhờ đặc tính này, người ta tích hợp MQ2 vào một mạch đơn giản để biến sự biến đổi độ nhạy thành tín hiệu điện áp, từ đó phục vụ việc phát hiện và cảnh báo khí gas một cách nhanh chóng và hiệu quả.

THIẾT KẾ HỆ THỐNG

Nguyên lý làm việc của hệ thống

Hình 2.1 Nguyên lý làm việc thống hệ thống

Hệ thống gồm các khối chức năng như sau:

- Mạch cảm biến đo đạc không khí: đo đạc các thông số nhiệt độ, độ ẩm, khí GAS, độ đục của nước Chuyển dữ liệu lên Blynk- cloud Đồng thời, hiển thị các thông số lên màn hình LCD

Mạch nhận diện khuôn mặt cho phép chụp khuôn mặt cần nhận diện khi bấm nút scan và thực hiện nhận diện khuôn mặt một cách nhanh chóng Hệ thống có thể điều khiển camera từ xa dựa trên kết quả nhận diện, đồng thời gửi hình ảnh thu được lên Blynk-cloud để lưu trữ và quản lý từ xa Với tích hợp các chức năng chụp, nhận diện và điều khiển, mạch này phù hợp cho các ứng dụng giám sát và kiểm soát truy cập.

- Blynk-cloud: server cho phép thu nhận và chuyển dữ liệu trên Internet

 Nguyên lý hoạt động của hệ thống như sau Điều khiển, hiển thị Gửi dữ liệu thu thập

SVTH: Lê Đình Phong, Nguyễn Đức Thắng Trang 22

 Mach chứa ESP8266 điều khiển các cảm biến thu thập dữ liệu từ môi trường mỗi

2 giây Sau đó truyền dữ liệu lên server Blynk Cảnh báo bằng còi khi vượt qua mức chỉ định

 Truyền dữ liệu lên màn hình LCD, truyền lên Blynk App, hiển thi cho Smartphone người dùng

Module ESP32-CAM hoạt động ở chế độ chờ và sẽ bắt đầu quét khuôn mặt khi nhận tín hiệu yêu cầu quét Quét khuôn mặt thành công sẽ mở khóa và cho phép vào; nếu quét sai ba lần liên tiếp, hệ thống sẽ bật còi báo động và cảnh báo cho người dùng.

Thiết kế mạch cảm biến

Hình 2.2 Lưu đồ thuật toán cảm biến

- Khởi tạo các giá trị ban đầu, các giao thức, Internet, các chân IO

- Tiến hành kết nối với Internet (Blynk)

- Bắt đầu đọc các tín hiệu từ cảm biến

- tín hiệu thu được hiển thị lên màn hình LCD, đồng thời gửi về Blynk App

- Khi này sẽ so sánh các giá trị thu được với các giá trị vượt ngưỡng Khi này, nếu các giá trị thu được nhỏ hơn giá trị ngưỡng thì reset, mỗi 2 giây lại thu tín hiệu 1 lần

- Nếu tín hiệu thu được vượt ngưỡng thì còi và LED sẽ đồng thời cảnh báo và gửi thông báo về người dùng

Hình 2.3 Sơ đồ nguyên lý mạch cảm biến

SVTH: Lê Đình Phong, Nguyễn Đức Thắng Trang 24 a Khối xử lý

Hình 2.4 Khối xử lý cảm biến

Khối điều khiển sử dụng ESP8266 làm trung tâm và được cấp nguồn 5V để hoạt động Nó tiếp nhận tín hiệu từ các cảm biến và đồng thời hiển thị dữ liệu lên màn hình LCD thông qua giao thức I2C.

Khổi này có mục tiêu thu thập dữ liệu từ cảm biến, gửi lên server của Blynk Sau đó sẽ chờ chỉ thị tiếp theo

Với vi điều khiển ESP8266 làm trung tâm thu nhận tín hiệu và điều khiển, hệ thống cho phép theo dõi toàn bộ quá trình thu thập dữ liệu của khối thông qua giao diện người dùng và Internet ESP8266 đóng vai trò điều khiển chính, tích hợp khả năng kết nối Wi‑Fi để truyền dữ liệu đo được đến máy chủ đám mây hoặc máy chủ riêng và đồng thời cho phép người dùng cấu hình, giám sát từ xa và nhận thông báo về trạng thái thiết bị Khối điều khiển xử lý tín hiệu từ các cảm biến, điều khiển các thiết bị thực thi như relay hoặc actuator, và gửi dữ liệu thu thập được về giao diện người dùng để hiển thị, phân tích và lưu trữ Nhờ kiến trúc IoT này, hệ thống có thể mở rộng, bảo mật kết nối và tối ưu hóa hiệu suất thu thập dữ liệu, đồng thời cải thiện thời gian đáp ứng và độ tin cậy trong quá trình vận hành.

Khối này sử dụng đầu vào 5V và có các chức năng: hiển thị LED cảnh báo, cảnh bào bằng còi khi xảy ra sự cố và nút bật, tắt đèn và còi

SVTH: Lê Đình Phong, Nguyễn Đức Thắng Trang 26 c Khối cảm biến

Khối này kết nối trực tiếp với khối xử lý, riêng LCD được kết nối với ESP8266 thông qua giao tiếp I2C

Khối này có mục đích thu thập các tín hiệu môi trường xung quanh, sau đó báo về cho khối xử lý cảm biến Với LCD trong khối này có mục đích hiển thị tín hiệu đo được lên màn hình, trong trường hợp có kết nối Internet hay không, LCD vẫn sẽ hoạt động bình thường, không bị ảnh hưởng

Thiết kế mạch nhận diện khuôn mặt

- Khởi tạo các giá trị ban đầu, các giao thức, Internet, các chân IO

- Khởi động camera, kết nối Internet

 Nếu nhận diện đối diện không người, không có gì xảy ra

 Nếu nhận diện đối diện có người, camera sẽ chụp hình đối tượng, sau đó cập nhật tình trạng về Blynk

 Nhận diện được khuôn mặt nhận định, sẽ tự động mở của trong vài giây, sau đó cập nhật tình trạng về Blynk

 Nhận diện sai khuôn mặt, không có gì xảy ra, đồng thời bộ đếm tăng thêm 1

 Khi bộ đếm bằng 3, sẽ phát ra cảnh báo bằng còi và LED, đồng thời chụp hình khuôn mặt lạ, sau đó cập nhật tình trạng cho Blynk

Hình 2.7 Lưu đồ thuật toán mạch nhận diện khuôn mặt

Hình 2.8 Khối nhận diện khuôn mặt

SVTH: Lê Đình Phong, Nguyễn Đức Thắng Trang 28 a Khối xử lý Camera

Hình 2.9 Khối xử lý nhận diện khuôn mặt

Mạch sử dụng vi điều khiển ESP32-CAM làm trung tâm, sử dụng nguồn được cấp từ mạch nguồn LM2586

Khối xử lý hình ảnh chịu trách nhiệm thu thập các hình ảnh đã chụp được, xử lý và nhận diện khuôn mặt, so sánh các đặc điểm để xác định điểm giống và khác giữa các khuôn mặt, đồng thời cập nhật tình trạng hiện tại lên server Blynk nhằm giám sát và quản lý hệ thống từ xa Khối nguồn cung cấp nguồn năng lượng ổn định cho toàn bộ các khối chức năng, bảo đảm hệ thống vận hành liên tục và tin cậy.

Mạch sử dụng mạch nguồn giảm áp LM2596 để hạ áp xuống mức cần thiết, bảo đảm nguồn vận hành ổn định cho toàn hệ thống Thiết kế đi kèm các chân cắm dây thuận tiện, cho phép cấp nguồn cho các thiết bị một cách nhanh chóng và an toàn Khối điều khiển khóa được tích hợp để quản lý và vận hành các chức năng khoá của hệ thống một cách linh hoạt.

Hình 2.11 Khối điều khiển khoá

Mạch điều khiển khóa sử dụng PC817 để cách ly quang mạch điều khiển và loại bỏ nhiễu EMI từ tín hiệu điện từ, giúp tăng độ ổn định và an toàn cho hệ thống Mạch được kết nối với rơ-le để điều khiển việc đóng ngắt khóa chốt điện từ, cho phép kiểm soát từ xa hoặc tự động mà vẫn duy trì sự cách ly giữa mạch điều khiển và tải Khối điều khiển mạch được thiết kế tối ưu nhằm đảm bảo cách ly galvanic, giảm nhiễu từ và nhiễu điện từ, phù hợp cho ứng dụng kiểm soát khóa điện từ trong hệ thống an ninh hoặc tự động hóa.

Các chức năng điều khiển được kết nối trực tiếp với khối xử lý, đảm bảo hoạt động đúng theo những gì khối xử lý đưa ra chỉ thị

Xây dựng phần mềm điều khiển hệ thống

2.4.1 Chương trình xây dựng và nạp phần mềm

SVTH: Lê Đình Phong, Nguyễn Đức Thắng Trang 30

Arduino IDE là môi trường phát triển tích hợp dựa trên ngôn ngữ C/C++ quen thuộc với các lập trình viên, giúp họ dễ viết, gỡ lỗi và thiết kế các chương trình cho các bo mạch Arduino một cách thuận tiện và hiệu quả.

Với việc hai vi điều khiển ESP32-CAM và ESP8266 đều có thể lập trình bằng ngôn ngữ C, chúng em quyết định sử dụng phần mềm này làm công cụ chủ lực trong quá trình lập trình và xây dựng hệ thống giám sát cũng như nhận diện thông minh Sự kết hợp này tối ưu hóa việc triển khai, tích hợp cảm biến và cơ chế nhận diện, đồng thời nâng cao khả năng mở rộng của hệ thống.

Hình 2.13 Phần mềm lập trình ArduinoIDE 2.4.2 Cài đặt môi trường làm việc cho ESP32-CAM, ESP8266

- Khởi động ArduinoIDE, chọn Preferences

- Trong mục Additional Boards Manager URLs, các bạn điền dòng sau: https://dl.espressif.com/dl/package_esp32_index.json,

- Sử dụng URL như trên giúp chúng ta vừa dùng ESP8266 và ESP32 a Cài đặt cho ESP32-CAM

Vào menu Tool → Boards Manager, tìm kiếm ESP32 → Install

Kế tiếp, chọn Tool → Board: “AI Thinker ESP32-CAM”

Hình 2.14 Cài đặt chức năng ghi danh

Vào menu Tool → Boards Manager, tìm kiếm ESP32 → Install

- Chọn Tool → Board: “ESP32 Wrover Module”

SVTH: Lê Đình Phong, Nguyễn Đức Thắng Trang 32

Hình 2.15 Cài đặt thiết lập chức năng khoá cửa b Cài đặt thiết lập cho ESP8266

Vào menu Tool → Boards Manager, tìm kiếm ESP32 → Install

- Chọn Tool → Board: “NodeMCU 1.0(ESP-12E Module)”

Hình 2.16 Cài đặt thiết lập chức năng cảm biến

Thiết kế giao diện người dùng - Blynk

SVTH: Lê Đình Phong, Nguyễn Đức Thắng Trang 34

Blynk là một nền tảng với các ứng dụng iOS và Android để điều khiển Arduino, Raspberry Pi và các ứng dụng tương tự qua Internet

Đây là một bảng điều khiển kỹ thuật số cho phép bạn xây dựng giao diện đồ họa cho dự án của mình một cách trực quan bằng cách kéo và thả các widget Việc kéo và thả các widget giúp tuỳ biến bố cục nhanh chóng và linh hoạt, tối ưu hóa trải nghiệm người dùng mà bạn đang thiết kế Công cụ này giúp tiết kiệm thời gian phát triển và nâng cao hiệu suất làm việc.

Việc thiết lập mọi thứ rất đơn giản và bạn sẽ bắt đầu sau chưa đầy 5 phút

Blynk không ràng buộc người dùng với các bo mạch hay shield cụ thể và hỗ trợ phần cứng bạn chọn, cho phép kết nối linh hoạt với Arduino, Raspberry Pi hoặc bất kỳ nền tảng nào bạn dùng Cho dù thiết bị của bạn kết nối Internet qua Wi‑Fi, Ethernet hoặc chip ESP8266, Blynk sẽ giúp bạn online và sẵn sàng cho các dự án IoT.

Có ba thành phần chính trong nền tảng:

- Ứng dụng Blynk - cho phép bạn tạo giao diện cho các dự án của mình bằng cách sử dụng các widget khác nhau

Blynk Server đảm nhận toàn bộ giao tiếp giữa điện thoại thông minh và phần cứng, cho phép bạn lựa chọn giữa Blynk Cloud hoặc tự chạy máy chủ Blynk riêng của mình Là dự án nguồn mở, nó có thể xử lý hàng nghìn thiết bị và thậm chí có thể được vận hành trên Raspberry Pi.

Thư viện Blynk là thư viện đa nền tảng dành cho các nền tảng phần cứng phổ biến, cho phép giao tiếp với máy chủ và xử lý toàn bộ các lệnh đến và lệnh đi, tối ưu cho các ứng dụng IoT và điều khiển từ xa.

2.5.2 Xây dựng giao diện người dùng trên Blynk App

- Đầu tiên, tạo dự án Blynk với tên gọi Nhà Thông Minh Tại đây, sẽ có các thiết lập cơ bản cho Project này như Thiết bị điều khiển: NodeMCU (ở đây là vi điều khiển ESP32-CAM và vi điều khiển ESP8266)

Hình 2.18 Tạo Project người dùng

- Thành lập các khối hiển thị thông tin cho các cảm biến sử dụng

Hệ thống sẽ bao gồm 2 giao diện người dùng gồm Giám sát cảm biến và nhận diện khuôn mặt

SVTH: Lê Đình Phong, Nguyễn Đức Thắng Trang 36

Về giao diện cảm biến biến, hệ thống được bố trí thành các khối chức năng rõ ràng: khối nhiệt độ và độ ẩm, khối khí gas và độ đục nước để đo lường môi trường và chất lượng nước; khối trạng thái kết nối để theo dõi tình trạng thiết bị; khối thông báo cho cảnh báo và cập nhật sự cố; và khối điều chỉnh cảm biến giúp người dùng tùy chỉnh tham số vận hành Cách bố trí này tối ưu cho việc quan sát dữ liệu nhanh chóng, quản lý kết nối ổn định và hiệu chỉnh cảm biến dễ dàng.

Hình 2.19 Xây dựng giao diện cảm biến

Về giao diện nhận diện – khoá cửa: sẽ bao gồm khối điều khiển, trạng thái kết nối, khối chụp thủ công, thông báo và khối hiển thị hình ảnh

Hình 2.20 Xây dựng giao diện nhận diện

- Mạch xử lý sẽ nhận tín hiệu từ server Blynk và truyền thông tin lên Smartphone cho người dùng

- App Blynk giúp cho người dùng có thể nắm bắt thông tin từ các cảm biến mà ta sử dụng một cách trực quan, dễ nhìn, cũng như nó có thể cảnh báo các mức độ nguy hại trên điện thoại từ xa cho người dùng mỗi khi có vấn đề xảy ra.

Xây dựng, phát triển tính năng nhận diện khuôn mặt

Để ESP32-CAM nhận diện được khuôn mặt kể cả khi mất điện, ta cần phải lưu hình ảnh đã đăng ký (enroll face) lên bộ nhớ của ESP32-CAM

Sau đó, ta sẽ dùng mẫu đã lưu, so sánh với các hình ảnh thu được từ ESP32-CAM

Có các bước cần hoàn thành như sau

- Tạo sơ đồ phân vùng mới để cho phép lưu trữ liên tục

- Thu thập dữ liệu khuôn mặt ESP32-CAM và lưu vào bộ nhớ đã phân vùng

- Sử dụng các nhận dạng đã lưu để điều khiển các thiết bị kết nối với ESP32

2.6.1 Phân vùng lại bộ nhớ

Partitioning the ESP32-CAM is required to create dedicated storage for image recognition data In this report, I followed the author's partitioning scheme and used their rzo_partitions.csv as a reference (available at https://robotzero.one/wp-content/uploads/2019/04/rzo_partitions.csv).

- Thêm tệp này vào thư mục chứa lược đồ phân vùng

C > Users > Admin > AppData > Local > Arduino15 > packages > esp32 > hardware > esp32 > 1.0.4 > tools > partitions

- Lược đồ mới phải được thêm vào thiết bị ESP của bạn trong tệp cấu hình trình quản lý bảng - board.txt

C > Users > your-user-name > AppData > Local > Arduino15 > packages > esp32 > hardware > esp32 > 1.0.4

- Thêm ba dòng sau bên dưới các tùy chọn phân vùng hiện có cho bảng

Esp32wrover trong tệp board.txt này

 esp32wrover.menu.PartitionScheme.rzo_partitione Recognition (2621440 bytes with OTA)

 esp32wrover.menu.PartitionScheme.rzo_partition.build.partitions=rzo_partition s

 esp32wrover.menu.PartitionScheme.rzo_partition.upload.maximum_size&21

- Đóng và mở lại ArduinoIDE để xác nhận lược đồ phân vùng “Face

Recognition” có trong menu công cụ

SVTH: Lê Đình Phong, Nguyễn Đức Thắng Trang 38

Hình 2.21 Phân vùng bộ nhớ cho ESP32-CAM

2.6.2 Thu thập dữ liệu khuôn mặt ESP32-CAM và lưu vào bộ nhớ đã phân vùng

Thông thường, ESP32-CAM chỉ có bộ nhớ sao lưu khi có nguồn cấp; sau khi mất nguồn, mọi dữ liệu nhận dạng sẽ bị mất Để ESP32 có thể liên tục thu thập dữ liệu và lưu vào một phân vùng bộ nhớ, cần thiết lập hệ thống ghi dữ liệu nhận dạng vào phân vùng flash được dành riêng, đảm bảo cấp nguồn ổn định và cấu hình quản lý dữ liệu cho ghi nhớ lâu dài Quá trình này liên quan đến việc tối ưu hóa truy cập flash, thực hiện wear leveling, và kiểm tra dữ liệu trước khi ghi nhằm giảm rủi ro mất mát dữ liệu khi nguồn điện bị ngắt đột ngột Việc lưu trữ dữ liệu nhận dạng trên phân vùng bộ nhớ giúp tăng độ tin cậy của ESP32-CAM và tối ưu cho các chiến lược tìm kiếm và tối ưu hóa SEO với các từ khóa liên quan như ESP32-CAM, lưu trữ dữ liệu, phân vùng bộ nhớ, và quản lý nguồn.

- Thay đổi int8_t left_sample_face = enroll_face(&id_list, aligned_face);(&id_list, aligned_face); thành int8_t left_sample_face = enroll_face_id_to_flash(&id_list, aligned_face);

- Thêm read_face_id_from_flash_with_name(&st_face_list);

Dữ liệu khuôn mặt đã đăng ký sẽ được lưu vào phân vùng mới trên bộ nhớ flash

2.6.3 Sử dụng các nhận dạng đã lưu để điều khiển các thiết bị kết nối với

Sau khi lưu các nhận dạng thu thập được vào bộ nhớ, các nhận dạng mới do ESP32 thu thập sẽ được so sánh với các mẫu đã thu thập để xác định kết quả nhận diện và cập nhật bộ dữ liệu mẫu nhằm cải thiện độ chính xác của hệ thống theo thời gian.

2.6.4 Điều khiển, nhận diện và lưu trữ dữ liệu

Sau khi nạp chương trình vào vi điều khiển, thông qua WebServer ta có điều khiển vi điều khiển các chức năng chính như sau:

- Xác nhận tạo dữ liệu khuôn mặt

Hình 2.22 Chức năng Stream trên Webserver

Khi khởi động Camera, ESP32 bắt đầu thu nhận tín hiệu từ vi điều khiển và hiển thị dưới dạng video Các thông số dành cho người dùng đã được thiết lập từ phần lập trình, giúp tối ưu hóa quá trình xử lý và phát video trên hệ thống.

Hình 2.23 Chức năng phát hiện khuôn mặt trên WebServer

SVTH: Lê Đình Phong, Nguyễn Đức Thắng Trang 40

Khi khởi động chức năng phát hiện, Camera sẽ bắt đầu thực hiện, phát hiện xem có khuôn mặt trong phạm vi nhận diện, nếu như có sẽ thông báo Face

Hình2.24 Khuôn mặt đã được nhận diện và lưu vào bộ nhớ

Ngay khi đối tượng được phát hiện, ta có thể gán tên cho đối tượng và bắt đầu thu thập mẫu khuôn mặt Bài báo cáo này cho thấy hệ thống sử dụng 5 mẫu cho 5 góc độ khác nhau của khuôn mặt để tối ưu hóa nhận diện Sau khi đối tượng được nhận diện, hệ thống sẽ thêm người dùng vào bộ nhớ vi điều khiển ESP32-CAM (Add User), cho phép lưu trữ dữ liệu nhận diện và truy cập nhanh trong các ứng dụng an ninh và tự động hoá.

CHƯƠNG III: KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN

Kết quả thiết kế in mạch PCB

Hình 3.1 Mô hình 3D mạch cảm biến

Mô hình 3D được xây dựng trên nền tảng phần mềm Altium Design, tích hợp đầy đủ các chi tiết và kết nối của mạch Dựa trên lưu đồ thuật toán và sơ đồ nguyên lý trình bày ở chương 2, kết quả mô phỏng cho thấy mô hình 3D phản ánh đúng cấu trúc và chức năng của mạch thực tế; hình mô phỏng 3D ở trên và hình mạch thực tế ở dưới minh họa sự nhất quán giữa thiết kế và thực thi.

Hình 3.2 Mạch thực tế mạch cảm biến

SVTH: Lê Đình Phong, Nguyễn Đức Thắng Trang 42

3.1.2 Mạch nhận diện khuôn mặt

Hình 3.3 Mô hình 3D mạch nhận diện khuôn mặt

Tương tự như mô hình 3D mạch cảm biến, dựa theo lưu đồ thuật toán và sơ đồ nguyên lý cho ra kết quả là mô hình 3D mạch nhận diện và mạch thực tế mạch nhận diện khuôn mặt

Hình 3.4 Mạch thực tế mạch nhận diện khuôn mặt

Kiểm tra, vận hành, đo lường

3.2.1 Kiểm tra quá trình đo lường Nhiệt độ, độ ẩm và khí gas

- Cảm biến khí gas MQ2, cảm biến nhiệt độ, độ ẩm DHT11 sẽ thu thập các tín hiệu ban đầu

- ESP8266 sẽ truyền dữ liệu thu được lên LCD và Blynk

- Mỗi 2 giây, cảm biến sẽ thu tín hiệu 1 lần Khi tín hiệu thu được vượt mức quy định đã thiết lập, mạch sẽ gửi thông tin và cảnh báo tới người dùng

Hình 3.5 Cảm biến nhiệt độ trước và sau khi phát hiện nhiệt độ cao

3.2.2 Quá trình đo lường độ đục trong của nước

SVTH: Lê Đình Phong, Nguyễn Đức Thắng Trang 44

- Cảm biến độ đục của nước lần lượt đo qua 2 môi trường nước sinh hoạt bình thường và nước đục không thể dùng trong sinh hoạt

- Esp8266 sẽ gửi tín hiệu ban đầu cảm biến thu được lên Blynk mỗi 2 giây

Trong môi trường nước trong, cảm biến đo độ đục hiển thị khoảng 8–10%; khi ở môi trường nước đục, cảm biến thu được tín hiệu từ 34–36% Kết quả cho thấy cảm biến đã đạt được mục tiêu đề ra và có khả năng phân biệt rõ rệt giữa nước trong và nước đục, từ đó nâng cao hiệu quả giám sát chất lượng nước.

- Khi phát hiện nước có vấn đề, hệ thống sẽ báo về Blynk để thông báo cho người dùng, đồng thời, bật còi và LED cảnh báo

Hình 3.6 Hai mẫu nước thử: nước sinh hoạt bình thường và nước vẩn đục

Hình 3.7 Cảm biến độ đục nước khi ở trong nước sinh hoạt bình thường

SVTH: Lê Đình Phong, Nguyễn Đức Thắng Trang 46

Hình 3.8 Cảm biến độ đục nước khi ở trong nước đục, không thể sinh hoạt

3.2.3 Mạch nhận diện khuôn mặt

- Khởi đông Camera, Mạch có 2 chế độ là nút Chuông và nút Quét 2 nút này dành cho 2 chế độ: Nhận diện khách hoặc nhận diện chủ nhà, với nút Chuông dành cho khách và nút Quét cho chủ nhà hoặc người thân

- Khi bấm vào nút chuông, camera sẽ chụp hình đối tượng đối diện, đồng thời gửi hình ảnh về Blynk

Hình 3.9 Blynk thông báo có người lạ nhấn chuông

- Khi nhấn nút Quét, camera sẽ chụp hình đối tượng đối diện

 Nếu đối tượng đúng như trong cài đặt sẵn thì sẽ mở cửa, không thông báo về điện thoại

SVTH: Lê Đình Phong, Nguyễn Đức Thắng Trang 48

 Nếu đối tượng sai so với cài đặt Sau khi nhấn scan 3 lần, thì sẽ phát còi cảnh báo và gửi về Blynk

Hình 3.10 Nút quét hình: Khi camera không nhận diện được

Hình 3.11 Nút quét hình: Khi camera nhận diện được

SVTH: Lê Đình Phong, Nguyễn Đức Thắng Trang 50

Nhận xét

3.3.1 Nhật xét tổng quan về mạch

- Hệ thống vận hành ổn định trong điều kiện bình thường

- Tốc độ truyền dữ liệu qua Internet nhanh chóng và thuận tiện

- Phát hiện thay đổi kịp thời và xử lý đúng như đã lập trình

3.3.2 Nhận xét về mạch cảm biến

- Cảm biến nhiệt độ DHT11 hoạt động ổn định, truyền tải đầy đủ tín hiệu thu thập được

- Cảm biến khí gas MQ2 hoạt động chính xác trong trường hợp thử nghiệm

- Cảm biến độ đục nước phân tích chính xác môi trường nước đang đo đạc, từ đó phản hồi chính xác cho người dùng

- LCD hiển thị chính xác những gì cảm biến thu thập được

3.3.3 Nhận xét về mạch nhận diện khuôn mặt

- Phân tích chính xác khuôn mặt cần nhận diện, đồng thời xử lý và phản hồi dữ liệu nhanh chóng, không có độ trễ

- Hoàn thành nhanh chóng việc phát cảnh báo tới Smartphone cũng như phát cảnh báo bằng còi chính xác.

Khó khăn và hướng khắc phục đề tài

- Linh kiện thường xuyên hư trong trong quá trình thực hiện kiểm tra và thử mạch

- Khó khăn trong việc thiết kế và vẽ mạch do không quen sử dụng phần mềm thiết kế

- Khó khăn trong việc trao đổi với giáo viên hướng dẫn, không được thuận lợi, trơn tru

- Cố gắng liên hệ với giáo viên hướng dẫn để trau dồi kiến thức phục vụ cho việc xây dựng đề tài

- Sử dụng nhiều phần mềm, tài liệu khác nhau để phục vụ cho đề tài

- Tìm hiểu kĩ hơn về các thiết kế, linh kiện để vận dụng thuần thục hơn trong việc xây dựng hệ thống.

Ngày đăng: 12/08/2022, 10:36

🧩 Sản phẩm bạn có thể quan tâm

w