Mục tiêu của đề tài là phát triển một hệ thống khóa cửa với tính bảo mật cao, sử dụng nhiều phương thức xác thực như bàn phím số và thẻ RFID, giúp nâng cao sự an toàn cho người sử dụng m
TỔNG QUAN ĐỒ ÁN
Lý do chọn đề tài
Trong thời đại công nghiệp 4.0, IoT (Internet of Things) nổi bật như một xu hướng công nghệ quan trọng, được áp dụng rộng rãi trong các lĩnh vực như nhà thông minh, quản lý năng lượng, giám sát môi trường và nông nghiệp.
Khóa cửa thông minh tích hợp công nghệ IoT đã trở thành một phần quan trọng trong cuộc sống hiện đại, không chỉ tăng cường an ninh mà còn góp phần xây dựng hệ sinh thái nhà thông minh Sản phẩm này đáp ứng nhu cầu tiện lợi và tối ưu hóa trải nghiệm người dùng, đồng thời giúp hiểu rõ hơn về các công nghệ tiên tiến như cảm biến, vi điều khiển và giao tiếp không dây Việc phát triển hệ thống khóa cửa thông minh tạo nền tảng cho nghiên cứu và phát triển các giải pháp IoT trong tương lai.
Mục tiêu đề tài
Khóa cửa thông minh là một hệ thống hiện đại được thiết kế để nâng cao an ninh và tiện ích cho gia đình, văn phòng và cơ sở kinh doanh Hệ thống này sử dụng các phương pháp xác thực an toàn như mã số và thẻ RID, kết hợp với công nghệ IoT, nhằm giảm thiểu rủi ro và đảm bảo an toàn tối ưu cho người sử dụng.
Thiết kế hệ thống tích hợp nhiều chức năng để đáp ứng các phương thức mở cửa khác nhau.
Sử dụng vi điều khiển làm trung tâm xử lý đảm bảo hiệu suất cao, và khả năng kết nối các thiết bị ngoại vi.
Thiết kế hệ thống hiệu quả, tối ưu hóa việc sử dụng năng lượng, đảm bảo tính ổn định trong môi trường thực tế.
Giao diện thiết kế thân thiện và dễ sử dụng giúp người dùng quản lý khóa cửa một cách linh hoạt, đồng thời đảm bảo tính bảo mật trong việc lưu trữ và xử lý dữ liệu.
Tích hợp các chức năng thông báo trạng thái của khóa cửa như: khóa/ mở cửa, sai mật khẩu, có chuyển động thông qua màn hình LCD, LED.
Tìm hiểu các khái niệm, lý thuyết liên quan đến IoT, khóa cửa thông minh, và các công nghệ như vi điều khiển, cảm biến, giao tiếp không dây.
Tham khảo các nghiên cứu trước đây, tài liệu, sách và giáo trình liên quan đến đề tài.
Hệ thống được thiết kế và lập trình sử dụng vi điều khiển kết hợp với module RFID và bàn phím số, cho phép giao tiếp hiệu quả giữa các khối thông qua các giao thức truyền thông.
Sử dụng phần mềm và công cụ hỗ trợ mô phỏng và kiểm tra là rất quan trọng để đảm bảo hoạt động chính xác và ổn định trước khi tiến hành thi công phần cứng.
1.4 Các hệ thống khóa cửa hiện nay:
Khóa bấm là loại khóa nhỏ gọn, vừa lòng bàn tay, thường sử dụng cho cửa gỗ, cửa sắt và cửa xếp Có hai loại khóa bấm: loại thông thường và loại chống cắt, trong đó một số loại cần chìa khóa để khóa.
1.4.2 Khóa cửa tay nắm tròn
Khóa tay nắm tròn thường được sử dụng cho cửa gỗ và cửa nhôm kính, cho phép mở khóa bằng cách vặn quay theo chiều kim đồng hồ hoặc ngược chiều Thiết kế của khóa bao gồm một nút bấm khóa ở mặt trong và chỗ cắm chìa khóa tương tự như mặt ngoài.
1.4.3 Khóa cơ cửa cuốn Đối với khóa cơ cửa cuốn có rất nhiều loại trên thị trường, khóa xuất xứ Trung Quốc sẽ có giá rẻ và được khách hàng sử dụng nhiều, tuy nhiên khi hỏng thì không có đồ thay thế.
Khóa cửa cuốn được thiết kế với khóa chốt ngang, thường được sử dụng cho cửa cuốn tấm liền Các loại chìa khóa phổ biến bao gồm khóa chìa răng cưa và khóa 4 cạnh.
Khi sử dụng nên mở đúng chiều, đúng hướng.
Khoá cửa điện tử
Khóa cửa điện tử là giải pháp an ninh hiện đại, mang lại độ bảo mật và an toàn cao Với các phương thức mở cửa như thẻ từ, mã số hoặc vân tay, loại khóa này thường được lắp đặt cho cửa gỗ và cửa kính.
Khóa cửa thông minh sử dụng phần mềm để quản lý việc mở cửa, được bảo mật bằng thẻ từ, mật khẩu hoặc vân tay Khi người dùng nhập đúng thông tin, cửa sẽ tự động mở, mang lại sự tiện lợi và an toàn cho người sử dụng.
CƠ SỞ LÝ THUYẾT
Giao tiếp với SPI
SPI là một giao thức giao tiếp phổ biến, được áp dụng rộng rãi trong nhiều thiết bị như module thẻ SD, đầu đọc thẻ RFID và bộ thu phát không dây 2,4 GHz, giúp chúng kết nối hiệu quả với vi điều khiển.
Lợi ích nổi bật của SPI là khả năng truyền dữ liệu liên tục mà không bị gián đoạn, cho phép gửi hoặc nhận bất kỳ số lượng bit nào trong một luồng mượt mà Trong khi đó, I2C và UART chỉ cho phép gửi dữ liệu dưới dạng gói, với giới hạn cụ thể về số bit.
Trong giao tiếp SPI, thiết bị hoạt động theo mô hình Master - Slave, trong đó Master thường là vi điều khiển, còn Slave là các thiết bị như cảm biến, màn hình hoặc chip nhớ nhận lệnh từ Master Cấu hình cơ bản nhất của SPI bao gồm một Master và một Slave, tuy nhiên, một Master có khả năng điều khiển nhiều Slave cùng lúc.
Flask
Flask là một framework web phổ biến được phát triển bằng ngôn ngữ lập trình Python, thường được sử dụng để xây dựng các trang web, từ những ứng dụng đơn giản cho đến các hệ thống phức tạp hơn.
Flask được tạo ra bởi Armin Ronacher, một nhà phát triển phần mềm người Đức vào năm
2010 Anh ấy đã phát triển Flask với mục tiêu tạo ra một framework đơn giản nhưng mạnh mẽ để phát triển ứng dụng web bằng Python.
Flask Framework sở hữu một số tính năng quan trọng mà nhà phát triển thường sử dụng để xây dựng hiệu ứng web:
Cấu trúc nhẹ nhàng và mã nguồn dễ đọc của sản phẩm giúp người phát triển dễ dàng tiếp cận và tùy chỉnh theo nhu cầu cụ thể, mang lại trải nghiệm sử dụng thuận tiện và hiệu quả.
Định tuyến linh hoạt cho phép người phát triển xác định các mẫu URL và phân bổ chúng cho các hàm xử lý tương ứng, giúp quản lý và xử lý yêu cầu HTTP một cách hiệu quả.
Công cụ mẫu: Flask tích hợp Jinja2, đây là một loại trình biên dịch mẫu mạnh mẽ cho phép tạo ra các giao diện người dùng.
Nền tảng này có khả năng mở rộng mạnh mẽ nhờ vào việc sử dụng các tiện ích và thư viện từ cộng đồng, cho phép phân tích nhiều tính năng như xác thực, đăng nhập, điều hướng, và cơ sở dữ liệu tương tác, cùng với nhiều chức năng hữu ích khác.
Flask cung cấp máy chủ phát triển tích hợp, giúp lập trình viên dễ dàng kiểm tra và phát triển ứng dụng mà không cần thực hiện cấu hình phức tạp.
Gửi yêu cầu RESTful: Flask hỗ trợ xây dựng API và các ứng dụng RESTful theo cách hoạt động và hiệu quả.
Cộng đồng Flask rất lớn và năng động, với sự hỗ trợ mạnh mẽ từ cộng đồng Python, giúp các nhà phát triển dễ dàng tìm kiếm thông tin và tài liệu cần thiết.
API
API, hay Giao diện Lập trình Ứng dụng, là các phương thức và giao thức cho phép kết nối với thư viện và ứng dụng khác Nó cung cấp khả năng truy cập đến một tập hợp các hàm thường dùng, từ đó hỗ trợ việc trao đổi dữ liệu giữa các ứng dụng một cách hiệu quả.
Dựa trên phạm vi sử dụng và kiến trúc, API được phân loại thành 4 loại khác nhau API đơn giản là giao diện cho phép các ứng dụng giao tiếp với nhau thông qua các lệnh cơ bản, với cách thức gửi và định dạng dữ liệu khác nhau, như trong trường hợp của API SOAP hoặc REST.
Cách thức hoạt động của API khá đơn giản.
Web API là một loại API hoạt động trên nền tảng giao thức HTTP/HTTPS, cho phép các ứng dụng tương tác và trao đổi dữ liệu thông qua các phương thức HTTP.
Các thành phần chính của Web API:
Endpoint: Các địa chỉ URL mà ứng dụng có thể truy cập để thực hiện các hành động cụ thể.
HTTP Methods: Các phương thức HTTP phổ biến mà Web API sử dụng để thực hiện các hành động
Request: Yêu cầu gửi tới server, bao gồm URL, phương thức HTTP, headers, và body (nếu có).
Response: Phản hồi từ server sau khi xử lý yêu cầu, bao gồm mã trạng thái HTTP và dữ liệu (thường là JSON hoặc XML).
Các kiểu Web API phổ biến:
RESTful API (Representational State Transfer)
Sử dụng các phương thức HTTP (GET, POST, PUT, DELETE) để quản lý tài nguyên. Định dạng dữ liệu: JSON, XML.
SOAP API (Simple Object Access Protocol)
Dựa trên giao thức XML với các quy tắc chặt chẽ.
Phù hợp với hệ thống phức tạp, yêu cầu bảo mật cao.
Một ngôn ngữ truy vấn cho phép client yêu cầu chính xác dữ liệu cần thiết.
Có một endpoint duy nhất.
GRPC (Google Remote Procedure Call)
Sử dụng giao thức HTTP/2 và Protocol Buffers (Protobuf) để truyền dữ liệu. Thích hợp cho hệ thống phân tán, tốc độ cao.
Kết nối hai chiều thời gian thực giữa client và server.
Dùng cho chat, game, hoặc ứng dụng thời gian thực.
Server-Sent Events (SSE) API
Cho phép server gửi sự kiện thời gian thực tới client.
Phù hợp cho thông báo, cập nhật trực tiếp.
Giao tiếp dựa trên JSON hoặc XML, hỗ trợ gọi hàm từ xa (Remote Procedure Call).
Gửi dữ liệu liên tục theo thời gian thực, thích hợp cho xử lý dữ liệu lớn.
Xử lý nhiều yêu cầu trong một lần gọi API.
HATEOAS (Hypermedia As The Engine Of Application State)
Mở rộng REST, sử dụng hypermedia để liên kết tài nguyên.
HTTP
HTTP, or HyperText Transfer Protocol, is a fundamental internet protocol that facilitates communication between web servers and web clients It operates on a client/server model and is essential for the functioning of the World Wide Web (WWW).
HTTP là một giao thức ứng dụng của bộ giao thức TCP/IP (các giao thức nền tảng cho Internet).
HTTP hoạt động theo mô hình Client-Server, trong đó máy tính của người dùng giữ vai trò là máy khách (Client) Khi người dùng thực hiện một thao tác, máy khách sẽ gửi yêu cầu đến máy chủ (Server) và chờ nhận phản hồi từ máy chủ đó.
HTTP là một stateless protocol Hay nói cách khác, request hiện tại không biết những gì đã hoàn thành trong request trước đó.
HTTP cho phép gửi và nhận nhiều loại dữ liệu khác nhau, từ đó hỗ trợ việc xây dựng hệ thống độc lập với loại dữ liệu được truyền tải.
Cuộc sống của HTTP xoay quanh cái vòng luẩn quẩn: Request và Response.
Một request gồm có 4 phần:
URL là địa chỉ duy nhất mà client sử dụng để yêu cầu tài nguyên từ server, thường chỉ rõ đường dẫn đến một tài nguyên cụ thể hoặc một hàm xử lý logic trên server.
Phương thức HTTP được sử dụng để xác định hành động mà khách hàng muốn thực hiện với tài nguyên, chẳng hạn như lấy dữ liệu, tạo dữ liệu, cập nhật dữ liệu hoặc xóa dữ liệu Các phương thức phổ biến bao gồm GET, POST, PUT và DELETE.
1 GET: Lấy dữ liệu từ server (không có body).
2 POST: Gửi dữ liệu lên server (thường dùng để tạo mới tài nguyên).
3 PUT: Cập nhật tài nguyên trên server.
4 DELETE: Xóa tài nguyên trên server.
5 PATCH: Cập nhật một phần tài nguyên.
Headers là các cặp key-value đi kèm với yêu cầu, cung cấp thông tin bổ sung như kiểu dữ liệu được gửi, thông tin xác thực và thông tin về client Một số header thông dụng bao gồm Authorization, Content-Type và User-Agent, giúp cải thiện khả năng giao tiếp giữa client và server.
1 Content-Type: Chỉ rõ định dạng dữ liệu được gửi (ví dụ: application/json, text/html).
2 Authorization: Cung cấp thông tin xác thực (ví dụ: token bearer).
3 Accept: Xác định định dạng dữ liệu mà client muốn nhận về (ví dụ: application/json).
4 User-Agent: Thông tin về client (trình duyệt hoặc ứng dụng).
Body là phần dữ liệu thực tế mà client gửi đến server, thường được sử dụng trong các phương thức như POST, PUT, PATCH, và đôi khi DELETE Nội dung của body có thể bao gồm thông tin như form dữ liệu, JSON, hoặc XML, tùy thuộc vào loại Content-Type.
Status code: là mã số ba chữ số được gửi từ server để chỉ ra kết quả của yêu cầu Thường chia thành 5 nhóm chính:
1 1xx: Information (Thông tin): Khi nhận được những mã như vậy tức là request đã được server tiếp nhận và quá trình xử lý request đang được tiếp tục.
2 2xx: Success (Thành công): Khi nhận được những mã như vậy tức là request đã được server tiếp nhận, hiểu và xử lý thành công
3 3xx: Redirection (Chuyển hướng): Mã trạng thái này cho biết client cần có thêm action để hoàn thành request
RESET - RESTful API
hoặc không được thực hiện.
5 5xx: Server Error (Lỗi Server): Nó nghĩa là Server thất bại với việc thực hiện một request nhìn như có vẻ khả thi.
Headers trong response chứa thông tin bổ sung về kết quả của request, tương tự như headers trong request Các header thông dụng trong response:
1 Content-Type: Loại dữ liệu trả về (ví dụ: application/json, text/html).
2 Content-Length: Kích thước của dữ liệu trong body.
3 Location: Dùng trong các response chuyển hướng (ví dụ: URL mới khi chuyển hướng).
4 Cache-Control: Hướng dẫn về việc lưu trữ bộ nhớ đệm.
5 Set-Cookie: Dùng để gửi cookie từ server tới client.
The body of a response contains the actual data returned by the server to the client This body can be in various formats such as JSON, HTML, plain text, or images, depending on the requirements and the type of data specified in the Content-Type header.
REST là một kiến trúc chuyển đổi cấu trúc dữ liệu, đóng vai trò quan trọng trong việc phát triển API Nó thiết lập các nguyên tắc thiết kế cần thiết để xây dựng các dịch vụ web hiệu quả.
Các nguyên tắc của kiến trúc REST:
Stateless (Không trạng thái): Server không lưu trạng thái của client Mỗi yêu cầu đều chứa đầy đủ thông tin.
Client-Server: Client và server hoạt động độc lập với nhau.
Cacheable: Các phản hồi có thể được lưu trong bộ nhớ đệm để tăng hiệu suất.
Layered System (Hệ thống phân lớp): Có thể có các lớp trung gian (proxy, load balancer) giữa client và server.
HATEOAS: Phản hồi API chứa các liên kết để điều hướng tài nguyên.
RESTful is an architectural style for designing Web APIs, based on the principles of Representational State Transfer (REST) It organizes and delivers resources via HTTP, and applications that implement this design style are referred to as RESTful.
RESTful API là giao diện lập trình ứng dụng (API) tuân theo các quy tắc và nguyên tắc của kiến trúc REST, được sử dụng để giao tiếp hiệu quả giữa client và server.
REST thường sử dụng giao thức HTTP cho các API Web, cho phép gửi yêu cầu như GET, POST, DELETE đến một URL để xử lý dữ liệu, thay vì chỉ sử dụng một URL cho việc xử lý thông tin người dùng.
REST hoạt động dựa chủ yếu trên phương thức CRUD ( Create, Read, Update,Delete) tương đương với 4 giao thức HTTP: POST, GET, PUT, DELETE.
MySQL
2.7.1 Khái niệm và tính năng
MySQL là một hệ thống quản trị cơ sở dữ liệu (Relational Database Management System
- RDBMS) mã nguồn mở hoạt động theo mô hình client - server MySQL được phát triển bởi Oracle Corporation và được phát hành miễn phí cho cộng đồng người dùng.
Một số tính năng quan trọng của MySQL:
Hỗ trợ đa ngôn ngữ lập trình: Hỗ trợ nhiều ngôn ngữ như C, C++, Python, Java, PHP, giúp phát triển ứng dụng trên nhiều nền tảng.
Tuân thủ ACID: Đảm bảo tính toàn vẹn dữ liệu với các nguyên tắc: Atomicity, Consistency, Isolation, Durability.
Sao lưu và phục hồi: Cho phép sao lưu và khôi phục dữ liệu dễ dàng, bảo vệ dữ liệu an toàn khi gặp sự cố.
Hỗ trợ khóa ngoại: Kết nối dữ liệu giữa các bảng, hỗ trợ truy vấn phức tạp và duy trì tính toàn vẹn tham chiếu.
Tối ưu hóa hiệu suất: Xử lý dữ liệu nhanh và cung cấp công cụ tối ưu hóa để cải thiện tốc độ.
MySQL hoạt động theo mô hình client-server, cho phép client gửi truy vấn đến server để thực hiện các câu lệnh SQL và truy xuất dữ liệu Dữ liệu được lưu trữ trong các cơ sở dữ liệu, mỗi cơ sở dữ liệu có thể chứa nhiều bảng với các mối quan hệ khác nhau MySQL cung cấp các công cụ quản lý cơ sở dữ liệu để tạo, chỉnh sửa và xóa cơ sở dữ liệu cũng như bảng.
Các câu lệnh SQL được sử dụng để truy xuất và xử lý dữ liệu trong MySQL Các lệnh này bao gồm:
SELECT để lấy dữ liệu
INSERT để chèn dữ liệu mới
UPDATE để cập nhật dữ liệu đã có
DELETE để xóa dữ liệu
MySQL cung cấp các lệnh quản lý cơ sở dữ liệu quan trọng như CREATE để tạo mới cơ sở dữ liệu hoặc bảng, ALTER để thay đổi cấu trúc của bảng, và DROP để xóa cơ sở dữ liệu hoặc bảng.
Mối quan hệ giữa Web API, RESTful và HTTP
HTTP đóng vai trò nền tảng cho RESTful API, cung cấp các phương tiện cần thiết để thực hiện các thao tác với tài nguyên Các phương thức của HTTP được RESTful API tận dụng nhằm đảm bảo giao tiếp hiệu quả.
RESTful is a method for designing Web APIs that adheres to the principles of Representational State Transfer (REST), ensuring that the API is user-friendly, scalable, and compatible with other systems.
Web API sử dụng HTTP làm phương tiện truyền tải: thực hiện giao tiếp giữa client và server.
RESTful là phương pháp tổ chức và thiết kế Web API dựa trên giao thức HTTP, giúp API trở nên dễ hiểu, rõ ràng và hiệu quả Giao thức HTTP được sử dụng để gửi và nhận dữ liệu, trong khi Web API đóng vai trò là công cụ giao tiếp giữa client và server.
THIẾT KẾ MẠCH
Các linh kiện dùng trong mạch thiết kế
Kit phát triển STM32F103C8T6 Blue Pill ARM Cortex-M3 là lựa chọn phổ biến cho nghiên cứu ARM nhờ giá thành phải chăng và khả năng nạp bootloader Blue Pill, giúp giao tiếp và lập trình dễ dàng với phần mềm Arduino Sản phẩm này không chỉ có chất lượng gia công tốt mà còn đảm bảo độ bền cao.
Điện áp cấp 5VDC qua cổng Micro USB sẽ được chuyển đổi thành 3.3VDC qua IC nguồn và cấp cho Vi điều khiển chính.
Tích hợp sẵn thạch anh 8Mhz.
Tích hợp sẵn thanh anh 32Khz cho các ứng dụng RTC.
Ra chân đầy đủ tất cả các GPIO và giao tiếp: CAN, I2C, SPI, UART, USB,
Tích hợp Led trạng thái nguồn, Led PC13, Nút Reset.
ESP32-CAM là một mô-đun camera nhỏ gọn với kích thước chỉ 40 x 27 x 12 mm và dòng nghỉ chỉ 6mA, rất phù hợp cho các ứng dụng IoT Mô-đun này có khả năng hoạt động độc lập, làm cho nó trở thành lựa chọn lý tưởng cho thiết bị thông minh gia đình, điều khiển không dây công nghiệp, giám sát và kiểm soát từ xa, cũng như nhận dạng QR và định vị không dây Với tính năng đa dạng và hiệu suất cao, ESP32-CAM là giải pháp hoàn hảo cho các ứng dụng IoT hiện đại.
IC chính: ESP32-S (AI-Thinker)
Mô-đun 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
Hỗ trợ UART / SPI / I2C / PWM / ADC / DAC
Hỗ trợ máy ảnh OV2640 và OV7670, đèn flash tích hợp
Mạch RFID NFC 13.56MHz RC522 sử dụng IC MFRC522 để đọc và ghi dữ liệu cho thẻ RFID/NFC tần số 13.56MHz Thiết kế nhỏ gọn của mạch này rất phổ biến hiện nay, thường được kết hợp với Arduino hoặc các loại vi điều khiển khác trong các ứng dụng cần ghi và đọc thẻ RFID/NFC.
Tần số hoạt động: 13.56Mhz
Khoảng cách hoạt động: 0~60mm(mifare1 card)
Tốc độ truyền dữ liệu: tối đa 10Mbit/s
Thiết bị RFID đọc được lắp cố định tại một vị trí và phát ra sóng vô tuyến điện ở tần số nhất định để phát hiện các thiết bị phát xung quanh Khi thiết bị RFID phát tín hiệu vào vùng sóng mà RFID đọc phát ra, hai bên sẽ nhận diện nhau Thiết bị RFID phát sẽ nhận sóng điện tử, thu thập và truyền lại mã số cho RFID đọc Nhờ vào quá trình này, RFID đọc có thể xác định thiết bị RFID phát nào đang hoạt động trong khu vực.
Ma trận phím 4x4 bao gồm 16 nút bấm được sắp xếp thành 4 hàng và 4 cột, với các nút trong cùng hàng và cột được kết nối, tạo ra tổng cộng 8 ngõ ra Thiết bị này cho phép người dùng nhập chữ số, chữ cái và ký hiệu vào bộ điều khiển, từ đó điều khiển các thiết bị ngoại vi Để tăng cường độ ổn định cho các nút bấm, người dùng có thể thêm trở treo, thường là 10K.
Nhiệt độ hoạt động 0 ~ 70 độ C
Kích thước bo Dài x Rộng: 4x4cm
3.1.5 Cảm biến chuyển động HC-SR501
Cảm biến hồng ngoại thụ động (PIR) được sử dụng để phát hiện chuyển động của các vật thể phát ra bức xạ hồng ngoại như con người, động vật và các vật phát nhiệt khác Cảm biến này có khả năng điều chỉnh độ nhạy, cho phép giới hạn khoảng cách phát hiện và cường độ bức xạ của vật thể mong muốn Ngoài ra, cảm biến còn tích hợp biến trở để điều chỉnh thời gian kích trễ, mang lại sự linh hoạt trong việc sử dụng.
Phạm vi phát hiện: góc 360 độ hình nón, độ xa tối đa 6m.
Điện áp hoạt động: DC 3.8V – 5V
Thời gian báo: 30 giây có thể tùy chỉnh bằng biến trở.
Cảm biến PIR được trang bị sensor với hai đơn vị (element) và có lăng kính fresnel bằng plastic phía trước Lăng kính này giúp phân chia thành nhiều vùng (zone) để tia hồng ngoại có thể đi vào mắt sensor Hai đơn vị của sensor tạo thành hai điện cực, một dương (+) và một âm (-) Khi hai đơn vị này được kích hoạt tuần tự, chúng sẽ tạo ra một xung điện, từ đó kích hoạt sensor.
Thiết kế sơ đồ khối
Khối này có nhiệm vụ cung cấp nguồn điện cho toàn bộ hệ thống, đảm bảo điện áp ổn định và phù hợp cho các khối khác hoạt động hiệu quả.
STM32 là bộ não của hệ thống, chịu trách nhiệm xử lý tín hiệu đầu vào và điều khiển hoạt động giữa các khối khác nhau Nó thực hiện các thuật toán và logic điều khiển, đồng thời thực hiện các phép toán và xử lý dữ liệu từ các thiết bị như bàn phím số, thẻ RFID và cảm biến chuyển động.
Giao diện web hiển thị thông tin giúp người dùng theo dõi và điều khiển trạng thái cửa đóng/mở Nó cũng cung cấp lịch sử hoạt động của cửa, thông tin từ cảm biến chuyển động, và hình ảnh từ camera ESP32-CAM, mang lại trải nghiệm quản lý an toàn và tiện lợi.
Dùng để thông báo tình trạng nhập mật khẩu sai thông qua tín hiệu báo động như âm thanh buzzer.
3.3.1 Sơ đồ nguyên lý toàn mạch
Khi người dùng nhập mật khẩu qua bàn phím 4x4, STM32 sẽ quét cột và hàng để xác định phím được nhấn Sau khi nhập đủ mật khẩu, STM32 kiểm tra tính chính xác: nếu đúng, LED sẽ sáng và LCD hiển thị thông báo "cửa mở" cùng với phương thức mở cửa Quá trình này diễn ra trong 1 giây Nếu mật khẩu sai, biến đếm số lần nhập sai sẽ tăng, và LCD sẽ hiển thị "Mật khẩu sai" Từ lần nhập sai thứ ba trở đi, còi báo động sẽ kích hoạt trong 5 giây và quá trình nhập mật khẩu sẽ bị vô hiệu hóa Chỉ khi nhập đúng mật khẩu, biến đếm mới được đặt lại về 0 Nếu mật khẩu đúng và có báo động, STM32 sẽ gửi thông điệp đến ESP32_CAM qua giao thức UART.
STM32 giao tiếp với thẻ RID thông qua giao thức SPI, cho phép đọc dữ liệu ID từ MRC522 khi quét thẻ Sau đó, hệ thống sẽ kiểm tra ID của thẻ với danh sách ID hợp lệ đã lưu Nếu thẻ đúng, LED sẽ sáng, LCD hiển thị thông điệp “Cửa mở bằng thẻ” và gửi thông tin đến ESP32_CAM qua giao thức UART.
STM32 đọc tín hiệu từ cảm biến HC-SR501 qua chân GPIO (PA2) Khi nhận tín động chuyển động, STM32 sẽ gửi thông điệp cho ESP32_CAM bằng UART
ESP32-CAM sẽ truyền và nhận dữ liệu từ STM32 thông qua giao thức UART, đồng thời hiển thị camera quan sát.
3.3.2 Sơ đồ nguyên lý từng khối
Các linh kiện kết nối nguồn:
+5V: ESP32-CAM, LCD, Cảm biến chuyển động.
+3V3: Thẻ RFID, LED, còi Buzzer
Khối nguồn trong hệ thống đóng vai trò quan trọng trong việc cung cấp điện cho toàn bộ hệ thống, đồng thời đảm bảo các thành phần hoạt động với đủ điện áp Việc duy trì nguồn điện ổn định là yếu tố then chốt giúp hệ thống hoạt động hiệu quả và ổn định.
GND nối với GND của STM32
VCC nối với 5V của STM32
SDA nối với PB7 của STM32
SCL nối với PB6 của STM32
Màn hình LCD được sử dụng để hiển thị các thông tin cũng như các thao tác mở cửa bằng bàn phím, thẻ RFID, còi báo động.
Kết nối chân bàn phím:
A nối với PB0 của STM32
B nối với PB1 của STM32
C nối với PB9 của STM32
D nối với PB10 của STM32
1 nối với PB3 của STM32
2 nối với PB4 của STM32
3 nối với PB5 của STM32
4 nối với PB8 của STM32
Bàn phím được sử dụng để nhập mật khẩu, đổi mật khẩu thông qua vi điều khiển STM32.
SDA nối với PA4 của STM32
SCK nối với PA5 của STM32
MISO nối với PA7 của STM32
MOSI nối với PA6 của STM32
GND nối với GND của STM32
RESET nối với 3V của STM32
Thẻ RFID đọc và ghi dữ liệu cho thẻ RFID / NFC, thẻ trắng/ xanh để đọc/ghi dữ liệu quét mở cửa.
ESP32-CAM kết nối chân:
GND nối với GPIO0 (nối khi nạp chương trình, nạp xong thì ngắt kết nối)
RX nối với TX của STM32
TX nối với RX của STM32
ESP32-CAM kết nối với STM32 bằng phương thức UART Đảm nhận truyền và nhận dữ liệu từ STM32 và cung cấp camera trực tiếp.
Cực dương nối với PB13 của STM32
Dùng để phát ra âm thanh báo động khi nhập sai mật khẩu từ lần thứ 3.
Cực dương nối với PB14 của STM32
Cực âm được kết nối với đất để hiển thị trạng thái đóng/mở của hệ thống Đèn LED sẽ sáng khi nhận được thẻ RFID hợp lệ hoặc khi nhập đúng mật khẩu.
Chân A của bàn phím nối với PB0 của STM32
Chân B của bàn phím nối với PB1 của STM32
Chân C của bàn phím nối với PB9 của STM32
Chân D của bàn phím nối với PB10 của STM32
Chân 1 của bàn phím nối với PB3 của STM32
Chân 2 của bàn phím nối với PB4 của STM32
Chân 3 của bàn phím nối với PB5 của STM32
Chân 4 của bàn phím nối với PB8 của STM32
Chân SDA của RFID nối với PA4 của STM32
Chân SCK của RFID nối với PA5 của STM32
Chân MISO của RFID nối với PA7 của STM32
Chân MOSI của RFID nối với PA6 của STM32
Chân GND của RFID nối với GND của STM32
Chân RESET của RFID nối với 3V của STM32
Chân 3V3 của RFID nối với 3V3 của STM32
Cực dương của Buzzer nối với PB13 của STM32
Cực dương của LED nối với PB14 của STM32
Chân GPIO0 của ESP32-CAM nối với GND của STM32
RX của ESP32-CAM nối với PA10 của STM32
TX của ESP32-CAM nối với PA9 của STM32
STM32 là trung tâm điều khiển chính, xử lý tín hiệu từ bàn phím, thẻ RID, cảm biến chuyển động, kết nối ESP32-CAM.
Mô phỏng mạch thiết kế 1 Giới thiệu phần mềm Proteus CHƯƠNG 4: THIẾT KẾ PHẦN MỀM
3.4.1 Giới thiệu phần mềm Proteus:
Proteus là phần mềm mạnh mẽ cho phép mô phỏng chính xác các vi mạch điện tử, từ sơ đồ nguyên lý đơn giản đến phức tạp Người dùng có thể dễ dàng chỉnh sửa các đặc tính của linh kiện trên sơ đồ, đồng thời xem và lưu lại phần báo lỗi, giúp kiểm tra lỗi thiết kế hiệu quả Dưới đây là những ưu điểm nổi bật của Proteus.
Proteus cung cấp khả năng mô phỏng chính xác các vi mạch điện tử và hệ thống nhúng, cho phép người dùng quan sát cách thức hoạt động của các linh kiện và mạch trong môi trường ảo Điều này giúp giảm thiểu lỗi và tiết kiệm thời gian trong quá trình tìm kiếm và sửa chữa các sai sót.
Proteus cung cấp một thư viện phong phú với nhiều linh kiện phổ biến, bao gồm vi điều khiển, cảm biến, vi mạch logic và các thành phần điện tử khác Điều này giúp người dùng tiết kiệm thời gian trong việc thiết kế và mô phỏng các mạch phức tạp.
Proteus hỗ trợ mô phỏng vi xử lý và vi điều khiển, cho phép người dùng kiểm tra tính chính xác và hiệu suất của mã chương trình trước khi triển khai lên phần cứng thực tế.
3.4.2 Mô phỏng mạch thiết kế trên phần mềm Proteus:
CHƯƠNG 5: KẾT LUẬN VÀ PHƯƠNG HƯỚNG PHÁT TRIỂN
- Chi phí thiết kế thấp
- Không có tính thẩm mỹ, chủ yếu thiết kế phục vụ việc học
- Chỉ dùng được trong những môi trường chất lỏng không ăn mòn
Mặc dù đã nỗ lực nhiều, sản phẩm của đề tài vẫn chưa đạt được độ thẩm mỹ tối ưu do hạn chế về kiến thức và thời gian Đây là một trong những hạn chế lớn nhất mà đề tài gặp phải.
- Không sử dụng linh hoạt trong nhiều môi trường chất lỏng
Ngày nay, sự phát triển nhanh chóng của khoa học kỹ thuật đòi hỏi nghiên cứu và phát triển thêm các tính năng mới, nhằm đáp ứng nhu cầu sử dụng trong những môi trường khắc nghiệt.
[1] https://www.elprocus.com/bc547-transistor-working-and-its-applications/
[2] https://easyelectronicsproject.com/mini-projects/water-level-indicator-bc547/
[3] https://www.electronicshub.org/water-level-alarm-using-555-timer/
[4] Lấy thư viện linh kiện: https://octopart.com/