Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh công nghệ thông tin và kỹ thuật vi xử lý phát triển nhanh chóng, việc ứng dụng các hệ thống nhúng vào đời sống và sản xuất công nghiệp mang lại hiệu quả kinh tế và nâng cao năng suất lao động. Tại Việt Nam, thị trường nhà thông minh (Smart Home) ghi nhận tốc độ tăng trưởng hàng năm duy trì ở mức hai con số. Trong các giải pháp nhà thông minh, hệ thống chiếu sáng đóng vai trò thiết yếu nhằm giảm thiểu tiêu thụ năng lượng điện và nâng cao tiện nghi sử dụng.

Hệ thống chiếu sáng truyền thống đòi hỏi người dùng phải thao tác cơ học trực tiếp trên các công tắc vật lý, aptomat hoặc cầu dao. Khi quy mô công trình và số lượng thiết bị chiếu sáng tăng lên, phương thức điều khiển thủ công bộc lộ nhiều bất tiện và không tối ưu hóa được thời gian sử dụng điện. Xuất phát từ nhu cầu thực tiễn đó, đồ án môn học "Hệ điều hành nhúng thời gian thực" tập trung nghiên cứu và thiết kế đề tài "Hệ thống đèn cảm ứng thông minh".

Mục tiêu và nhiệm vụ nghiên cứu của đồ án bao gồm:

  1. Nghiên cứu tổng quan về mạng lưới Internet of Things (IoT), các thành phần của hệ thống nhúng và nguyên lý hoạt động của hệ điều hành nhúng thời gian thực (FreeRTOS).
  2. Tìm hiểu, đánh giá các thông số kỹ thuật của linh kiện phần cứng (vi điều khiển Arduino Uno R3, cảm biến chuyển động hồng ngoại HC-SR501, quang trở LDR, module truyền thông WiFi ESP8266 ESP-01) và công cụ phần mềm (Arduino IDE, nền tảng IoT Blynk).
  3. Phân tích yêu cầu chức năng, xây dựng biểu đồ ca sử dụng (Use Case), biểu đồ tuần tự (Sequence Diagram) và sơ đồ thuật toán điều khiển cho toàn bộ hệ thống.
  4. Thiết kế sơ đồ nguyên lý phần cứng, phân chia các tác vụ xử lý trên FreeRTOS và cấu hình giao diện điều khiển trên ứng dụng Blynk.
  5. Chế tạo mô hình thực nghiệm hoàn chỉnh bằng vật liệu gỗ và tiến hành thử nghiệm, đánh giá độ ổn định của các chế độ vận hành.

Đối tượng nghiên cứu của đề tài là hệ thống điều khiển chiếu sáng tự động đa chế độ ứng dụng hệ điều hành thời gian thực. Phạm vi nghiên cứu giới hạn trong việc xây dựng mô hình phần cứng thử nghiệm có kích thước 30 cm, thực hiện tại Khoa Công nghệ Thông tin, Trường Đại học Phương Đông vào năm 2024.


Cơ sở lý thuyết và phương pháp

Khung lý thuyết của đề tài dựa trên ba nền tảng cốt lõi:

  • Khái niệm và đặc tính IoT: Mạng lưới liên kết các thiết bị vật lý thu thập và truyền tải dữ liệu thông qua môi trường mạng không dây. Các đặc tính cơ bản gồm tính kết nối liên thông, tính không đồng nhất, thay đổi linh hoạt, quy mô lớn và khả năng đáp ứng dịch vụ.
  • Cấu trúc hệ thống nhúng: Hệ thống chuyên dụng tích hợp phần cứng và phần mềm, bao gồm bốn khối chính: khối cảm biến thu nhận tín hiệu môi trường, bộ xử lý trung tâm (microcontroller), mạch điều khiển chấp hành (Relay/MOSFET) và khối nguồn cung cấp.
  • Hệ điều hành nhúng thời gian thực FreeRTOS: Hệ điều hành mã nguồn mở do Richard Barry (Real Time Engineers Ltd) phát triển. FreeRTOS tối ưu cho các hệ vi điều khiển có tài nguyên hạn chế nhờ kiến trúc nhỏ gọn, cung cấp cơ chế phân bổ tác vụ (Task scheduling), quản lý bộ nhớ cơ bản và cơ chế đồng bộ hóa hệ thống.
