Giới thiệu dự án
Sự bùng nổ của cuộc Cách mạng Công nghiệp 4.0 đã thúc đẩy thị trường Internet of Things (IoT) phát triển với tốc độ tăng trưởng kép hàng năm (CAGR) đạt trên 25%. Trong bối cảnh đô thị hóa nhanh chóng, nhu cầu về tự động hóa tòa nhà và nhà thông minh (Smart Home) không còn dừng lại ở mức tiện ích xa xỉ mà dần trở thành tiêu chuẩn nâng cao chất lượng sống, tối ưu hóa năng lượng và bảo vệ an toàn cho con người.
Tuy nhiên, rào cản lớn nhất của thị trường hiện nay là chi phí triển khai các giải pháp thương mại độc quyền (như Bkav SmartHome Luxury, Schneider Wiser Home, Lumi) rất cao, dao động từ vài chục đến hàng trăm triệu đồng cho một căn hộ tiêu chuẩn. Bên cạnh đó, tính đóng kín của hệ sinh thái khiến việc tích hợp, tùy biến và mở rộng hệ thống gặp nhiều trở ngại đối với đại đa số người dùng phổ thông tại Việt Nam.
Đồ án tốt nghiệp "Ứng dụng của IoT trong xây dựng mô hình nhà thông minh" được thực hiện bởi sinh viên Bùi Văn Hưng (Chuyên ngành Kỹ thuật Điện tử - Truyền thông K59, Viện Điện tử - Viễn thông, Trường Đại học Bách Khoa Hà Nội) dưới sự hướng dẫn của ThS. Nguyễn Thị Kim Thoa, nhằm giải quyết trực tiếp bài toán này.
+---------------------------------------------------------------------------------------+
| MÔ HÌNH HỆ THỐNG |
| |
| +-------------------+ UART (19200 bps) +-------------------------+ |
| | PIC16F877A (MCU) | <-----------------------------> | ESP8266-12E NodeMCU | |
| | - DHT11 / MQ-2 | | - Wi-Fi 802.11 b/g/n | |
| | - Relay / LCD | | - HTTP Client Engine | |
| +-------------------+ +-------------------------+ |
| | |
| HTTP / Wi-Fi |
| v |
| +-------------------------------------------------------------------------------+ |
| | Cloud Web Server (000webhost / PHP) | |
| +-------------------------------------------------------------------------------+ |
| ^ ^ |
| | HTTP | HTTP / REST API |
| v v |
| +-----------------------+ +----------------------+ |
| | Web Dashboard UI | | Android App + Voice | |
| +-----------------------+ +----------------------+ |
+---------------------------------------------------------------------------------------+
Mục tiêu của dự án:
- Thiết kế phần cứng nhúng chi phí thấp: Xây dựng bo mạch điều khiển trung tâm kết hợp giữa vi điều khiển Microchip PIC16F877A và module truyền thông không dây ESP8266-12E NodeMCU.
- Tự động hóa giám sát môi trường: Thu thập chính xác dữ liệu nhiệt độ, độ ẩm từ cảm biến DHT11 và giám sát nồng độ khí gas/khói qua cảm biến MQ-2 theo thời gian thực; tự động kích hoạt thiết bị phụ tải (quạt thông gió, chuông cảnh báo) khi phát hiện nguy cơ.
- Phát triển nền tảng điều khiển đa kênh: Xây dựng Web Server trên nền tảng PHP lưu trữ dữ liệu và phát triển ứng dụng di động Android tích hợp nhận dạng giọng nói tiếng Việt (Google Voice Search API).
- Tối ưu hóa chi phí và độ tin cậy: Đạt tổng chi phí linh kiện dưới 500.000 VNĐ (~$22), thời gian đáp ứng điều khiển cục bộ dưới 150ms và qua Internet dưới 1.5s.
Phạm vi và giới hạn:
- Phạm vi: Mô hình hóa hệ thống điều khiển 2 kênh thiết bị (chiếu sáng, quạt làm mát) và 2 kênh cảm biến môi trường (DHT11, MQ-2), hiển thị cục bộ qua LCD 16x2 và từ xa qua giao diện Web/Android App.
- Giới hạn: Sử dụng giao thức HTTP polling trên nền hosting miễn phí 000webhost; chưa tích hợp giao thức thời gian thực như MQTT/WebSocket và chưa mã hóa đầu cuối (End-to-End Encryption - E2EE) bằng chứng chỉ SSL/TLS ở tầng phần cứng thấp.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
| Tiêu chí so sánh |
Bkav SmartHome Luxury |
Lumi SmartHome |
Schneider Wiser Home |
Giải pháp Đồ án (HUST) |
| Phân khúc thị trường |
Cao cấp / Biệt thự |
Trung & Cao cấp |
Cao cấp / Chuẩn Châu Âu |
Bình dân / DIY / Nghiên cứu |
| Giao thức kết nối |
Zigbee / Wi-Fi / RS485 |
Zigbee / BLE Mesh |
Zigbee 3.0 / Wi-Fi |
Wi-Fi 802.11 b/g/n (ESP8266) |
| Nền tảng xử lý |
Industrial Server / PLC |
Gateway ARM Cortex |
Wiser IP Network Hub |
Dual-Core (PIC16F877A + LX106) |
| Điều khiển giọng nói |
Có (Độc quyền trợ lý ảo) |
Có (Google Assistant/Alexa) |
Có (Siri/Google/Alexa) |
Tích hợp Google Voice API (Android) |
| Chi phí triển khai |
> 100.000.000 VNĐ |
25.000.000 - 80.000.000 VNĐ |
> 60.000.000 VNĐ |
< 500.000 VNĐ (Node mẫu) |
| Khả năng tùy biến |
Đóng (Proprietary) |
Bán mở qua SDK hãng |
Đóng theo chuẩn hãng |
Mã nguồn mở 100% |
Ma trận yêu cầu người dùng (MoSCoW):
- Must Have (Bắt buộc): Bật/tắt thiết bị qua Internet; hiển thị nhiệt độ/độ ẩm/khí gas; tự động bật quạt khi $T > 35^\circ\text{C}$; điều khiển nút bấm vật lý tại chỗ.
- Should Have (Nên có): Điều khiển bằng giọng nói tiếng Việt qua Android App; màn hình LCD 16x2 hiển thị trạng thái tại chỗ.
- Could Have (Có thể mở rộng): Lưu trữ lịch sử dữ liệu môi trường vào cơ sở dữ liệu MySQL; kịch bản tự động hóa hẹn giờ.
- Won't Have (Không thực hiện): Nhận diện khuôn mặt camera an ninh; điều khiển rèm động cơ bước.
Thiết kế hệ thống
+-----------------------------------------------------------------------------------+
| SƠ ĐỒ KHỐI PHẦN CỨNG CHI TIẾT |
| |
| [ Nguồn 220VAC ] ---> [ Adapter 5V/2A ] ---> [ AMS1117-3.3V ] ---> ESP8266 (3.3V)|
| | |
| +------------> PIC16F877A (5V) |
| | |
| +--------------------+ | (PORTB, PORTD) |
| | Cảm biến DHT11 | ---> (RB0) v |
| | Cảm biến Gas MQ-2 | ---> (RA0/AN0) +--------------+ |
| | Khối nút nhấn (x4) | ---> (RB4-RB7) | PIC16F877A | ---> LCD 16x2 |
| +--------------------+ +--------------+ ---> Relay Tải AC |
| ^ ---> LED Chỉ thị |
| UART TX/RX | |
| (Chân 26/27 - RC6/7)| |
| v |
| +--------------+ |
| | ESP8266-12E | <---> Wi-Fi AP |
| +--------------+ |
+-----------------------------------------------------------------------------------+
Thông số kỹ thuật Technology Stack:
- Vi điều khiển chính: Microchip PIC16F877A (Kiến trúc 8-bit RISC, thạch anh ngoài 20MHz, 8KB Flash, 368 Bytes RAM, 256 Bytes EEPROM, 40 chân PDIP).
- Module truyền thông SoC: Espressif ESP8266-12E NodeMCU (CPU 32-bit Tensilica Xtensa LX106 @ 80MHz, 64KB Instruction RAM, 96KB Data RAM, 4MB Flash SPI, chip nạp CP2102, chuẩn Wi-Fi IEEE 802.11 b/g/n).
- Mạch nguồn hạ áp: IC ổn áp tuyến tính AMS1117-3.3V (Dòng tải tối đa 1A, bảo vệ ngắn mạch và quá nhiệt, biến đổi 5V DC xuống 3.3V DC cho ESP8266).
- Cảm biến:
- DHT11: Đo nhiệt độ ($0 - 55^\circ\text{C} \pm 2^\circ\text{C}$), độ ẩm ($20 - 90% \text{RH} \pm 5%$), giao thức Single-Bus.
- MQ-2: Cảm biến khí gas/khói LPG/Propane/Methane, ngõ ra Digital (DO) & Analog (AO).
- Phần mềm & Nền tảng: Android Studio 3.4 (Java/XML, Android SDK 21-28), Web Server 000webhost (Apache 2.4, PHP 7.2, MySQL).
Thiết kế Giao thức & REST API:
Hệ thống sử dụng mô hình Client-Server phi trạng thái (stateless) qua phương thức HTTP GET/POST:
Endpoint Cập nhật trạng thái (ESP8266 -> Server):
GET /smarthome/update.php?temp=32&humi=75&gas=1&relay1=1&relay2=0 HTTP/1.1
Host: your-domain.000webhostapp.com
Connection: close
Endpoint Đọc lệnh điều khiển (ESP8266/Android -> Server):
GET /smarthome/status.txt HTTP/1.1
Host: your-domain.000webhostapp.com
Response Data Payload (Chuỗi byte tối ưu hóa):
"1:0:32:75:1" (Định dạng: [Relay1]:[Relay2]:[NhiệtĐộ]:[ĐộẨm]:[TrạngTháiGas])
Phương pháp luận (Methodology)
Dự án áp dụng mô hình phát triển Agile-Waterfall kết hợp chia làm 4 giai đoạn rõ ràng:
- Khảo sát & Thiết kế kiến trúc (Tuần 1-3): Phân tích sơ đồ khối, lựa chọn linh kiện, vẽ mạch nguyên lý (Schematic) trên Altium Designer.
- Hiện thực hóa phần cứng & Vi mã (Tuần 4-6): Gia công mạch in PCB 2 lớp, hàn linh kiện; lập trình firmware C cho PIC16F877A và C++ cho ESP8266.
- Phát triển Backend & Ứng dụng Android (Tuần 7-10): Cấu hình hosting PHP, thiết kế giao diện Material UI và tích hợp Speech-to-Text API trên Android.
- Tích hợp, Kiểm thử & Đánh giá (Tuần 11-13): Đo lường thời gian đáp ứng RTT (Round Trip Time), độ chính xác cảm biến và kiểm thử tải 24/7.
+------------------------------------------------------------------------------------+
| KẾ HOẠCH & TIẾN ĐỘ THỰC HIỆN |
| |
| Giai đoạn 1: 02/03 - 26/03: Nghiên cứu lý thuyết, thiết kế Schematic & PCB |
| Giai đoạn 2: 27/03 - 15/04: Lập trình PIC16F877A, driver DHT11/MQ-2, test UART |
| Giai đoạn 3: 16/04 - 10/05: Lập trình ESP8266 HTTP Client, xây dựng Android App |
| Giai đoạn 4: 11/05 - 31/05: Tích hợp hệ thống, đo kiểm thực nghiệm 4 đợt & viết báo cáo|
+------------------------------------------------------------------------------------+
Implementation và kết quả
Quá trình phát triển và thuật toán cốt lõi
Hệ thống xử lý phân tán theo nguyên tắc: PIC16F877A đóng vai trò Real-Time Controller (chịu trách nhiệm đo đạc, điều khiển rơ-le và hiển thị LCD), còn ESP8266 đóng vai trò Network Gateway (xử lý kết nối Wi-Fi và giao vận HTTP).
1. Thuật toán đọc cảm biến và điều khiển cục bộ (PIC16F877A - C):
#include <16F877A.h>
#device ADC=10
#use delay(crystal=20000000)
#use rs232(baud=19200,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
#define FAN_PIN PIN_D0
#define LIGHT_PIN PIN_D1
#define MQ2_DIG PIN_A0
void main() {
float temperature, humidity;
int1 gas_detected = 0;
setup_adc_ports(NO_ANALOGS);
set_tris_d(0x00); // Output cho Relay & LED
set_tris_b(0xF0); // Input cho 4 Button
while(TRUE) {
// Đọc giá trị DHT11 (Giao thức 1 dây)
if(dht11_read(&temperature, &humidity)) {
lcd_gotoxy(1, 1);
printf(lcd_putc, "T:%2.0fC H:%2.0f%%", temperature, humidity);
}
gas_detected = input(MQ2_DIG);
// Thuật toán tự động hóa biên (Edge Automation)
if(temperature > 35.0 || gas_detected == 1) {
output_high(FAN_PIN); // Tự động bật quạt hút khói/làm mát
}
// Truyền khung dữ liệu định kỳ sang ESP8266 qua UART
printf("#%2.0f,%2.0f,%u,%u,%u$\n",
temperature, humidity, gas_detected,
input_state(LIGHT_PIN), input_state(FAN_PIN));
delay_ms(1500);
}
}
2. Xử lý truyền thông mạng và phân tích gói tin (ESP8266 - C++/Arduino):
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
const char* ssid = "SmartHome_HUST";
const char* password = "Password@123";
const char* serverUrl = "http://buivanhung.000webhostapp.com/api_handler.php";
void setup() {
Serial.begin(19200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
}
}
void loop() {
if (Serial.available() > 0) {
String data = Serial.readStringUntil('$');
if (data.startsWith("#")) {
data.remove(0, 1); // Xóa ký tự Header '#'
// Gửi dữ liệu cảm biến lên Server qua HTTP POST
if (WiFi.status() == WL_CONNECTED) {
WiFiClient client;
HTTPClient http;
http.begin(client, serverUrl);
http.addHeader("Content-Type", "application/x-www-form-urlencoded");
String httpRequestData = "node_data=" + data;
int httpResponseCode = http.POST(httpRequestData);
if (httpResponseCode == 200) {
String payload = http.getString();
// Gửi lệnh nhận được từ Server ngược lại cho PIC16F877A
Serial.print("@" + payload + "!");
}
http.end();
}
}
}
delay(500);
}
3. Xử lý nhận dạng giọng nói trên Android App (Java):
public class MainActivity extends AppCompatActivity {
private static final int REQ_CODE_SPEECH_INPUT = 100;
private void promptSpeechInput() {
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "vi-VN");
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Nói lệnh điều khiển (VD: Bật đèn, Tắt quạt)...");
try {
startActivityForResult(intent, REQ_CODE_SPEECH_INPUT);
} catch (ActivityNotFoundException a) {
Toast.makeText(getApplicationContext(), "Thiết bị không hỗ trợ giọng nói", Toast.LENGTH_SHORT).show();
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQ_CODE_SPEECH_INPUT && resultCode == RESULT_OK && data != null) {
ArrayList<String> result = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
String command = result.get(0).toLowerCase();
processVoiceCommand(command);
}
}
private void processVoiceCommand(String cmd) {
if (cmd.contains("bật đèn")) {
sendHttpCommand("LIGHT_ON");
} else if (cmd.contains("tắt đèn")) {
sendHttpCommand("LIGHT_OFF");
} else if (cmd.contains("bật quạt")) {
sendHttpCommand("FAN_ON");
} else if (cmd.contains("tắt quạt")) {
sendHttpCommand("FAN_OFF");
}
}
}
Thử nghiệm và Đánh giá hiệu năng
Quá trình kiểm thử hệ thống được thực hiện qua 4 phiên đo thực nghiệm liên tục từ ngày 28/05/2019 đến ngày 31/05/2019 vào các khung giờ cao điểm mạng (18h00 hàng ngày):
| Đợt kiểm thử |
Ngày thực hiện |
Thời gian đáp ứng RTT (ms) |
Độ chính xác cảm biến |
Nhận diện giọng nói (%) |
Tỷ lệ thành công điều khiển |
| Đợt 1 |
28/05/2019 |
850 ± 65 ms |
$96.2%$ (So với nhiệt kế chuẩn) |
$92.0%$ (23/25 mẫu) |
$98.0%$ (49/50 lần) |
| Đợt 2 |
29/05/2019 |
920 ± 80 ms |
$95.8%$ |
$96.0%$ (24/25 mẫu) |
$96.0%$ (48/50 lần) |
| Đợt 3 |
30/05/2019 |
780 ± 50 ms |
$97.1%$ |
$92.0%$ (23/25 mẫu) |
$100%$ (50/50 lần) |
| Đợt 4 |
31/05/2019 |
810 ± 45 ms |
$96.5%$ |
$96.0%$ (24/25 mẫu) |
$98.0%$ (49/50 lần) |
| Trung bình |
Toàn đợt |
840 ms |
96.4% |
94.0% |
98.0% |
+-----------------------------------------------------------------------------+
| PHÂN BỐ ĐỘ TRỄ HỆ THỐNG (840 ms) |
| |
| [PIC Đọc Cảm Biến] --> 35 ms (4.2%) |
| [UART Truyền Nhận] --> 15 ms (1.8%) |
| [ESP8266 -> Wi-Fi] --> 120 ms (14.3%) |
| [Internet / Cloud] --> 480 ms (57.1%) [Độ trễ lớn nhất do Hosting 000webhost]
| [App Nhận & Render] --> 190 ms (22.6%) |
+-----------------------------------------------------------------------------+
Đổi mới và đóng góp
- Kiến trúc vi xử lý kép dị thể (Heterogeneous Dual-Core Architecture): Phân tách rạch ròi giữa tầng điều khiển thời gian thực cứng (Hard Real-Time I/O trên PIC16F877A) và tầng mạng (Wi-Fi/TCP/IP trên ESP8266). Cách tiếp cận này giúp vi điều khiển PIC không bị hiện tượng "nghẽn mạng" (blocking I/O) khi module Wi-Fi mất kết nối hoặc chờ phản hồi HTTP.
- Khả năng tự vận hành độc lập khi mất mạng (Edge Offline Fallback): Hệ thống tích hợp logic tự động kích hoạt phụ tải trực tiếp ngay trên phần cứng. Nếu mạng Internet bị gián đoạn, chức năng bảo vệ chống ngộ độc khí gas (MQ-2) và hạ nhiệt độ khẩn cấp ($T > 35^\circ\text{C}$) vẫn hoạt động với độ trễ phản hồi tức thì dưới $50\text{ms}$.
- Cầu nối điều khiển giọng nói đa phương thức không tốn phí: Sử dụng engine nhận dạng giọng nói tự nhiên tiếng Việt từ Google API trên Android và chuyển dịch sang chuỗi lệnh nhị phân gọn nhẹ truyền về mạch nhúng, giúp loại bỏ hoàn toàn chi phí bản quyền trợ lý ảo đắt đỏ.
- Tối ưu hóa chi phí sản xuất vượt trội: Giảm giá thành thiết bị tới $95%$ so với các module thương mại tương đương trên thị trường, mở ra tiềm năng lớn cho mô hình Smart Home tự chế (DIY) và đào tạo thực hành IoT tại các trường kỹ thuật.
Ứng dụng thực tế và triển khai
Tình huống ứng dụng thực tế (Use Cases):
- Căn hộ chung cư vừa và nhỏ: Giám sát rò rỉ khí gas nhà bếp, tự động ngắt điện hoặc bật quạt thông gió khi có khói, kiểm soát đèn/quạt từ xa qua điện thoại.
- Hệ sinh thái Nông nghiệp đô thị / Nhà màng thông minh: Theo dõi nhiệt độ, độ ẩm đất/không khí, kích hoạt hệ thống tưới phun sương tự động khi môi trường vượt ngưỡng cho phép.
- Phòng máy chủ/Phòng thí nghiệm vừa và nhỏ: Cảnh báo nguy cơ cháy nổ sớm, theo dõi độ ẩm tránh chập hỏng thiết bị vi mạch.
Bảng dự toán chi phí phần cứng (BOM - Bill of Materials):
| Linh kiện / Module |
Chi tiết thông số |
Đơn giá (VNĐ) |
| Vi điều khiển PIC16F877A |
Microchip DIP-40 kèm đế cắm |
55.000 |
| NodeMCU ESP8266 v12E |
CP2102, 4MB Flash |
75.000 |
| Cảm biến DHT11 |
Đo nhiệt độ & độ ẩm |
25.000 |
| Cảm biến khí Gas MQ-2 |
Module analog/digital |
35.000 |
| Màn hình LCD 16x2 |
Kèm đèn nền xanh |
35.000 |
| Module 2 Relay 5V |
Cách ly quang Opto 10A/250VAC |
25.000 |
| Nguồn Adapter 5V/2A + AMS1117 |
Cấp nguồn toàn mạch |
45.000 |
| PCB 2 lớp + Linh kiện thụ động |
Trở, tụ, thạch anh 20MHz, nút nhấn, LED |
60.000 |
| TỔNG CỘNG |
Chi phí cho 1 Node điều khiển hoàn chỉnh |
355.000 VNĐ (~$15.5) |
Khả năng mở rộng và lộ trình phát triển:
- Ngắn hạn (3-6 tháng): Chuyển dịch toàn bộ giao tiếp từ HTTP Polling sang giao thức MQTT (Message Queuing Telemetry Transport) qua Broker Eclipse Mosquitto nhằm hạ độ trễ từ $840\text{ms}$ xuống dưới $100\text{ms}$ và tiết kiệm $80%$ băng thông Wi-Fi.
- Dài hạn (6-12 tháng): Thay thế cặp đôi PIC16F877A + ESP8266 bằng SoC đơn chip ESP32, bổ sung chuẩn giao tiếp Bluetooth Low Energy (BLE Mesh) và nâng cấp cơ sở dữ liệu Cloud Firebase / InfluxDB để phân tích biểu đồ môi trường trực quan.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật:
- Tần số lấy mẫu cảm biến: Cảm biến DHT11 có chu kỳ đọc tối thiểu là 1-2 giây, sai số nhiệt độ $\pm 2^\circ\text{C}$ chưa phù hợp cho các môi trường yêu cầu độ chính xác cao trong công nghiệp.
- Độ trễ của hạ tầng Web miễn phí: Dịch vụ 000webhost thỉnh thoảng gặp tình trạng nghẽn hàng đợi (connection queue delay) và giới hạn băng thông 10GB/tháng, dẫn đến các đỉnh trễ cục bộ lên tới 1.5 - 2 giây.
- Tính bảo mật: Hệ thống truyền nhận bản tin plain-text qua HTTP thông thường, chưa hỗ trợ TLS/SSL (HTTPS) trên ESP8266 do giới hạn tài nguyên tính toán của vi mã thời điểm đó.
Hướng phát triển đề xuất:
- Nâng cấp cảm biến lên dòng công nghiệp DHT22/SHT30 (độ chính xác $\pm 0.3^\circ\text{C}$) và MQ-135 (đo chất lượng không khí tổng thể).
- Xây dựng Server riêng trên nền tảng Raspberry Pi 4 / Docker Container đặt tại gia đình (Local Home Server) chạy Home Assistant kết hợp MQTT Broker nội mạng.
- Đóng gói vỏ bảo vệ tiêu chuẩn IP65, thiết kế nguồn cách ly công nghiệp chống nhiễu điện từ khi bật/tắt các phụ tải cảm ứng lớn (như động cơ máy bơm, điều hòa).
Đối tượng hưởng lợi
- Sinh viên & Nghiên cứu sinh: Cung cấp tài liệu tham khảo chi tiết từ sơ đồ mạch Altium, mã nguồn vi điều khiển C/C++ đến lập trình ứng dụng Android và Web Server; mô hình hóa trực quan kiến thức giao tiếp vi điều khiển - mạng không dây.
- Kỹ sư & Lập trình viên Embedded IoT: Tham khảo mô hình phân tách tác vụ song song (Dual-Core Processing) giữa MCU và Wi-Fi Gateway; giải pháp chuyển tiếp dữ liệu an toàn qua cổng UART nối tiếp.
- Doanh nghiệp & Startup: Cung cấp cơ sở tính toán định mức chi phí phần cứng (BOM optimization), mở ra hướng đi sản xuất các module tự động hóa giá rẻ phục vụ thị trường nhà trọ thông minh, homestay hoặc căn hộ tầm trung.
- Cộng đồng DIY & Nông nghiệp thông minh: Giải pháp mã nguồn mở dễ dàng tái tạo, điều chỉnh để ứng dụng vào hệ thống tưới tiêu tự động, vườn ươm hoặc trang trại nuôi yến.
Câu hỏi thường gặp
1. Yêu cầu kỹ thuật tối thiểu để triển khai hệ thống này là gì?
- Phần cứng: Mạch PCB theo thiết kế, nguồn điện AC 220V/50Hz dân dụng, điểm phát sóng Wi-Fi băng tần 2.4GHz (chuẩn 802.11 b/g/n, bảo mật WPA/WPA2).
- Phần mềm: Điện thoại thông minh chạy Android 5.0 (Lollipop) trở lên có kết nối Internet 3G/4G/Wi-Fi và hỗ trợ dịch vụ Google Play Services để kích hoạt nhận diện giọng nói.
2. Hệ thống có thể mở rộng để điều khiển bao nhiêu thiết bị phụ tải?
Với thiết kế hiện tại trên vi điều khiển PIC16F877A (40 chân), mạch còn dư hơn 15 chân I/O. Người dùng có thể dễ dàng mở rộng điều khiển lên đến 8 - 12 rơ-le độc lập thông qua việc bổ sung IC ghi dịch như 74HC595 hoặc mở rộng giao tiếp I2C qua chip PCF8574 mà không cần thay đổi vi điều khiển trung tâm.
3. Khi mất kết nối Wi-Fi hoặc mất mạng Internet, hệ thống hoạt động như thế nào?
Hệ thống hoàn toàn không bị tê liệt. Vi điều khiển PIC16F877A vẫn liên tục quét trạng thái các nút bấm vật lý trên tường và kiểm tra ngưỡng an toàn môi trường. Người dùng vẫn có thể bật/tắt thiết bị tại chỗ bằng nút bấm và tính năng an toàn (tự động bật quạt khi phát hiện gas/nhiệt độ cao) vẫn hoạt động bình thường.
4. Chi phí duy trì hệ thống hàng tháng/hàng năm là bao nhiêu?
Nếu sử dụng Web Server tự host trên máy tính cá nhân hoặc các gói Cloud Free Tier (như Firebase Spark Plan, 000webhost miễn phí), chi phí vận hành phần mềm là 0 VNĐ. Mức tiêu thụ điện năng của toàn bộ mạch nhúng chỉ khoảng 2.5W - 3W, tương đương chưa đến 5.000 VNĐ tiền điện mỗi tháng.
5. Tại sao đồ án lại chọn giao thức HTTP thay vì MQTT?
Tại thời điểm nghiên cứu của đồ án, HTTP là giao thức trực quan, dễ debug qua trình duyệt Web và tương thích tuyệt đối với mọi gói web hosting miễn phí (vốn chỉ hỗ trợ cổng 80/HTTP chuẩn). Tuy nhiên, đồ án cũng đã phân tích rõ việc chuyển đổi sang MQTT là bước đi tất yếu trong giai đoạn nâng cấp tiếp theo để tối ưu hóa thời gian thực.
Kết luận
Đồ án tốt nghiệp "Ứng dụng của IoT trong xây dựng mô hình nhà thông minh" của tác giả Bùi Văn Hưng đã hiện thực hóa thành công một hệ thống Smart Home hoàn chỉnh theo chu trình khép kín: từ tầng thu thập cảm biến (Sensing Layer), tầng điều khiển nhúng thời gian thực (Embedded Control Layer), tầng truyền dẫn không dây (Networking Layer) cho đến tầng ứng dụng người dùng đa nền tảng Web/Android (Application Layer).
Với chi phí phần cứng tối ưu dưới $20 USD, độ tin cậy điều khiển đạt $98%$ và khả năng tích hợp giọng nói tiếng Việt tự nhiên, đề tài là minh chứng rõ nét cho tính ứng dụng cao của các công nghệ IoT mã nguồn mở trong việc giải quyết các bài toán đời sống thiết thực. Nghiên cứu cung cấp nền tảng vững chắc cho các kỹ sư, sinh viên và cộng đồng yêu công nghệ tiếp tục kế thừa, phát triển thành các sản phẩm thương mại hóa hoàn chỉnh trong tương lai.