Thiết bị cảnh báo chống trộm sử dụng tia laze và hệ điều hành FreeRTOS

MỤC LỤC

MODULE ARDUINO UNO R3

Mạch Arduino Uno là dòng mạch Arduino phổ biến, khi mới bắt đầu làm quen, lập trình với Arduino thì mạch Arduino thường nói tới chính là dòng Arduino UNO. Arduino Uno R3 là dòng cơ bản, linh hoạt, thường được sử dụng cho người mới bắt đầu. Bạn có thể sử dụng các dòng Arduino khác như: Arduino Mega, Arduino Nano, Arduino Micro… Nhưng với những ứng dụng cơ bản thì mạch Arduino Uno là lựa chọn phù hợp nhất.

Arduino UNO R3 là kit Arduino UNO thế hệ thứ 3, với khả năng lập trình cho các ứng dụng điều khiển phức tạp do được trang bị cấu hình mạnh cho các loại bộ nhớ ROM, RAM và Flash, cỏc ngừ vào ra digital I/O trong đú cú nhiều ngừ cú khả năng xuất tớn hiệu PWM, cỏc ngừ đọc tớn hiệu analog và cỏc chuẩn giao tiếp đa dạng như UART, SPI, TWI (I2C). Khi dùng các thiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải được nối với nhau.  Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, ta nối cực dương của nguồn với chân này và cực âm với chân GND.

 IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO có thể được đo ở chân này. Mặc dù vậy không được lấy nguồn 5V từ chân này để sử dụng bởi chức năng của nó không phải là cấp nguồn.  RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương với việc chân RESET được nối với GND qua 1 điện trở 10KΩ.

Kết nối bluetooth thường thấy nói nôm na chính là kết nối Serial không dây. Nếu không cần giao tiếp Serial, không nên sử dụng 2 chân này nếu không cần thiết. Ngoài các chức năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giao thức SPI với các thiết bị khác.

Với chân AREF trên board, ta có thể để đưa vào điện áp tham chiếu khi sử dụng các chân analog.

Bảng 2. 1: Thông số kỹ thuật của Arduino UNO R3
Bảng 2. 1: Thông số kỹ thuật của Arduino UNO R3

MODULE ESP32

Espressif Systems và được sử dụng rộng rãi trong nhiều ứng dụng khác nhau như IoT, robot và tự động hóa. ESP32 cũng được thiết kế để tiêu thụ điện năng thấp, lý tưởng cho các ứng dụng chạy bằng pin. Nó có hệ thống quản lý năng lượng cho phép nó hoạt động ở chế độ ngủ và chỉ thức dậy khi cần thiết, điều này có thể kéo dài tuổi thọ pin rất nhiều.

8 KBytes SRAM trong RTC (gọi là RTC SLOW Memory) để truy xuất bởi các bộ co-processor. 8 KBytes SRAM trong RTC (gọi là RTC FAST Memory) dùng cho lữu dữ liệu, truy xuất bởi CPU khi RTC đang boot từ chế độ Deep- sleep.

Bảng 2. 2: Thông số kỹ thuật của ESP32
Bảng 2. 2: Thông số kỹ thuật của ESP32

MODULE I2C LCD

Tuy nhiên, LCD có khá nhiều nhiều chân gây khó khăn trong quá trình đấu nối và chiếm dụng nhiều chân trên vi điều khiển. Module I2C hỗ trợ cỏc loại LCD sử dụng driver HD44780(LCD 16ì2, LCD 20ì4, …) ngoài ra cú thể điều chỉnh được độ tương phản bởi biến trở gắn trên module và tương thích với hầu hết các vi điều khiển hiện nay. Về cơ bản, quang trở là một tế bào quang điện hoạt động theo nguyên tắc quang dẫn hay có nghĩa là nó là một điện trở có giá trị điện trở thay đổi theo cường độ ánh sáng.

Quang trở được sử dụng nhiều trong các mạch cảm biến ánh sáng, mạch chuyển đổi,. Một số ứng dụng kể đến của LDR như đồng hồ đo ánh sáng máy ảnh, đèn đường, radio đồng hồ, báo động ánh sáng,. Đầu laser phát ra một chùm tia lazer mà đỏ với ưu điểm phát tia sáng đi xa hơn nhiều lần so với ánh sáng hồng ngoại, thường được sử dụng cho đồ chơi lazer, ứng dụng vào mạch chống trộm,.

Trong đề tài còn sử dụng thêm: Điện trở, còi buzzer, công tắc và led.

Hình 2. 8: Module I2C
Hình 2. 8: Module I2C

SƠ ĐỒ THIẾT KẾ

Esp32 nhận và đọc dữ liệu từ Arduino, gửi dữ liệu đến Blynk khi đó app điện thoại sẽ thông báo đến người dùng ngay lập tức.  Lcd hiện thị trạng thái cửa đóng mở theo giá trị nhận được từ hàng đợi.

THIẾT KẾ PHẦN MỀM 1. GIỚI THIỆU VỀ BLYNK

PHẦN MỀM LẬP TRÌNH

Arduino IDE là một trình soạn thảo để viết code và nạp code vào linh kiện sử dụng. Phần mềm lập trình này có giao diện được sắp xếp hợp lý, phù hợp với cả những người dùng chuyên nghiệp lẫn không chuyên. Trong đề tài này, Arduino IDE được sử dụng để làm môi trường lập trình cho Arduino.

Hình 2. 15:Giao diện lập trình
Hình 2. 15:Giao diện lập trình

LƯU ĐỒ THUẬT TOÁN

 Task2 đọc giá trị buttonpress bằng true khi nút nhất được nhất và ngược lại. Đọc giá trị input từ hàng đợi và truyền sang esp32 bằng giao tiếp UART. Với ESP32: Sau khi khởi tạo xong thì đọc dữ liệu từ Arduino gửi sang và gán cho biến data.

Nếu data bằng “1” thì dùng hàm logEvent của Blynk để gửi thông báo về app điện thoại.

Hình 2. 17: Lưu đồ thuật toán
Hình 2. 17: Lưu đồ thuật toán