Tiêu chí so sánh Hệ điều hành thông thường (Non-realtime) Hệ điều hành thời gian thực (Realtime)
Hệ điều hành tiêu biểu Windows, Linux, Android, iOS FreeRTOS, VxWorks, QNX
Giao diện tương tác Giao diện đồ họa người dùng phong phú (GUI) Thường nhúng trong vi điều khiển, không có GUI
Mục tiêu đáp ứng Tương tác giữa phần mềm với con người Phản hồi tức thời cho các tác vụ với thiết bị, máy móc
Yêu cầu thời gian Cho phép độ trễ phản hồi nhất định Ràng buộc thời gian nghiêm ngặt, sai số trễ gây lỗi hệ thống
Tài nguyên phần cứng Bộ nhớ và xung nhịp xử lý lớn Tài nguyên RAM và Flash rất hữu hạn

Phương pháp nghiên cứu được triển khai cụ thể:

  • Phương pháp phân tích - tổng hợp kỹ thuật: Khảo sát các tài liệu chuyên ngành về vi điều khiển ATmega328, tập lệnh AT của module WiFi ESP8266, nguyên lý chuyển đổi quang điện của cảm biến CdS và nguyên lý cảm biến nhiệt điện PIR.
  • Phương pháp mô hình hóa hệ thống: Ứng dụng ngôn ngữ UML để thiết lập biểu đồ use case, biểu đồ tuần tự cho từng chức năng và xây dựng lưu đồ thuật toán điều phối luồng xử lý.
  • Phương pháp thiết kế và thực nghiệm kỹ thuật: Thiết kế mạch kết nối phần cứng thực tế, phân chia tác vụ trong FreeRTOS, lập trình firmware trên Arduino IDE, cấu hình bảng điều khiển Blynk và thử nghiệm thực tế trên mô hình gỗ với các kịch bản môi trường khác nhau.

Nguồn dữ liệu của đề tài bao gồm các thông số kỹ thuật do nhà sản xuất linh kiện công bố, tài liệu đặc tả API của nền tảng Blynk và thư viện mã nguồn mở FreeRTOS.


Thiết kế và triển khai

Hệ thống được thiết kế theo kiến trúc module hóa với sơ đồ khối tổng thể gồm 8 thành phần: Khối nguồn (5V DC), Bộ điều khiển trung tâm (Arduino Uno R3), Khối cảm biến ánh sáng (quang trở LDR), Khối cảm biến chuyển động hồng ngoại (HC-SR501), Khối truy cập mạng (ESP8266 ESP-01), Khối công tắc vật lý, Khối hiển thị (màn hình LCD) và Khối chấp hành/Relay (điều khiển hệ thống đèn LED).

Thành phần linh kiện Thông số kỹ thuật chính
Arduino Uno R3 Vi điều khiển ATmega328P (8-bit), 16 MHz, 14 chân Digital I/O (6 chân PWM), 6 chân Analog (10-bit), 32 KB Flash, 2 KB SRAM, 1 KB EEPROM, điện áp hoạt động 5V DC.
Module PIR HC-SR501 Góc quét hình nón 360 độ, khoảng cách phát hiện tối đa 6 m, điện áp 3.8V – 5V DC, dòng tiêu thụ < 50 µA, thời gian trễ và độ nhạy tùy chỉnh bằng biến trở.
Quang trở (LDR CdS) Điện áp tối đa 150V DC, công suất 100 mW, dải nhiệt độ -30°C đến +70°C, đỉnh phổ 560 nm, trở kháng sáng (10 Lux) 5–10 kΩ, trở kháng tối 0.8 MΩ, thời gian đáp ứng 30 ms.
Module ESP8266 ESP-01 Điện áp hoạt động 3.3V DC, dòng tiêu thụ tối đa 320 mA, Wi-Fi 2.4 GHz chuẩn 802.11 b/g/n, giao tiếp UART, hỗ trợ tập lệnh AT Command và giao thức TCP/UDP.

