Bối cảnh và vấn đề nghiên cứu
Trong tiến trình phát triển của các cuộc cách mạng công nghiệp từ động cơ hơi nước (1.0), động cơ điện (2.0), công nghệ thông tin và tự động hóa (3.0) đến Cách mạng công nghiệp 4.0 với các trụ cột như Vạn vật kết nối (IoT), Trí tuệ nhân tạo (AI) và Dữ liệu lớn (Big Data), kỹ thuật vi điều khiển và máy tính nhúng ngày càng đóng vai trò trọng yếu trong việc giám sát, điều khiển các quá trình vận hành tự động. Song song với sự gia tăng của cải vật chất trong xã hội, yêu cầu bảo vệ an ninh và giữ gìn tài sản cho các hộ gia đình trở nên cấp thiết. Việc xây dựng các hệ thống an ninh có khả năng tự động phát hiện xâm nhập, kích hoạt cảnh báo tại chỗ và hỗ trợ giám sát từ xa qua các thiết bị thông minh (máy tính, điện thoại di động) là giải pháp thực tiễn đáp ứng nhu cầu này.
Đề tài "Thiết kế và thi công hệ thống chống trộm sử dụng Arduino điều khiển bằng Raspberry Pi" do sinh viên Dương Hoàng Quốc Nhu thực hiện dưới sự hướng dẫn của giảng viên Văn Tấn Lượng (tháng 6 năm 2019) tập trung giải quyết bài toán an ninh dân dụng ở quy mô vừa và nhỏ.
Mục tiêu nghiên cứu được xác định gồm:
- Thiết kế và thi công hoàn thiện một mô hình phần cứng hệ thống chống trộm thực nghiệm.
- Ứng dụng mô hình vào phạm vi bảo vệ an ninh phù hợp cho các căn hộ có quy mô nhỏ và vừa.
- Xây dựng giao diện điều khiển, thu thập dữ liệu và giám sát trạng thái cảnh báo trên nền tảng Node-Red Dashboard, vận hành máy chủ trên máy tính nhúng Raspberry Pi 3 Model B+.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Hệ thống phần cứng vi điều khiển Arduino Uno R3, máy tính nhúng Raspberry Pi 3 Model B+, cảm biến thân nhiệt chuyển động PIR HC-SR501, module relay 1 kênh 5V, còi báo động FM-20B và phần mềm luồng dữ liệu Node-Red.
- Phạm vi không gian: Mô hình thực nghiệm tại phòng thí nghiệm, ứng dụng trong phạm vi mạng cục bộ (Local Area Network - LAN) thông qua kết nối sóng Wi-Fi của căn hộ.
- Phạm vi tính năng: Hệ thống dừng lại ở mức mô hình thí nghiệm cơ bản, phục vụ kiểm chứng giải pháp tích hợp phần cứng và giám sát nội bộ; chưa tích hợp các thuật toán xử lý phức tạp hoặc cảnh báo diện rộng qua Internet ngoài mạng LAN.
Cơ sở lý thuyết và phương pháp
Khung kỹ thuật của đề tài dựa trên sự phối hợp giữa phần cứng nhúng thu thập tín hiệu ngoại vi và nền tảng phần mềm xử lý luồng dữ liệu thời gian thực:
- Lý thuyết cảm biến hồng ngoại thụ động (PIR): Dựa trên nguyên lý mọi vật thể có nhiệt độ (người, động vật) đều phát ra bức xạ hồng ngoại. Cảm biến PIR HC-SR501 sử dụng thấu kính Fresnel để hội tụ tia hồng ngoại lên hai phần tử cảm biến nhiệt gắn bên trong đầu dò, tạo ra điện áp vi sai được khuếch đại qua transistor hiệu ứng trường (FET) và đưa vào mạch so áp để xuất tín hiệu mức logic (0V hoặc 3.3V).
- Kiến trúc máy tính nhúng và vi điều khiển:
- Vi điều khiển ATmega328 (kiến trúc 8-bit AVR) trên bo mạch Arduino Uno R3 chịu trách nhiệm đọc trạng thái chân I/O số (Digital I/O) và điều khiển cơ cấu chấp hành.
- Máy tính nhúng Raspberry Pi 3 Model B+ (vi xử lý Broadcom BCM2837B0, ARM Cortex-A53 64-bit 4 nhân, xung nhịp 1.4 GHz, RAM 1GB) chạy hệ điều hành Linux (Raspbian) đóng vai trò máy chủ trung tâm (Server).
- Giao thức Firmata và nền tảng Node-Red: Ứng dụng giao thức truyền thông StandardFirmata để thiết lập cầu nối điều khiển trực tiếp các chân I/O của Arduino từ máy chủ thông qua cổng giao tiếp nối tiếp (Serial over USB). Nền tảng Node-Red (chạy trên môi trường Node.js) xử lý các khối chức năng (Flow) theo mô hình hướng sự kiện và cung cấp giao diện Dashboard tương tác người dùng.
Phương pháp nghiên cứu thực hiện:
- Phương pháp nghiên cứu tài liệu: Tổng hợp, phân tích tài liệu kỹ thuật về thông số phần cứng Raspberry Pi, sơ đồ chân Arduino Uno R3, nguyên lý hoạt động của cảm biến PIR HC-SR501, cấu trúc lệnh Node-Red và thư viện giao tiếp
node-red-node-arduino.
- Phương pháp thiết kế và thi công thực nghiệm: Lắp ráp mạch phần cứng hoàn chỉnh, nạp firmware, thiết lập cấu hình bảo mật phần mềm, lập trình luồng điều khiển Node-Red và tiến hành kiểm thử khả năng nhận diện, kích hoạt cơ cấu chấp hành (đèn, còi) và hiển thị trên giao diện người dùng.
Thiết kế và triển khai hệ thống
Hệ thống được thiết kế theo cấu trúc module phân tầng rõ ràng từ cảm biến ngõ vào, khối xử lý điều khiển đến khối cơ cấu chấp hành ngõ ra và giao diện giám sát người dùng.
1. Thông số kỹ thuật các linh kiện phần cứng
| Linh kiện |
Thông số kỹ thuật chính từ văn bản |
Chức năng trong hệ thống |
| Raspberry Pi 3 Model B+ |
SoC Broadcom BCM2837B0 quad-core A53 1.4GHz, RAM 1GB LPDDR2, Wi-Fi Dual-band 2.4/5GHz, Bluetooth 4.2 BLE, Gigabit Ethernet over USB 2.0 (tối đa 300Mbps), 40 chân GPIO, nguồn 5V/2.5A microUSB. |
Đóng vai trò máy chủ (Server), chạy Node-Red và phát giao diện Dashboard. |
| Arduino Uno R3 |
Vi điều khiển ATmega328 8-bit, xung nhịp 16MHz, 14 chân Digital I/O (6 chân PWM), 6 chân Analog (10-bit), Flash 32KB, EEPROM 1KB, điện áp hoạt động 5VDC. |
Đọc tín hiệu cảm biến và xuất lệnh điều khiển Relay, còi báo. |
| Cảm biến PIR HC-SR501 |
Điện áp hoạt động 4.5V – 20VDC (hoặc 5 – 12VDC), điện áp ngõ ra 0V – 3.3V, khoảng cách phát hiện 2m – 4.5m (tối đa đến 7m), thời gian trễ điều chỉnh 0.5s – 200s, 2 chế độ kích hoạt (L - không lặp lại, H - lặp lại). |
Phát hiện bức xạ nhiệt từ người chuyển động trong vùng quét. |
| Module Relay 1 kênh 5V |
Điện áp kích 5VDC, dòng tiêu thụ ~80mA, tiếp điểm đóng ngắt tối đa 250VAC/10A hoặc 30VDC/10A, tích hợp cách ly quang (opto), có LED báo nguồn và LED trạng thái. |
Đóng ngắt nguồn 220VAC để bật/tắt bóng đèn báo động. |
| Còi báo động FM-20B |
Điện áp hoạt động 3V – 24VDC, khoảng cách lỗ bắt vít 11mm. |
Phát âm thanh cảnh báo khi có sự cố xâm nhập. |
| Bóng đèn Compact chữ U |
Đuôi chuẩn E27, điện áp đầu vào 170V – 220VAC, ánh sáng trắng. |
Phát tín hiệu ánh sáng cảnh báo. |
| Bộ nguồn USB |
Nguồn vào 100 – 240VAC 50/60Hz, ngõ ra 5VDC/2.5A (thực tế chịu dòng đến 3A). |
Cấp nguồn cho Raspberry Pi 3 Model B+. |
2. Sơ đồ kết nối phần cứng (Địa chỉ chân I/O)
- Kết nối ngõ vào (Input): Chân tín hiệu Output của cảm biến PIR HC-SR501 nối vào chân số 2 (Digital Pin 2) của Arduino Uno R3; chân VCC và GND của cảm biến nối với nguồn 5V và mass GND của Arduino.
- Kết nối ngõ ra (Output):
- Chân điều khiển tín hiệu (IN) của Module Relay 5V nối vào chân số 13 (Digital Pin 13) của Arduino. Tiếp điểm thường mở (NO) của Relay nối vào dây dương bóng đèn, chân chung (COM) nối vào nguồn 220VAC, chân thường đóng (NC) để trống.
- Chân cực dương của Còi báo FM-20B nối vào chân số 12 (Digital Pin 12) của Arduino, cực âm nối GND.
- Kết nối liên khối: Arduino Uno R3 kết nối và nhận nguồn trực tiếp từ Raspberry Pi 3 Model B+ qua cáp USB (nhận dạng qua cổng COM5 hoặc Serial Port tương đương).
3. Cấu hình luồng dữ liệu trên Node-Red
Hệ thống điều khiển được xây dựng qua các khối lệnh (node) trên Node-Red:
- Node Arduino Input: Thiết lập cấu hình kết nối cổng
COM5, kiểu dữ liệu Digital pin with pullup tại chân Pin 2, đặt tên PIR HC-SR501.
- Node Function: Tiếp nhận giá trị
msg.payload từ cảm biến. Đoạn mã JavaScript xử lý logic kiểm tra trạng thái: nếu payload == "0" trả về màu "lime" (an toàn); nếu ngược lại (mức 1) trả về màu "red" (báo động).
- Node Switch (Dashboard): Gán vào nhóm giao diện "HỆ THỐNG CHỐNG TRỘM", tạo 2 công tắc điều khiển trạng thái
ĐÈN BÁO và CÒI BÁO tương ứng mức 1 (On) và 0 (Off).
- Node Gauge (Dashboard): Cấu hình dải đo từ Min = 0 (hiển thị màu xanh lá) đến Max = 1 (hiển thị màu đỏ), đặt tên hiển thị
TRẠNG THÁI CẢM BIẾN.
- Node Template (Dashboard): Xuất mã SVG hiển thị biểu tượng vòng tròn trạng thái đổi màu động theo tín hiệu cảm biến cùng dòng chữ
CÓ TRỘM màu đỏ khi bị kích hoạt; một node Template khác hiển thị thông tin sinh viên thực hiện và giáo viên hướng dẫn trong nhóm "ĐỒ ÁN HỌC PHẦN 2".
- Node Arduino Output: Thiết lập kiểu xuất
Digital ra chân Pin 13 (Relay 5V) và Pin 12 (Còi báo) dựa trên tín hiệu logic từ hệ thống.
Nội dung chính theo từng chương
Chương 1: Tổng quan về đề tài
Chương 1 khái quát tiến trình phát triển của 4 cuộc cách mạng công nghiệp, nhấn mạnh tầm quan trọng của kỹ thuật số, IoT và vi điều khiển trong đời sống hiện đại. Tác giả đặt ra tính cấp thiết của việc bảo vệ tài sản hộ gia đình trước tình trạng trộm cắp, từ đó đề xuất giải pháp ứng dụng Arduino và Raspberry Pi. Chương này xác định rõ ràng 3 mục tiêu cốt lõi của đề tài, phạm vi nghiên cứu (tập trung vào mô hình thực nghiệm quy mô nhỏ và vừa, truyền thông qua mạng Wi-Fi nội bộ) cùng phương pháp nghiên cứu tài liệu kết hợp thiết kế thi công phần cứng.
Chương 2: Giới thiệu linh kiện
Chương 2 trình bày chi tiết thông số kỹ thuật, sơ đồ chân và lưu ý vận hành của các thiết bị phần cứng được lựa chọn:
- Raspberry Pi 3 Model B+: Khảo sát vi xử lý BCM2837B0 64-bit 1.4GHz, các cổng giao tiếp (HDMI, USB, Ethernet, CSI, DSI, 40-pin GPIO) và các hệ điều hành hỗ trợ (Raspbian, OSMC, RetroPie, Ubuntu, Windows 10 IoT). Tác giả đặc biệt lưu ý yêu cầu cấp nguồn ổn định 5V/2.5A trở lên và tính chất không có tầng đệm cách ly của chân GPIO nối thẳng vào CPU.
- Arduino Uno R3: Khảo sát cấu trúc chip ATmega328, bộ nhớ Flash 32KB, EEPROM 1KB, điện áp khuyên dùng 5-12VDC, sơ đồ 14 chân Digital I/O, chức năng chân Serial 0 (RX)/1 (TX), chân PWM, chân SPI (10, 11, 12, 13), chân Analog A0-A5 và giao tiếp I2C trên chân A4 (SDA)/A5 (SCL). Tác giả nêu rõ các cảnh báo an toàn điện: không cấp ngược cực, không cấp áp >5.5V vào chân I/O, không để dòng qua mỗi chân vượt 40mA và tổng dòng vi điều khiển không vượt 200mA.
- Cảm biến chuyển động PIR HC-SR501, Module Relay 1 kênh 5V, Còi báo FM-20B, Bóng đèn chữ U và Nguồn USB 5V 2.5A: Mô tả nguyên lý phân tích nhiệt hồng ngoại qua thấu kính Fresnel, thông số đóng cắt của relay (250VAC/10A), chế độ kích hoạt L/H và các biến trở điều chỉnh độ trễ/khoảng cách của cảm biến.
Chương 3: Phần mềm Node-Red
Chương 3 giới thiệu tổng quan về công cụ lập trình dòng dữ liệu Node-Red xây dựng trên nền Node.js:
- Hướng dẫn chi tiết quy trình cài đặt môi trường thông qua dòng lệnh Node Package Manager (
npm install -g --unsafe-perm node-red, npm i node-red-dashboard, npm install node-red-node-arduino).
- Xây dựng các ví dụ thực hành cơ bản với các khối Input (gửi Payload True/False), Output và quá trình
Deploy kiểm tra dữ liệu debug.
- Thiết lập quy trình bảo mật cho Node-Red: sử dụng công cụ
node-red-admin hash-pw để tạo chuỗi băm mật khẩu (mật khẩu gốc quocnhu sinh mã băm $2b$08$QDyxubbhD2RY8V3zG0w3DOaBN8Ca1PSvse2xOc87vdGmBVxWhxrDO), cấu hình quyền quản trị viên adminAuth trong tệp settings.js với tên đăng nhập duonghoangquocnhu.
- Phương pháp xác định địa chỉ IP cục bộ (sử dụng lệnh
ipconfig) để cho phép các thiết bị di động (hệ điều hành Android và iOS) cùng mạng Wi-Fi truy cập bảng điều khiển qua cổng 1880 tại đường dẫn http://<IP_Local>:1880/ui.
Chương 4: Thiết kế và thi công hệ thống chống trộm
Chương 4 mô tả toàn bộ quy trình tích hợp hệ thống từ sơ đồ công nghệ, yêu cầu thuật toán, sơ đồ khối đến quá trình lập trình và vận hành:
- Quy trình vận hành logic: Khi PIR HC-SR501 ở mức 0 (không có người), Relay không kích, đèn tắt, còi tắt; khi cảm biến phát hiện thân nhiệt chuyển động lên mức 1, Relay lập tức kích đóng tiếp điểm, đèn sáng và còi phát tín hiệu báo động.
- Sơ đồ khối và chức năng: Chi tiết hóa hoạt động của 4 khối (Khối nguồn, Khối xử lý Raspberry Pi & Arduino, Khối ngõ vào PIR, Khối ngõ ra Relay/Đèn/Còi).
- Lập trình giao tiếp: Hướng dẫn nạp mã
StandardFirmata trên môi trường Arduino IDE để Arduino nhận lệnh điều khiển từ Node-Red qua cáp USB.
- Thiết lập luồng Node-Red: Kết nối logic các node Arduino Input (Pin 2), Switch, Function, Gauge, Template SVG và Arduino Output (Pin 12, Pin 13).
- Kết quả hiển thị: Ghi nhận giao diện Dashboard trên máy tính và điện thoại thông minh ở 2 trạng thái "Không có trộm" (vòng tròn màu xanh lá) và "Có trộm" (vòng tròn màu đỏ kèm nhãn văn bản cảnh báo).
Kết quả và đóng góp
1. Kết quả kỹ thuật đạt được
- Thi công hoàn chỉnh mô hình phần cứng tích hợp giữa máy tính nhúng Raspberry Pi 3 Model B+ và vi điều khiển Arduino Uno R3.
- Thiết lập thành công kênh truyền thông nối tiếp thông qua thư viện giao thức StandardFirmata, giúp máy chủ Node-Red đọc trực tiếp trạng thái cảm biến PIR HC-SR501 tại chân Pin 2 và phát xung điều khiển chân Pin 12 (còi) và Pin 13 (relay).
- Xây dựng giao diện điều khiển, giám sát Node-Red Dashboard trực quan với các chỉ báo đồng hồ đo (Gauge), nút gạt thủ công (Switch) và biểu đồ trạng thái SVG (Template) đổi màu theo thời gian thực.
- Triển khai thành công tính năng truy cập không dây đa nền tảng: giám sát ổn định trên cả máy tính để bàn và thiết bị di động chạy hệ điều hành Android / iOS thông qua mạng Wi-Fi nội bộ tại địa chỉ IP cục bộ cổng
1880/ui.
- Thiết lập cơ chế xác thực người dùng bằng thuật toán băm mật khẩu
adminAuth trong settings.js, ngăn chặn truy cập trái phép vào luồng lập trình Node-Red.
2. Đóng góp của đề tài
- Đề tài cung cấp một tài liệu hướng dẫn thực hành hoàn chỉnh về việc kết hợp nền tảng phần mềm mã nguồn mở Node-Red với phần cứng máy tính nhúng và vi điều khiển phổ biến trong các ứng dụng IoT dân dụng.
- Đưa ra giải pháp xây dựng hệ thống an ninh có chi phí thấp, linh kiện dễ tìm kiếm, quy trình cài đặt và cấu hình rõ ràng, phù hợp làm mô hình học tập cho sinh viên khối kỹ thuật.
Hạn chế và hướng nghiên cứu tiếp
1. Hạn chế
- Hệ thống chỉ vận hành trong phạm vi mạng cục bộ (LAN) qua kết nối Wi-Fi, do đó khoảng cách giám sát bị giới hạn trong vùng phủ sóng của router gia đình, chưa thể theo dõi từ xa qua mạng diện rộng (Internet bên ngoài).
- Mô hình mang tính chất thí nghiệm và học phần cơ bản, các tính năng chống trộm dừng lại ở mức phản hồi đơn giản (bật đèn, hú còi tại chỗ), chưa có các cảm biến bổ trợ (như cảm biến cửa từ, cảm biến hàng rào hồng ngoại, cảm biến rung) để giảm thiểu cảnh báo giả.
- Chưa tích hợp module truyền thông di động (GSM/GPRS) để thực hiện cuộc gọi khẩn cấp hoặc gửi tin nhắn SMS khi mất kết nối mạng Wi-Fi.
2. Hướng nghiên cứu tiếp
- Mở rộng phạm vi điều khiển và giám sát hệ thống ra ngoài Internet bằng các giải pháp kết nối từ xa hoặc dịch vụ Cloud.
- Tích hợp thêm camera nhận diện hình ảnh thông qua cổng CSI của Raspberry Pi để chụp ảnh, ghi hình và truyền phát trực tiếp khi có cảnh báo xâm nhập.
- Bổ sung nhiều vùng cảm biến (Zone), tích hợp thêm các thiết bị ngoại vi và nâng cấp kịch bản xử lý thông minh cho toàn bộ ngôi nhà.
Giá trị tham khảo
Đồ án là tài liệu tham khảo hữu ích cho các nhóm đối tượng sau:
- Sinh viên ngành Kỹ thuật Điện - Điện tử, Kỹ thuật Điều khiển và Tự động hóa, Cơ điện tử, Công nghệ thông tin: Phù hợp làm tài liệu nghiên cứu đồ án môn học, đồ án chuyên ngành IoT hoặc thực hành lập trình nhúng cơ bản.
- Người tự học và cộng đồng chế tạo (Maker/DIY): Tham khảo hướng dẫn từng bước cấu hình Node-Red trên Raspberry Pi, cách liên kết Arduino qua StandardFirmata và thiết kế giao diện Dashboard điều khiển thiết bị điện 220VAC qua Relay.
Các nội dung có giá trị tham khảo cao nhất trong văn bản:
- Quy trình cấu hình bảo mật mật khẩu
hash-pw và phân quyền người dùng trong tệp settings.js của Node-Red (Trang 33–34).
- Phương pháp liên kết phần cứng Arduino vào luồng xử lý Node-Red qua cổng COM và gói
node-red-node-arduino (Trang 33, 40–49).
- Hướng dẫn viết mã xử lý điều kiện trạng thái (Node Function) và mã giao diện động SVG (Node Template) trên Node-Red Dashboard (Trang 45–48).
Câu hỏi thường gặp
1. Giao thức nào được sử dụng để Node-Red trên Raspberry Pi giao tiếp và điều khiển Arduino Uno R3?
Hệ thống sử dụng giao thức StandardFirmata. Mã nguồn StandardFirmata (có sẵn trong mục Examples của phần mềm Arduino IDE) được nạp trực tiếp vào bo mạch Arduino Uno R3. Thông qua gói thư viện node-red-node-arduino, Node-Red giao tiếp với Arduino qua cáp kết nối cổng USB (nhận dạng qua cổng COM) để đọc/xuất tín hiệu các chân I/O.
2. Cảm biến PIR HC-SR501 và các cơ cấu chấp hành được đấu nối vào những chân nào trên bo mạch Arduino?
Theo sơ đồ khai báo của đồ án:
- Cảm biến PIR HC-SR501 kết nối vào chân ngõ vào số 2 (Digital Pin 2).
- Module Relay 1 kênh 5V (điều khiển bóng đèn 220VAC) kết nối vào chân ngõ ra số 13 (Digital Pin 13).
- Còi báo động FM-20B kết nối vào chân ngõ ra số 12 (Digital Pin 12).
3. Làm thế nào để người dùng truy cập vào giao diện giám sát Dashboard từ điện thoại thông minh?
Người dùng sử dụng trình duyệt web (Google Chrome) trên điện thoại Android hoặc iOS (kết nối chung mạng Wi-Fi với Raspberry Pi), sau đó truy cập vào địa chỉ IP nội bộ của Raspberry Pi (xác định qua lệnh ipconfig) tại cổng 1880 với đường dẫn giao diện: http://<Địa_chỉ_IP_Local>:1880/ui.
4. Node Function và Node Template trong luồng Node-Red thực hiện nhiệm vụ gì khi có trộm?
Khi cảm biến PIR phát hiện có người và gửi tín hiệu mức 1:
- Node Function nhận
msg.payload == "1" và gán mã màu msg = { payload: "red" }.
- Node Template tiếp nhận biến màu sắc để hiển thị một vòng tròn SVG màu đỏ trên Dashboard kèm dòng chữ cảnh báo in hoa
CÓ TRỘM màu đỏ. Ngược lại, khi không có người (mức 0), vòng tròn hiển thị màu xanh lá (lime).
Kết luận
Đồ án "Thiết kế và thi công hệ thống chống trộm sử dụng Arduino điều khiển bằng Raspberry Pi" của sinh viên Dương Hoàng Quốc Nhu đã hoàn thành việc xây dựng một mô hình an ninh thực nghiệm hoàn chỉnh, kết hợp hiệu quả giữa vi điều khiển ATmega328 và máy tính nhúng Raspberry Pi 3 Model B+. Hệ thống vận hành ổn định trên nền tảng phần mềm mã nguồn mở Node-Red, cho phép tự động kích hoạt chuông đèn cảnh báo khi phát hiện xâm nhập và trực quan hóa dữ liệu qua giao diện Dashboard trên thiết bị di động trong mạng nội bộ. Mặc dù còn hạn chế về cự ly kết nối do phụ thuộc vào sóng Wi-Fi cục bộ, đồ án đã cung cấp một quy trình kỹ thuật rõ ràng, có giá trị ứng dụng và tham khảo thực tiễn cao cho các nghiên cứu, học phần liên quan đến Internet vạn vật (IoT).