Bối cảnh và vấn đề nghiên cứu
Bối cảnh thực tiễn và lý do chọn đề tài
Cuộc Cách mạng Công nghiệp 4.0 thúc đẩy sự phát triển mạnh mẽ của các công nghệ điều khiển thông minh và mạng lưới vạn vật kết nối Internet (IoT). Trong lĩnh vực dân dụng, các hệ thống tự động hóa và điều khiển thiết bị điện trong nhà (Smart Home) ngày càng trở nên phổ biến. Tuy nhiên, rào cản lớn nhất đối với việc tiếp cận công nghệ này tại Việt Nam là chi phí triển khai:
- Các hệ thống nhà thông minh nhập khẩu hoàn chỉnh từ Âu – Mỹ cho một căn biệt thự diện tích khoảng 300 $m^2$ (quy mô 1 trệt, 1 lầu) có giá thành dao động từ 1 tỷ đến 2 tỷ đồng.
- Các gói giải pháp do doanh nghiệp trong nước cung cấp cho căn hộ chung cư, nhà phố hoặc biệt thự sân vườn có chi phí từ 30 triệu đến 150 triệu đồng.
Trước thực tế đó, nhu cầu đặt ra là nghiên cứu, thiết kế một mô hình điều khiển thiết bị điện và giám sát an ninh ngôi nhà có chi phí thấp, vận hành ổn định, cho phép người dùng giám sát và điều khiển từ xa thông qua mạng Internet, WiFi, 3G/4G trên ứng dụng di động Android và giao diện Website, đồng thời duy trì khả năng cảnh báo sự cố ngay cả khi mất nguồn điện lưới 220VAC.
Mục tiêu và nhiệm vụ nghiên cứu
Mục tiêu tổng quát của đồ án là thiết kế và thi công hoàn chỉnh mô hình hệ thống điều khiển thiết bị điện và giám sát thông số môi trường, an ninh ngôi nhà. Các nhiệm vụ nghiên cứu cụ thể được xác định bao gồm:
- Nghiên cứu nhu cầu thực tiễn và cơ sở lý thuyết về công nghệ IoT, mạng không dây WiFi, mạng viễn thông GSM/SMS và hệ điều hành Android.
- Tìm hiểu thông số kỹ thuật, cấu trúc phần cứng của vi điều khiển Arduino Mega 2560, mô-đun WiFi ESP8266 NodeMCU, mô-đun SIM900A và các loại cảm biến (nhiệt độ - độ ẩm DHT11, khí gas MQ2, chuyển động hồng ngoại PIR HC-SR501).
- Tính toán, thiết kế sơ đồ khối, sơ đồ nguyên lý cho khối điều khiển trung tâm, khối cảm biến, khối kích công suất Relay cách ly quang, khối hiển thị LCD và khối nguồn tự động chuyển đổi ắc quy dự phòng.
- Thiết kế cơ sở dữ liệu và xây dựng Website điều khiển bằng ngôn ngữ PHP lưu trữ trên Webserver.
- Lập trình ứng dụng điều khiển trên thiết bị di động chạy hệ điều hành Android bằng môi trường Android Studio.
- Lập trình nhúng điều khiển xử lý tín hiệu cảm biến, thuật toán gửi tin nhắn SMS, còi báo động và giao tiếp truyền dữ liệu UART giữa Arduino Mega 2560 và ESP8266 NodeMCU.
- Thi công mạch in (PCB), lắp ráp phần cứng, gia công mô hình nhà, tiến hành thử nghiệm, hiệu chỉnh và đánh giá hoạt động toàn hệ thống.
Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu: Hệ thống nhúng điều khiển giám sát nhà thông minh tích hợp cảm biến môi trường, cảnh báo an ninh GSM và giao tiếp mạng không dây đa nền tảng.
- Phạm vi phần cứng: Điều khiển đóng/ngắt 4 thiết bị điện là bóng đèn 220VAC công suất 5W.
- Phạm vi cảm biến: Khoảng cách phát hiện chuyển động của cảm biến PIR HC-SR501 hiệu chỉnh tối đa trong phạm vi 5m; dải đo nhiệt độ phòng từ 25°C đến 45°C sử dụng cảm biến DHT11; phát hiện rò rỉ khí gas bằng cảm biến MQ2.
- Giới hạn hệ thống: Đồ án không tập trung phát triển các thuật toán bảo mật nâng cao cho hệ thống mạng và Webserver.
- Thời gian thực hiện: Từ ngày 20/03/2018 đến ngày 15/07/2018.
Cơ sở lý thuyết và phương pháp
Khung lý thuyết và công nghệ sử dụng
Đề tài tích hợp các nền tảng lý thuyết và công nghệ kỹ thuật điện tử, viễn thông và công nghệ thông tin:
- Khái niệm Internet of Things (IoT): Mạng lưới kết nối các thiết bị thông qua định danh riêng biệt (địa chỉ IP) để truyền tải, thu thập và trao đổi dữ liệu qua mạng không dây.
- Chuẩn mạng không dây WiFi (IEEE 802.11 b/g/n): Hoạt động ở dải tần 2.4 GHz, hỗ trợ truyền nhận dữ liệu giữa mô-đun nhúng và mạng Internet cục bộ.
- Giao thức truyền thông HTTP và phương thức GET: Phương thức truyền nhận dữ liệu giữa máy khách (NodeMCU/Android) và máy chủ Web thông qua các tham số đính kèm trên URL để cập nhật trạng thái thiết bị và chỉ số môi trường.
- Chuẩn truyền thông nối tiếp bất đồng bộ (UART): Truyền nhận dữ liệu song công giữa Arduino Mega 2560 và các mô-đun ngoại vi (ESP8266 NodeMCU, SIM900A) thông qua các khung truyền định sẵn (Start bit, Data bits, Parity, Stop bit).
- Dịch vụ tin nhắn ngắn (SMS) trên nền tảng GSM: Truyền phát bản tin văn bản tối đa 160 ký tự qua hạ tầng mạng viễn thông tới số điện thoại người dùng.
Phương pháp nghiên cứu
Đồ án áp dụng phương pháp thiết kế kỹ thuật kết hợp thực nghiệm:
- Phương pháp phân tích - tổng hợp: Nghiên cứu tài liệu kỹ thuật (datasheet), thông số mạch điện, đặc tuyến linh kiện để lựa chọn linh kiện phù hợp với yêu cầu kinh tế và kỹ thuật.
- Phương pháp tính toán và thiết kế mạch điện tử: Tính toán các giá trị điện trở phân cực, dòng kích bão hòa cho transistor điều khiển relay, tính toán điện trở phân áp nhận biết mất nguồn lưới và mạch bảo vệ opto cách ly.
- Phương pháp lập trình hệ thống: Lập trình nhúng vi điều khiển trên Arduino IDE (C/C++), lập trình kịch bản máy chủ bằng PHP và lập trình ứng dụng di động trên nền tảng Android SDK bằng ngôn ngữ Java/XML.
- Phương pháp thực nghiệm kiểm chứng: Đo đạc tín hiệu điện áp trên mạch thực tế, kiểm thử thời gian đáp ứng khi đóng ngắt thiết bị qua Web/App, thử nghiệm kích hoạt các kịch bản báo động trộm, rò rỉ gas, nhiệt độ cao và ngắt nguồn điện chính.
Dữ liệu và tài liệu kỹ thuật tham khảo
Các dữ liệu kỹ thuật sử dụng trong nghiên cứu được trích xuất trực tiếp từ datasheet của nhà sản xuất linh kiện và các tài liệu chuyên ngành:
- Datasheet vi điều khiển ATmega2560 (Atmel/Microchip).
- Datasheet mô-đun WiFi ESP8266EX và NodeMCU (Espressif Systems, 2015).
- Tài liệu kỹ thuật cảm biến DHT11, MQ2, HC-SR501, mô-đun SIM900A, Opto PC817.
- Đồ án tốt nghiệp "Thiết kế và xây dựng hệ thống mô hình nhà thông minh" (Nguyễn Văn Lem, ĐH SPKT TP.HCM).
- Giáo trình "Lập trình Android cơ bản" (Nguyễn Văn Hiệp – Đinh Quang Hiệp, 2014, ĐH SPKT TP.HCM).
Thiết kế và triển khai hệ thống
Kiến trúc sơ đồ khối hệ thống
Hệ thống được tổ chức thành 8 khối chức năng chính xoay quanh khối xử lý trung tâm:
| Khối chức năng |
Linh kiện / Công nghệ chính |
Chức năng kỹ thuật trong hệ thống |
| Xử lý trung tâm |
Arduino Mega 2560 |
Thu thập tín hiệu cảm biến, xử lý ngắt, điều khiển hiển thị LCD, điều khiển còi chip và truyền nhận dữ liệu UART với SIM900A và NodeMCU. |
| Truyền thông WiFi |
ESP8266 NodeMCU |
Kết nối mạng WiFi, gửi yêu cầu HTTP GET lên Webserver để cập nhật nhiệt độ - độ ẩm và nhận lệnh đóng/ngắt điều khiển 4 relay. |
| Cảnh báo GSM |
SIM900A |
Nhận tập lệnh AT từ Arduino qua UART để gửi tin nhắn SMS cảnh báo (cháy, rò rỉ gas, trộm, mất điện) và nhận tin nhắn điều khiển bật/tắt chế độ an ninh. |
| Cảm biến môi trường |
DHT11, MQ2, PIR HC-SR501 |
Thu thập nhiệt độ - độ ẩm (giao tiếp 1-wire), nồng độ khí gas dễ cháy (tín hiệu analog/digital) và phát hiện bức xạ hồng ngoại chuyển động. |
| Công suất Relay |
4 Relay 5VDC, Opto PC817 |
Đóng/ngắt nguồn 220VAC cho 4 bóng đèn 5W; cách ly quang bảo vệ vi điều khiển chống xung nhiễu từ tải. |
| Hiển thị & Cảnh báo tại chỗ |
LCD 16x2, Buzzer, LED |
Hiển thị thông số môi trường, trạng thái 4 đèn; phát âm thanh cảnh báo khi có sự cố; LED báo trạng thái kích hoạt chống trộm. |
| Giao diện Web & App |
PHP/Webserver, Android Studio |
Cung cấp giao diện bảng điều khiển từ xa, hiển thị thông số thời gian thực và cho phép người dùng thao tác bật/tắt thiết bị. |
| Nguồn & Dự phòng |
LM7805, Ắc quy 6V, Relay nguồn |
Chỉnh lưu hạ áp 5VDC cấp hệ thống; tự động chuyển mạch sang ắc quy khi mất điện 220VAC; mạch phân áp phát hiện trạng thái lưới điện. |
Tính toán và thiết kế phần cứng
1. Mạch kích Relay cách ly quang
Để đảm bảo an toàn cho vi điều khiển khi đóng ngắt tải điện xoay chiều 220VAC, mạch sử dụng Opto PC817 kết hợp transistor điều khiển cuộn hút relay ($R_{\text{Relay}} = 69,\Omega$):
- Dòng kích bão hòa của cuộn hút Relay: $I_C = \frac{V_{CC}}{R_{\text{Relay}}} = \frac{5}{69} \approx 72.46\text{ mA}$. Với hệ số khuếch đại $\beta \approx 69.56$, dòng phân cực cực gốc yêu cầu $I_B \ge 1.03\text{ mA}$. Thiết kế chọn $I_B = 5\text{ mA}$ để transistor dẫn bão hòa hoàn toàn.
- Tính toán điện trở $R_1$ cho LED phát quang trong Opto PC817 với điện áp rơi $V_{\text{LED}} = 2\text{V}$, dòng phân cực $I_F$ từ $5\text{ mA}$ đến $15\text{ mA}$:
- Khi $I_F = 5\text{ mA}$: $R_1 = \frac{V_{CC} - V_{\text{LED}}}{I_F} = \frac{5\text{V} - 2\text{V}}{5\text{ mA}} = 600,\Omega$.
- Khi $I_F = 15\text{ mA}$: $R_1 = \frac{V_{CC} - V_{\text{LED}}}{I_F} = \frac{5\text{V} - 2\text{V}}{15\text{ mA}} = 200,\Omega$.
- Giá trị điện trở lựa chọn chuẩn: $R_1 = 220,\Omega$.
- Sử dụng diode 1N4003 mắc ngược song song với cuộn dây relay để dập xung điện áp cảm ứng ngược sinh ra khi ngắt dòng điện.
2. Mạch nguồn và mạch tự động chuyển đổi dự phòng
- Nguồn cấp chính sử dụng Adapter biến đổi nguồn lưới thành 6VDC.
- Cơ chế chuyển mạch: Khi có nguồn 6VDC từ Adapter, relay nguồn đóng tiếp điểm 1 nối với 3 cấp vào IC ổn áp LM7805 để tạo nguồn 5VDC chuẩn cho toàn hệ thống. Khi mất điện lưới, relay nguồn ngắt, tiếp điểm 1 tự động chuyển sang tiếp xúc với tiếp điểm 2, nối nguồn từ ắc quy dự phòng 6VDC vào mạch.
- Mạch phân áp nhận biết mất nguồn lưới: Sử dụng 2 điện trở $R_1 = 470,\Omega$ và $R_2 = 220,\Omega$ trích áp từ nguồn Adapter đưa vào chân số 22 của Arduino Mega 2560:
$$V_{\text{out}} = V_1 \times \frac{R_1}{R_1 + R_2} = 6\text{V} \times \frac{470}{220 + 470} \approx 4.08\text{ V}$$
Mức điện áp $4.08\text{V}$ tương ứng mức logic 1 đối với Arduino. Khi mất điện lưới, $V_{\text{out}} = 0\text{V}$ (mức logic 0). Vi điều khiển so sánh giá trị đọc được với trạng thái lưu trong EEPROM để kích hoạt gửi tin nhắn SMS cảnh báo cúp điện hoặc có điện trở lại.
Thiết kế phần mềm và cấu trúc luồng dữ liệu
- Hệ thống Webserver (PHP): Được triển khai trên hosting miễn phí, bao gồm các tệp chức năng:
index.php: Giao diện bảng điều khiển chứa các nút bấm (ON0 - OFF0 đến ON3 - OFF3) và nhãn hiển thị nhiệt độ, độ ẩm, trạng thái đèn.
load.php: Tiếp nhận dữ liệu nhiệt độ, độ ẩm từ NodeMCU gửi lên bằng phương thức GET để ghi vào tệp dữ liệu ND.php; đồng thời đọc trạng thái điều khiển từ các tệp den.php để phản hồi về NodeMCU.
den.php và TT.php: Lưu trữ và truy xuất trạng thái logic của 4 bóng đèn.
dkden.php: Xử lý các yêu cầu thay đổi trạng thái đèn nhận từ ứng dụng Android.
- Ứng dụng di động Android: Xây dựng giao diện với 8 nút điều khiển bật/tắt cho 4 đèn và các trường văn bản hiển thị chỉ số cảm biến. Ứng dụng kết nối trực tiếp đến các tệp
ND.php, TT.php và dkden.php trên Webserver qua mạng Internet/3G/4G.
- Phần mềm nhúng (Firmware):
- Arduino Mega 2560 thực hiện vòng lặp quét liên tục các chân tín hiệu analog và digital, phục vụ ngắt ngoài cho 2 nút nhấn (bật/tắt chế độ chống trộm tại chân 3 và reset còi báo tại chân 20), điều khiển màn hình LCD (chân 32–37), truyền chuỗi ký tự chứa thông số nhiệt - ẩm sang NodeMCU qua cổng Serial 0.
- ESP8266 NodeMCU thực hiện kết nối WiFi (báo trạng thái qua LED chân D0), định kỳ gửi chuỗi dữ liệu nhận được lên
load.php qua HTTP GET và nhận chuỗi phản hồi để xuất tín hiệu kích relay tại các chân D2, D5, D6, D7.
Nội dung chính theo từng chương
Chương 1: Tổng Quan
- Trình bày tính cấp thiết của đề tài trong bối cảnh Cách mạng Công nghiệp 4.0; phân tích thực trạng giá thành các gói Smart Home ngoại nhập (1–2 tỷ đồng) và trong nước (30–150 triệu đồng).
- Xác định mục tiêu thiết kế mô hình hệ thống điều khiển 4 bóng đèn 220VAC 5W và giám sát ngôi nhà qua Web, App Android, mạng WiFi và tin nhắn GSM.
- Định rõ các giới hạn kỹ thuật: khoảng cách phát hiện trộm $\le 5\text{m}$, không xây dựng tầng bảo mật mạng chuyên sâu, phân chia bố cục đồ án thành 6 chương.
Chương 2: Cơ Sở Lý Thuyết
- Trình bày tổng quan về mạng lưới IoT, ứng dụng và đặc điểm nhận dạng thiết bị qua địa chỉ IP; giới thiệu chuẩn mạng không dây WiFi 802.11 trên dải tần 2.4 GHz.
- Giới thiệu mô hình hoạt động của Website, Webserver, ngôn ngữ kịch bản máy chủ PHP và phương thức truyền tham số HTTP GET qua biến toàn cục
$_GET.
- Tổng quan về giao thức tin nhắn SMS trên mạng di động GSM; giới thiệu hệ điều hành Android và môi trường phát triển ứng dụng.
- Khảo sát thông số kỹ thuật chi tiết của các phần cứng:
- Board vi điều khiển Arduino Mega 2560 (chip ATmega2560, bộ nhớ 256KB Flash, 8KB SRAM, 4KB EEPROM, 16MHz, 54 chân digital, 16 chân analog).
- Cảm biến DHT11 (đo nhiệt độ 0–50°C sai số $\pm 2^\circ\text{C}$, độ ẩm 20–90%RH sai số $\pm 5%\text{RH}$).
- Cảm biến khí gas MQ2 (chất nhạy cảm $SnO_2$, thời gian đáp ứng $\le 10\text{s}$, thời gian phục hồi $\le 30\text{s}$, dòng đốt $\le 180\text{mA}$).
- Cảm biến chuyển động hồng ngoại thụ động PIR HC-SR501 (góc quét 120°, tầm xa 7m, điện áp ra 3.3V/0V, dòng nghỉ $<50\mu\text{A}$, thời gian trễ 5–200s).
- Mô-đun WiFi ESP8266 NodeMCU (SoC ESP8266EX, bộ nhớ Flash 4MB, hỗ trợ chuẩn WPA/WPA2).
- Mô-đun SIM900A, màn hình LCD 16x2, Opto cách ly PC817 và chuẩn giao tiếp nối tiếp UART.
Chương 3: Tính Toán Và Thiết Kế
- Xây dựng sơ đồ khối tổng thể của hệ thống gồm 8 khối chức năng.
- Thiết lập sơ đồ nguyên lý kết nối chi tiết giữa Arduino Mega 2560 với NodeMCU, SIM900A, LCD 16x2, các nút nhấn ngắt ngoài và hệ thống cảm biến.
- Thực hiện tính toán thiết kế mạch kích Relay: tính chọn dòng phân cực bão hòa cho transistor ($I_B = 5\text{mA}$), tính chọn dải điện trở cho Opto PC817 ($200,\Omega < R_1 < 600,\Omega$, chọn $R_1 = 220,\Omega$), sử dụng diode 1N4003 bảo vệ.
- Thiết kế mạch nguồn và mạch phân áp nhận biết mất điện lưới 220VAC ($R_1 = 470,\Omega, R_2 = 220,\Omega$, điện áp phân áp $4.08\text{V}$), cơ chế tự động chuyển nguồn sang ắc quy 6V bằng relay nguồn.
- Thiết kế kiến trúc máy chủ Web với các tệp PHP (
index.php, load.php, den.php, TT.php, ND.php, dkden.php) và sơ đồ hoạt động trao đổi dữ liệu của ứng dụng Android.
Chương 4: Thi Công Hệ Thống
- Thiết kế và gia công mạch in PCB 2 lớp (lớp trên và lớp dưới), thiết lập sơ đồ bố trí linh kiện, tiến hành hàn lắp ráp board mạch điều khiển trung tâm hoàn chỉnh.
- Lắp ráp phần cứng vào mô hình nhà vật lý: bố trí cảm biến PIR tại cửa ra vào, cảm biến MQ2 tại khu vực bếp, cảm biến DHT11 và màn hình LCD tại phòng khách, 4 bóng đèn tại các vị trí phòng.
- Xây dựng lưu đồ thuật toán và viết mã nguồn:
- Lưu đồ chương trình chính cho Arduino Mega 2560.
- Lưu đồ chương trình con xử lý mất điện lưới và gửi tin nhắn cảnh báo.
- Lưu đồ chương trình con nhận trạng thái điều khiển đèn từ NodeMCU và cập nhật màn hình LCD.
- Lưu đồ xử lý tin nhắn đến và gửi tin nhắn phản hồi qua mô-đun SIM900A.
- Lưu đồ chương trình nhúng cho ESP8266 NodeMCU kết nối WiFi và gửi yêu cầu HTTP GET.
- Lập trình ứng dụng Android bằng Android Studio (cấu hình các tệp
MainActivity.java và giao diện activity_main.xml).
- Lập trình hệ thống kịch bản PHP trên máy chủ.
- Biên soạn tài liệu hướng dẫn vận hành hệ thống cho người sử dụng.
Chương 5: Kết Quả, Nhận Xét, Đánh Giá
- Trình bày hình ảnh thực tế của board mạch điều khiển chính, mô hình nhà hoàn thiện và các giao diện điều khiển (LCD 16x2, Website, App Android).
- Ghi nhận kết quả thử nghiệm thực tế các tính năng:
- Điều khiển bật/tắt độc lập và đồng bộ 4 bóng đèn 220VAC 5W từ giao diện Web và App Android.
- Dữ liệu nhiệt độ, độ ẩm được cập nhật liên tục lên LCD và giao diện người dùng.
- Hệ thống phát hiện chuyển động tại cửa ra vào, kích hoạt còi buzzer và gửi tin nhắn SMS cảnh báo trộm đến số điện thoại cài đặt.
- Hệ thống phát hiện rò rỉ khí gas tại bếp, kích hoạt còi và gửi tin nhắn SMS cảnh báo rò rỉ khí gas.
- Hệ thống tự động chuyển đổi sang nguồn ắc quy khi cúp điện 220VAC, gửi tin nhắn SMS thông báo mất điện; khi có điện trở lại, hệ thống gửi tin nhắn SMS thông báo có điện và chuyển lại nguồn chính.
- Nhận xét về độ ổn định, tốc độ đáp ứng của hệ thống và đánh giá mức độ hoàn thành so với mục tiêu đề ra.
Chương 6: Kết Luận và Hướng Phát Triển
- Tổng kết các kết quả kỹ thuật đã đạt được trong quá trình nghiên cứu và thi công đồ án.
- Đánh giá các điểm hạn chế về phần cứng, thuật toán và bảo mật.
- Đề xuất các hướng phát triển nâng cao cho hệ thống trong tương lai.
Kết quả và đóng góp
Kết quả thực nghiệm cụ thể
Hệ thống được thi công hoàn chỉnh dưới dạng mô hình thực nghiệm và đạt được các chỉ tiêu kỹ thuật:
- Khả năng điều khiển thiết bị: Đóng/ngắt thành công 4 bóng đèn 220VAC 5W thông qua giao diện Website và ứng dụng di động Android khi có kết nối Internet (WiFi/3G/4G).
- Khả năng thu thập và giám sát môi trường: Đo đạc và hiển thị trực quan giá trị nhiệt độ, độ ẩm phòng lên màn hình LCD 16x2, đồng thời đồng bộ dữ liệu lên Website và ứng dụng Android.
- Cảnh báo an ninh và an toàn:
- Khi cảm biến PIR phát hiện có người đột nhập tại khu vực cửa ra vào (trong phạm vi hiệu chỉnh $\le 5\text{m}$), còi buzzer phát âm thanh báo động và mô-đun SIM900A gửi tin nhắn SMS cảnh báo trộm.
- Khi cảm biến MQ2 phát hiện nồng độ khí gas vượt ngưỡng an toàn tại khu vực bếp, hệ thống kích hoạt chuông reo và gửi tin nhắn SMS cảnh báo rò rỉ khí gas.
- Người dùng có thể bật/tắt chế độ giám sát trộm hoặc tắt chuông báo động thông qua nút nhấn cứng (xử lý ngắt ngoài) hoặc gửi tin nhắn SMS điều khiển.
- Cơ chế duy trì nguồn và giám sát điện lưới:
- Mạch tự động kích chuyển nguồn sang ắc quy 6VDC ngay khi mất điện lưới 220VAC, đảm bảo toàn bộ hệ thống cảm biến, vi điều khiển và mô-đun SIM vẫn hoạt động liên tục.
- Gửi tin nhắn SMS cảnh báo trạng thái cúp điện lưới 220VAC và gửi tin nhắn SMS thông báo khi có điện lưới trở lại nhờ thuật toán đọc điện áp phân áp ($4.08\text{V}$) kết hợp bộ nhớ EEPROM.
Đóng góp kỹ thuật của đồ án
- Xây dựng thành công giải pháp nhà thông minh tích hợp đa kênh giao tiếp (WiFi, Webserver, Android App, GSM/SMS) với chi phí linh kiện thấp, phù hợp với điều kiện ứng dụng thực tế tại Việt Nam.
- Kết hợp xử lý linh hoạt giữa vi điều khiển chuyên dụng có số lượng I/O và cổng UART lớn (Arduino Mega 2560) với vi điều khiển tích hợp WiFi (ESP8266) và mô-đun viễn thông GSM (SIM900A).
- Giải quyết bài toán duy trì an ninh cho hệ thống IoT dân dụng khi gặp sự cố mất điện nguồn chính thông qua giải pháp chuyển mạch ắc quy tự động kết hợp giám sát trạng thái qua bộ nhớ bất biến EEPROM.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế của hệ thống
- Công suất tải thử nghiệm: Hệ thống mới chỉ thử nghiệm đóng ngắt các tải công suất nhỏ (4 bóng đèn 220VAC 5W), chưa triển khai thử nghiệm trên các thiết bị gia dụng có dòng khởi động lớn (máy bơm, máy lạnh, bình nóng lạnh).
- Phạm vi và thuật toán an ninh: Cảm biến chuyển động PIR HC-SR501 có cự ly phát hiện giới hạn ($\le 5\text{m}$ trong mô hình), thuật toán xử lý chống trộm đơn giản dựa trên mức logic kích hoạt đơn lẻ, dễ xảy ra hiện tượng cảnh báo giả nếu có vật nuôi di chuyển.
- Độ chính xác cảm biến môi trường: Cảm biến DHT11 có sai số đo tương đối ($\pm 2^\circ\text{C}$ và $\pm 5%\text{RH}$), tần số lấy mẫu thấp ($1\text{Hz}$).
- Bảo mật hệ thống: Webserver và ứng dụng Android chưa được tích hợp các cơ chế mã hóa dữ liệu truyền thông nâng cao, chưa có phân quyền người dùng đa cấp.
Hướng nghiên cứu tiếp
- Nâng cấp hệ thống bảo mật dữ liệu trên máy chủ Web và ứng dụng di động (xác thực HTTPS, phân quyền tài khoản, mã hóa gói tin truyền giữa NodeMCU và Server).
- Mở rộng số lượng và công suất ngõ ra điều khiển, ứng dụng các linh kiện đóng ngắt bán dẫn (Solid State Relay - SSR) hoặc contactor công suất lớn.
- Thay thế cảm biến DHT11 bằng các dòng cảm biến có độ chính xác cao hơn (như DHT22 hoặc SHT3x); tích hợp thêm cảm biến khói quang điện chuyên dụng, cảm biến ngập nước.
- Tích hợp camera IP hoặc mô-đun camera AI nhận diện khuôn mặt để xác thực người vào nhà, giảm thiểu cảnh báo giả.
- Phát triển tính năng điều khiển bằng giọng nói trên ứng dụng di động và tự động hóa theo ngữ cảnh (hẹn giờ, kịch bản phối hợp giữa các thiết bị).
Giá trị tham khảo
Đối tượng sử dụng tài liệu
- Sinh viên, học viên ngành Kỹ thuật Điện - Điện tử, Công nghệ Kỹ thuật Điện tử Truyền thông, Tự động hóa và Công nghệ Thông tin: Sử dụng làm tài liệu tham khảo cho các học phần Hệ thống nhúng, Lập trình điều khiển thiết bị, Đồ án chuyên ngành và Khóa luận tốt nghiệp về đề tài Nhà thông minh (Smart Home) / IoT.
- Kỹ sư và người nghiên cứu kỹ thuật nhúng: Tham khảo giải pháp thiết kế phần cứng giao tiếp hỗn hợp đa vi điều khiển, phương pháp điều khiển công suất cách ly quang và thiết kế mạch nguồn dự phòng.
Các nội dung có giá trị tham khảo cao
- Thiết kế mạch lực và cách ly: Công thức và phương pháp tính toán mạch kích Relay 5V sử dụng Opto PC817 và transistor, tính chọn giá trị điện trở phân cực ($R_1 = 220,\Omega$) và diode dập xung bảo vệ.
- Kỹ thuật truyền thông liên vi điều khiển: Phương pháp ghép nối truyền thông UART giữa Arduino Mega 2560 và ESP8266 NodeMCU để phân chia nhiệm vụ xử lý tín hiệu ngoại vi và truyền thông mạng.
- Mạch phát hiện mất điện lưới: Giải pháp thiết kế mạch phân áp kết hợp bộ nhớ EEPROM để nhận biết và phát đi thông điệp SMS cảnh báo trạng thái nguồn 220VAC.
- Kiến trúc truyền nhận dữ liệu qua Webserver: Mã nguồn và giải thuật trao đổi dữ liệu nhẹ giữa vi điều khiển và máy chủ PHP qua phương thức HTTP GET (
load.php, index.php, den.php, ND.php).
Câu hỏi thường gặp
1. Khối điều khiển trung tâm Arduino Mega 2560 kết nối với các mô-đun ngoại vi thông qua những chân nào?
Theo thiết kế nguyên lý của đồ án:
- ESP8266 NodeMCU: Chân Tx, Rx nối trực tiếp với chân Rx0, Tx0 (chân 0 và chân 1) của Arduino.
- Cảm biến khí gas MQ2: Chân tín hiệu Aout nối với chân analog A0.
- Cảm biến chuyển động PIR HC-SR501: Chân tín hiệu Aout nối với chân analog A1.
- Cảm biến nhiệt độ - độ ẩm DHT11: Chân dữ liệu Dout nối với chân digital 2.
- Mô-đun SIM900A: Chân Tx, Rx nối lần lượt với chân digital 9 và 10.
- Nút nhấn ngắt ngoài: Nút Enable/Disable báo trộm nối vào chân digital 3 (Interrupt 1); nút Reset buzzer nối vào chân digital 20 (Interrupt 3).
- Chân giám sát mất nguồn điện lưới: Chân Vout của mạch phân áp nối vào chân digital 22.
- Màn hình LCD 16x2: Các chân RS, RW, D4, D5, D6, D7 lần lượt nối với các chân digital 37, 36, 35, 34, 33, 32.
2. Hệ thống phát hiện sự cố mất nguồn điện lưới 220VAC và kích hoạt nguồn dự phòng theo cơ chế nào?
Hệ thống sử dụng relay nguồn kết hợp mạch phân áp:
- Mạch phân áp gồm 2 điện trở $R_1 = 470,\Omega$ và $R_2 = 220,\Omega$ trích áp từ nguồn Adapter 6VDC. Khi có điện, điện áp ngõ ra $V_{\text{out}} \approx 4.08\text{V}$ (mức logic 1) đưa vào chân 22 của Arduino. Khi mất điện lưới, điện áp này về $0\text{V}$ (mức logic 0).
- Arduino đọc mức logic chân 22 và so sánh với trạng thái trước đó được lưu trong bộ nhớ EEPROM. Nếu phát hiện chuyển từ mức 1 sang mức 0, hệ thống xác nhận sự cố mất điện và điều khiển SIM900A gửi tin nhắn SMS cảnh báo cúp điện.
- Về phần cứng, khi nguồn Adapter 6V bị ngắt, relay nguồn mất dòng kích sẽ tự động nhả tiếp điểm và đóng mạch tiếp xúc giữa chân 1 và chân 2, nối ắc quy 6VDC vào cấp cho IC LM7805 để duy trì hoạt động cho hệ thống. Khi có điện lưới trở lại, relay đóng tiếp điểm 1 với 3 và hệ thống gửi tin nhắn SMS thông báo có điện.
3. Dữ liệu cảm biến và lệnh điều khiển được truyền giữa ESP8266 NodeMCU và Webserver bằng phương thức nào?
Dữ liệu được trao đổi thông qua giao thức HTTP bằng phương thức GET:
- Gửi dữ liệu lên Server: NodeMCU thực hiện yêu cầu HTTP GET tới tệp
load.php kèm theo các tham số trên URL (ví dụ: load.php?ND=...&DA=...). Tệp load.php trên máy chủ sử dụng biến toàn cục $_GET để trích xuất chỉ số nhiệt độ, độ ẩm và lưu vào tệp ND.php.
- Nhận dữ liệu điều khiển: Trong cùng phiên xử lý, tệp
load.php đọc trạng thái đèn hiện tại được lưu trong các tệp den.php và gửi chuỗi ký tự phản hồi về cho NodeMCU. NodeMCU phân tích chuỗi này để xuất mức logic kích các chân GPIO (D2, D5, D6, D7) điều khiển relay.
4. Các thông số kỹ thuật của cảm biến DHT11 và MQ2 được sử dụng trong hệ thống là gì?
- Cảm biến nhiệt độ - độ ẩm DHT11: Hoạt động ở điện áp 3V – 5V DC; dải đo độ ẩm từ 20% đến 90% RH (sai số $\pm 5%\text{RH}$); dải đo nhiệt độ từ 0°C đến 50°C (sai số $\pm 2^\circ\text{C}$); tần số lấy mẫu tối đa là 1 Hz; giao tiếp qua chuẩn 1-wire tích hợp sẵn bộ tiền xử lý tín hiệu số.
- Cảm biến khí gas MQ2: Hoạt động ở điện áp 4.5V – 5V DC; cấu tạo từ chất nhạy cảm $SnO_2$; có độ nhạy cao với các loại khí LPG, Propane, Methane, Butan, Alcohol và khói; thời gian đáp ứng $\le 10\text{s}$; thời gian phục hồi $\le 30\text{s}$; trở kháng khi nóng $31,\Omega \pm 3,\Omega$; dòng tiêu thụ bộ sấy $\le 180\text{mA}$; hỗ trợ cả ngõ ra Analog và Digital qua bộ so sánh LM393.
5. Vì sao mạch kích relay cần sử dụng Opto PC817 và giá trị điện trở $R_1$ được tính toán như thế nào?
- Mục đích sử dụng Opto PC817: Opto đóng vai trò bộ cách ly quang học giữa mạch điều khiển vi xử lý (sử dụng điện áp thấp 3.3V/5VDC) và mạch tải công suất (điện áp xoay chiều 220VAC), ngăn chặn các xung nhiễu điện từ và điện áp cảm ứng ngược từ cuộn dây relay làm hỏng vi điều khiển.
- Tính toán điện trở $R_1$: Dựa trên đặc tuyến bão hòa của transistor bên trong Opto PC817, khi dòng cực thu $I_C = 5\text{mA}$, dòng phân cực LED phát $I_F$ cần nằm trong khoảng từ $5\text{mA}$ đến $15\text{mA}$ với điện áp rơi trên LED $V_{\text{LED}} \approx 2\text{V}$. Khi vi điều khiển xuất mức 0 (0V) để kích relay:
- Với $I_F = 5\text{mA}$: $R_{1\text{ (max)}} = \frac{5\text{V} - 2\text{V}}{5\text{mA}} = 600,\Omega$.
- Với $I_F = 15\text{mA}$: $R_{1\text{ (min)}} = \frac{5\text{V} - 2\text{V}}{15\text{mA}} = 200,\Omega$.
- Giá trị $R_1$ được chọn nằm trong khoảng $200,\Omega < R_1 < 600,\Omega$, đồ án chọn giá trị điện trở thương mại chuẩn là $R_1 = 220,\Omega$.
Kết luận
Đồ án tốt nghiệp "Thiết kế, thi công mô hình hệ thống điều khiển thiết bị điện và giám sát nhà" của sinh viên Nguyễn Ngọc Lực đã nghiên cứu, thiết kế và chế tạo thành công mô hình hệ thống nhà thông minh tích hợp đa nền tảng điều khiển. Hệ thống kết hợp hiệu quả giữa vi điều khiển Arduino Mega 2560, mô-đun WiFi ESP8266 NodeMCU, mô-đun SIM900A và các cảm biến môi trường để thực hiện việc giám sát, điều khiển thiết bị điện qua Website và ứng dụng Android. Điểm nổi bật của đề tài là giải pháp chuyển nguồn ắc quy dự phòng tự động kết hợp gửi tin nhắn SMS cảnh báo mất điện và phát hiện sự cố an ninh (trộm, rò rỉ khí gas). Đây là tài liệu tham khảo kỹ thuật hữu ích về phương pháp tính toán phần cứng, thiết kế mạch nhúng và xây dựng hệ thống IoT hoàn chỉnh với chi phí hợp lý.