Sơ đồ đấu nối chân phần cứng trên mạch điều khiển Arduino Uno R3:

  • Cảm biến HC-SR501: Chân VCC nối nguồn 5V, chân GND nối mass, chân OUT nối chân tín hiệu số của Arduino.
  • Quang trở LDR: PIN 1 nối nguồn 5V, PIN 2 nối chân Analog A5 và nối mass qua điện trở 10 kΩ.
  • Công tắc điều khiển: Công tắc 1 kết nối nguồn 5V và chân Digital D3 (kèm trở kéo xuống GND); Công tắc 2 kết nối nguồn 5V và chân Digital D4 (kèm trở kéo xuống GND).
  • Module ESP8266 ESP-01: Chân VCC nối nguồn 3.3V riêng biệt (dùng IC nguồn AMS1117-3.3V), chân GND nối mass, chân TX nối RX (D0) của Arduino, chân RX nối TX (D1) của Arduino. Chân CH_PD nối mức 0V khi khởi động và kéo lên 3.3V sau 2 giây để đảm bảo module hoạt động ổn định.
Tên Widget trên Blynk Số lượng Mã PIN ảo (Virtual PIN) Chức năng chi tiết
LCD 1 V10 Hiển thị chế độ hoạt động (Auto/Manual) và trạng thái bật/tắt của đèn
Button 3 V0, V1, V8 V0: Điều khiển chuyển chế độ; V1: Bật/tắt đèn; V8: Bật/tắt chế độ hẹn giờ
LED 1 V2 Hiển thị trạng thái phát hiện chuyển động của cảm biến HC-SR501
Value Display 1 V5 Hiển thị giá trị cường độ ánh sáng đo được từ quang trở
Slider 1 V6 Hiển thị và điều chỉnh giá trị ngưỡng ánh sáng kích hoạt (mặc định 500)
Timer 1 V7 Cài đặt khung thời gian bật và tắt đèn trong chế độ hẹn giờ

Trong mã nguồn firmware, nhóm tác giả ứng dụng hệ điều hành FreeRTOS để cấu hình 3 tác vụ độc lập vận hành với mức ưu tiên ngang hàng:

  • Tác vụ 1: Kiểm soát và chuyển đổi chế độ hoạt động của hệ thống (giữa chế độ Tự động và Thủ công).
  • Tác vụ 2: Quét tín hiệu đầu vào và xử lý sự kiện từ các nút bấm vật lý trên mô hình.
  • Tác vụ 3: Cập nhật trạng thái đèn thực tế, truyền nhận dữ liệu đồng bộ với ứng dụng Blynk và hiển thị trạng thái lên LCD.

Nội dung chính theo từng chương

Chương 1. Tổng quan về IoT và hệ thống đèn cảm ứng thông minh

Chương 1 hệ thống hóa các khái niệm nền tảng về cuộc Cách mạng công nghiệp, định nghĩa mạng lưới IoT, phân tích ưu điểm (tự động hóa, tiết kiệm chi phí, nâng cao chất lượng quản lý) và nhược điểm (nguy cơ bảo mật dữ liệu, thiếu chuẩn tương thích quốc tế đồng nhất). Nội dung tập trung phân tích sự khác biệt cốt lõi giữa hệ thống chiếu sáng cổ điển và hệ thống chiếu sáng thông minh: giải pháp thông minh cho phép tự động phản ứng theo chuyển động và ánh sáng môi trường hoặc điều khiển linh hoạt qua smartphone, loại bỏ thao tác bật/tắt thủ công tại chỗ.

Chương 2. Linh kiện và phần mềm sử dụng

Chương 2 trình bày thông số chi tiết của các linh kiện phần cứng và môi trường phát triển. Vi điều khiển Arduino Uno R3 được lựa chọn nhờ cấu trúc mở, trang bị chip ATmega328P với tần số 16 MHz. Cảm biến thân nhiệt PIR HC-SR501 hoạt động dựa trên cơ chế 2 phần tử nhiệt điện kết hợp lăng kính Fresnel để gom tia hồng ngoại phát ra từ cơ thể người/động vật. Cảm biến quang trở CdS hoạt động dựa trên hiệu ứng quang dẫn trong chất bán dẫn. Module ESP8266 ESP-01 đóng vai trò cầu nối truyền nhận dữ liệu không dây qua giao thức UART. Nền tảng Blynk cung cấp giải pháp máy chủ Cloud và giao diện kéo thả widget. Hệ điều hành FreeRTOS cung cấp giải pháp lập trình đa nhiệm cho hệ thống nhúng.

Chương 3. Phân tích và thiết kế

Chương 3 xây dựng bản thiết kế kỹ thuật hoàn chỉnh:

  • Sơ đồ ca sử dụng (Use Case): Xác định 4 ca sử dụng chính gồm: Điều khiển đèn bằng ứng dụng, Điều khiển đèn bằng công tắc, Điều khiển đèn tự động bằng cảm biến và Thay đổi chế độ.
  • Sơ đồ thuật toán: Xác lập thuật toán điều khiển tổng thể và thuật toán chi tiết cho 3 chế độ. Ở chế độ tự động, hệ thống kiểm tra đồng thời hai điều kiện: chân cảm biến HC-SR501 ở mức HIGH VÀ cường độ ánh sáng đo được từ quang trở nhỏ hơn giá trị ngưỡng cài đặt trên Slider (mặc định 500). Nếu thỏa mãn cả hai điều kiện thì đèn bật, ngược lại đèn tắt.
  • Biểu đồ tuần tự (Sequence Diagram): Mô tả trình tự trao đổi tín hiệu giữa Tác tử (User/Cảm biến/Công tắc), Arduino Uno R3, Module ESP8266 và Thiết bị đèn.
  • Thiết kế phần cứng và giao diện: Lập bảng kết nối chân chi tiết, sơ đồ mạch nguyên lý và bảng gán PIN ảo trên Blynk.

Chương 4. Thực nghiệm

Chương 4 mô tả quá trình chế tạo mô hình phần cứng bằng vật liệu gỗ dạng hộp vuông cạnh 30 cm. Bề mặt phía trên bố trí đèn LED chính (xanh), đèn báo chế độ tự động (đỏ) và 2 nút bấm điều khiển. Bề mặt phía trước gắn mắt cảm biến HC-SR501 và đầu dò quang trở. Nhóm tác giả thực hiện kiểm thử trên mô hình thực tế qua 6 trường hợp kiểm nghiệm chức năng: Chế độ tự động đèn bật, Chế độ tự động đèn tắt, Chế độ thủ công đèn bật, Chế độ thủ công đèn tắt, Điều chỉnh ngưỡng Slider ánh sáng và Chế độ hẹn giờ Timer.


Kết quả và đóng góp

Đề tài đã chế tạo thành công mô hình hệ thống đèn cảm ứng thông minh, kiểm chứng đầy đủ các kịch bản vận hành thực tế:

Kịch bản thực nghiệm Trạng thái cảm biến / Lệnh điều khiển Trạng thái đèn LED chính Đèn báo chế độ (LED đỏ) Phản hồi trên ứng dụng Blynk
Tự động - Bật đèn HC-SR501 = HIGH VÀ Ánh sáng < Ngưỡng Slider BẬT BẬT LCD báo "Auto MODE", "Den bat"; LED V2 sáng; Giá trị V5 hiển thị đúng
Tự động - Tắt đèn HC-SR501 = LOW HOẶC Ánh sáng >= Ngưỡng Slider TẮT BẬT LCD báo "Auto MODE", "Den tat"; Trạng thái cập nhật tức thời
Thủ công - Bật đèn Lệnh bật từ nút bấm cơ học hoặc Button V1 trên Blynk BẬT TẮT LCD báo "Manual MODE", "Den bat"; Nút bấm ứng dụng đổi trạng thái
Thủ công - Tắt đèn Lệnh tắt từ nút bấm cơ học hoặc Button V1 trên Blynk TẮT TẮT LCD báo "Manual MODE", "Den tat"; Nút bấm ứng dụng đổi trạng thái
Đổi ngưỡng Slider Thay đổi giá trị thanh trượt V6 trên Blynk Phản ứng theo ngưỡng mới Giữ nguyên Arduino so sánh giá trị mới từ V6 để quyết định bật/tắt tức thời
Chế độ hẹn giờ Kích hoạt Timer V7 và nút bấm hẹn giờ V8 BẬT/TẮT theo mốc thời gian cài đặt TẮT (về Manual) Hệ thống tạm dừng cảm biến, thực hiện bật/tắt đúng khung giờ

Về mặt đóng góp kỹ thuật, đồ án đã hiện thực hóa giải pháp nhúng kết hợp hệ điều hành thời gian thực FreeRTOS với nền tảng đám mây IoT Blynk trên vi điều khiển 8-bit giá thành thấp. Hệ thống đạt độ ổn định cao trong việc thu thập tín hiệu môi trường, xử lý logic điều khiển và duy trì đồng bộ dữ liệu hai chiều giữa thiết bị phần cứng và giao diện điện thoại di động qua mạng không dây.


Hạn chế và hướng nghiên cứu tiếp

Dựa trên phạm vi và nội dung văn bản báo cáo, đề tài tồn tại một số điểm hạn chế và hướng mở rộng sau:

  • Hạn chế: Hệ thống mới được thử nghiệm ở dạng mô hình tĩnh kích thước 30 cm, sử dụng đèn LED công suất thấp để mô phỏng tải đầu ra thay vì kết nối trực tiếp với mạng điện lưới xoay chiều 220V dân dụng. Các tác vụ FreeRTOS mới triển khai ở mức độ ưu tiên bằng nhau và hoạt động đồng thời, chưa sử dụng cơ chế hàng đợi (Queue) hay các cơ chế đồng bộ phức tạp (Semaphore, Mutex). Module ESP8266 ESP-01 có dòng khởi động lớn nên cần mạch nguồn phụ riêng biệt và yêu cầu tạo độ trễ ở chân CH_PD.
  • Hướng nghiên cứu tiếp: Mở rộng và phát triển hệ thống khi quy mô mở rộng bằng cách bổ sung cơ chế hàng đợi cho các tác vụ FreeRTOS, tích hợp thêm nhiều loại cảm biến và tiến hành thử nghiệm lắp đặt trực tiếp trên hệ thống điện thực tế.

Giá trị tham khảo

Tài liệu đồ án mang lại giá trị tham khảo hữu ích cho sinh viên các ngành Công nghệ thông tin, Kỹ thuật Máy tính, Điện tử Viễn thông và Tự động hóa đang thực hiện các đồ án về Hệ thống nhúng, IoT hoặc môn học Hệ điều hành thời gian thực.

Nội dung đặc biệt có giá trị tham khảo bao gồm: bảng sơ đồ phân bổ chân kết nối giữa Arduino với module ESP8266 ESP-01 và các cảm biến ngoại vi; phương pháp gán và quản lý Virtual PIN trên nền tảng Blynk; cấu trúc lưu đồ thuật toán điều phối đa chế độ (Tự động, Thủ công, Hẹn giờ); và phương pháp tổ chức đa nhiệm trên nền tảng FreeRTOS.


Câu hỏi thường gặp

1. Điều kiện logic để hệ thống tự động bật đèn ở chế độ Auto là gì?
Hệ thống yêu cầu thỏa mãn đồng thời hai điều kiện logic (phép toán AND): Cảm biến thân nhiệt chuyển động PIR HC-SR501 phát hiện có chuyển động (ngõ ra ở mức HIGH) và giá trị cường độ ánh sáng đo được từ quang trở LDR nhỏ hơn giá trị ngưỡng được thiết lập trên thanh trượt Slider của ứng dụng Blynk (mặc định ban đầu là 500).

2. Ba tác vụ (Task) trong hệ điều hành FreeRTOS của hệ thống đảm nhiệm chức năng gì?
Tác vụ 1 dùng để kiểm soát và chuyển đổi chế độ hoạt động của hệ thống (Tự động hoặc Thủ công); Tác vụ 2 dùng để kiểm soát và quét trạng thái các nút bấm vật lý trên mạch; Tác vụ 3 dùng để cập nhật trạng thái hoạt động của đèn và hiển thị thông tin lên mô hình cũng như ứng dụng Blynk. Cả ba tác vụ được thiết lập mức ưu tiên ngang nhau và không sử dụng hàng đợi.

3. Module truyền thông WiFi ESP8266 ESP-01 được kết nối với Arduino Uno R3 như thế nào?
Module kết nối qua chuẩn giao tiếp UART: chân TX của ESP-01 nối chân RX (D0) của Arduino, chân RX nối chân TX (D1) của Arduino. Chân VCC sử dụng nguồn 3.3V riêng biệt (dòng tối đa 320 mA), chân GND nối mass. Chân CH_PD được giữ ở mức 0V khi khởi động và kéo lên mức 3.3V sau 2 giây để đảm bảo module vận hành ổn định.

4. Khi kích hoạt chế độ hẹn giờ (Timer) trên ứng dụng Blynk, hệ thống vận hành theo nguyên lý nào?
Khi người dùng cài đặt khung giờ và kích hoạt nút hẹn giờ (PIN V8), hệ thống sẽ tự động chuyển trạng thái hoạt động về chế độ thủ công (Manual MODE). Tại thời điểm này, các cảm biến môi trường tạm dừng quyền điều khiển đèn. Hệ thống chờ đến mốc thời gian đã đặt để kích hoạt bật đèn và tự động tắt đèn khi hết khoảng thời gian đã hẹn.

5. Mô hình thực nghiệm phần cứng được thiết kế với kích thước và vật liệu gì?
Mô hình thực nghiệm được chế tạo bằng vật liệu gỗ dạng khối hộp vuông có kích thước cạnh là 30 cm. Vật liệu gỗ được nhóm tác giả lựa chọn nhằm đảm bảo các tiêu chí: độ chắc chắn, khả năng chống ẩm mốc/nhiệt độ, thuận tiện khoan lỗ đi dây cố định linh kiện, dễ di chuyển và tiết kiệm chi phí chế tạo.


Kết luận

Đồ án môn học "Hệ điều hành nhúng thời gian thực" của nhóm sinh viên Khoa Công nghệ Thông tin, Trường Đại học Phương Đông đã thiết kế và chế tạo thành công mô hình hệ thống đèn cảm ứng thông minh hoàn chỉnh. Bằng việc tích hợp vi điều khiển Arduino Uno R3, hệ điều hành thời gian thực FreeRTOS, module WiFi ESP8266 ESP-01 và nền tảng Blynk Cloud, hệ thống đáp ứng tốt các yêu cầu điều khiển chiếu sáng tự động theo cảm biến môi trường và điều khiển từ xa qua thiết bị di động. Kết quả thực nghiệm trên mô hình gỗ 30 cm chứng minh khả năng vận hành ổn định, dữ liệu đồng bộ chính xác và mở ra tiềm năng ứng dụng vào các giải pháp nhà thông minh thực tế.