Giới thiệu dự án
Trong kỷ nguyên Cách mạng Công nghiệp 4.0, Internet of Things (IoT - Mạng lưới vạn vật kết nối Internet) đã trở thành trụ cột công nghệ định hình tương lai của tự động hóa và nhà thông minh (Smart Home). Theo thống kê của Statista, số lượng thiết bị IoT kết nối toàn cầu dự kiến vượt mốc 29 tỷ thiết bị vào năm 2030, trong đó phân khúc điều khiển nhà thông minh chiếm hơn 22% thị phần ứng dụng dân dụng. Tuy nhiên, việc quản lý và vận hành các thiết bị điện sinh hoạt truyền thống hiện nay vẫn đối mặt với nhiều bất cập lớn: tình trạng lãng phí điện năng do quên tắt thiết bị khi ra ngoài, nguy cơ chập cháy điện, cùng sự thiếu linh hoạt của các công tắc cơ học cố định.
Đề tài khóa luận "Nghiên cứu, thiết kế mạch và phát triển phần mềm điều khiển thiết bị điện từ xa bằng điện thoại" do sinh viên Nguyễn Hữu Hùng và Hoàng Văn Đức thực hiện dưới sự hướng dẫn của TS. Nguyễn Thị Diệu Linh (Khoa Công nghệ thông tin – Điện tử truyền thông, Trường Đại học Kinh Bắc, 2023) tập trung giải quyết triệt để bài toán này. Dự án phát triển một giải pháp phần cứng kết hợp phần mềm nhúng toàn diện: sử dụng vi điều khiển NodeMCU V3 ESP8266, tích hợp nền tảng đám mây Google Firebase Realtime Database và ứng dụng di động Android tùy biến, cho phép người dùng giám sát và điều khiển thiết bị điện mọi lúc, mọi nơi qua kết nối Internet tốc độ cao.
flowchart LR
User([Người dùng]) <-->|Giao diện & Giọng nói| App[App Android / Native UI]
App <-->|Đồng bộ thời gian thực| Cloud[(Firebase Realtime DB)]
Cloud <-->|WiFi 802.11 b/g/n| MCU[NodeMCU V3 ESP8266]
MCU -->|Điều khiển đóng cắt| Relay[Solid State Relay / SSR]
MCU -->|Tín hiệu PWM| Servo[Động cơ Servo SG90]
Button[Nút bấm cứng KY-004] -->|Ngắt phần cứng / Input| MCU
Relay --> Load[Đèn, Quạt, Ổ cắm 220V AC]
Servo --> Door[Cửa tự động]
Mục tiêu dự án
- Thiết kế phần cứng hoàn chỉnh: Chế tạo bo mạch điều khiển trung tâm sử dụng module NodeMCU V3 ESP8266, kết hợp module đóng ngắt Solid State Relay (SSR), động cơ Servo SG90 và nút nhấn vật lý KY-004.
- Xây dựng kiến trúc dữ liệu đám mây: Thiết lập cơ sở dữ liệu thời gian thực (Realtime Database) và hệ thống xác thực người dùng (Firebase Authentication) trên nền tảng Google Firebase.
- Phát triển ứng dụng di động Android: Lập trình ứng dụng native trên Android Studio hỗ trợ xác thực tài khoản, điều khiển bật/tắt thiết bị, điều tốc quạt, đóng/mở cửa, nhận diện giọng nói tiếng Việt và quản lý thiết bị linh hoạt.
- Giải quyết bài toán cấu hình mạng động (Dynamic Provisioning): Tích hợp cơ chế cấu hình Wi-Fi linh hoạt qua WebSocket và lưu trữ SSID/Password trực tiếp vào bộ nhớ EEPROM (Electrically Erasable Programmable Read-Only Memory) của vi điều khiển mà không cần nạp lại mã nguồn.
Phạm vi và giới hạn kỹ thuật
- Phạm vi ứng dụng: Hệ thống điện gia dụng xoay chiều (AC 220V, tải thuần trở và cảm dưới 2A/kênh) và cơ cấu chấp hành một chiều (DC 5V).
- Mạng kết nối: Hỗ trợ chuẩn Wi-Fi 2.4GHz IEEE 802.11 b/g/n.
- Giới hạn: Phụ thuộc vào chất lượng đường truyền Internet; chưa tích hợp giao thức truyền thông mạng cục bộ dự phòng (Fallback Offline Mesh) khi mất kết nối diện rộng.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Trước khi xây dựng giải pháp nền tảng IoT đám mây, các phương thức điều khiển không dây truyền thống đã được phân tích chi tiết nhằm làm rõ ưu, nhược điểm:
| Phương thức điều khiển |
Phạm vi hoạt động |
Độ trễ trung bình |
Tính hai chiều (Feedback) |
Nhược điểm cốt lõi |
| Hồng ngoại (IR 1838) |
Hẹp (< 8m), cần hướng thẳng |
< 50ms |
Không |
Bị cản bởi vật thể, góc quét hẹp, không truyền được qua tường |
| Sóng vô tuyến (RF 433MHz) |
Trung bình (20 - 50m) |
< 100ms |
Rất hạn chế |
Dễ bị nhiễu sóng điện từ, không có mã hóa bảo mật, khó quản lý trạng thái |
| Bluetooth (HC-05) |
Cận biên (10 - 20m) |
80 - 150ms |
Có |
Giới hạn khoảng cách vật lý, chỉ kết nối điểm-điểm (P2P), không truy cập từ xa |
| ESP8266 + Firebase (Đề tài) |
Toàn cầu (Internet/Cloud) |
120 - 250ms |
Toàn phần (Realtime Sync) |
Phụ thuộc vào hạ tầng mạng Wi-Fi và Cloud Server |
Ma trận ưu tiên yêu cầu người dùng (MoSCoW)
- Must Have (Bắt buộc có): Bật/tắt thiết bị tức thời qua Internet; phản hồi trạng thái hai chiều; xác thực người dùng an toàn; nút nhấn vật lý dự phòng; cấu hình Wi-Fi qua ứng dụng.
- Should Have (Nên có): Điều khiển bằng giọng nói; điều khiển góc quay Servo (mở khóa/cửa); tự động đồng bộ khi mất điện có lại.
- Could Have (Có thể mở rộng): Thêm/sửa/xóa tên thiết bị động trên giao diện App; lưu log lịch sử bật/tắt.
- Won't Have (Chưa triển khai giai đoạn này): Đo lường điện năng tiêu thụ chi tiết theo giờ (kWh); phân tích thói quen bằng học máy.
Thiết kế hệ thống
Danh mục công nghệ và phiên bản (Technology Stack)
- Phần cứng trung tâm: NodeMCU V3 (ESP8266-12E chip, vi xử lý Tensilica Xtensa 32-bit LX106 @ 80MHz, 4MB Flash memory).
- Môi trường phát triển firmware: Arduino IDE v2.1.1, C/C++ Sketch, thư viện
ESP8266WiFi.h v3.1.2, FirebaseESP8266.h v4.3.8.
- Phát triển ứng dụng Android: Android Studio Flamingo (2022.2.1), Java SDK 17, Android SDK API Level 33 (Target Android 13), Gradle Plugin 7.4.2.
- Dịch vụ Cloud Backend: Google Firebase Realtime Database REST API/Websocket Engine, Firebase Authentication.
- Cơ cấu chấp hành và cảm biến: Solid State Relay (SSR) 5V DC kích mức cao (High-Level Trigger), Servo TowerPro SG90 (xung PWM 50Hz), Module nút bấm KY-004 với điện trở kéo lên nội (Pull-up).
Thiết kế cấu trúc dữ liệu Firebase (JSON Schema)
Hệ thống sử dụng cấu trúc NoSQL phân cấp dạng cây JSON trên Realtime Database để tối ưu hóa lưu lượng và giảm thiểu độ trễ:
{
"users": {
"UID_USER_ABC123": {
"devices": {
"relay_light": {
"name": "Đèn Phòng Khách",
"status": true,
"gpio_pin": 12
},
"fan_speed": {
"name": "Quạt Trần",
"status": true,
"speed_level": 3
},
"servo_door": {
"name": "Cửa Chính",
"state": "CLOSED",
"angle": 0
}
},
"system_status": {
"last_seen": 1698218400,
"wifi_rssi": -65
}
}
}
}
{
"rules": {
"users": {
"$uid": {
".read": "auth != null && auth.uid == $uid",
".write": "auth != null && auth.uid == $uid"
}
}
}
}
Phương pháp nghiên cứu và phát triển (Methodology)
Dự án áp dụng mô hình phát triển phần cứng - phần mềm song song (Co-design Agile/Iterative):
| Giai đoạn |
Thời gian |
Nội dung công việc trọng tâm |
Sản phẩm bàn giao (Deliverables) |
| Phase 1: R&D & Schematic |
Tuần 1 - 3 |
Phân tích linh kiện, thiết kế sơ đồ nguyên lý mạch (Schematic) trên phần mềm CAD, định nghĩa kiến trúc Cloud. |
Sơ đồ khối, sơ đồ nguyên lý toàn mạch, Database Rules. |
| Phase 2: Firmware & Driver |
Tuần 4 - 6 |
Lập trình C/C++ cho ESP8266, thuật toán đọc trạng thái Firebase, xử lý ngắt nút bấm, lưu cấu hình EEPROM. |
Mã nguồn Firmware ESP8266, giao thức WebSocket Provisioning. |
| Phase 3: Android App Dev |
Tuần 7 - 9 |
Thiết kế UI/UX XML trên Android Studio, tích hợp Firebase SDK, lập trình nhận diện giọng nói Android SpeechRecognizer. |
Tệp tin cài đặt APK, source code ứng dụng Android. |
| Phase 4: Test & Optimize |
Tuần 10 - 12 |
Hàn ráp mạch thực tế, thử nghiệm đóng cắt tải thực, đo đạc độ trễ phản hồi, kiểm thử ứng suất và đóng gói tài liệu. |
Mạch phần cứng hoạt động ổn định, tài liệu khóa luận. |
Implementation và kết quả
Quy trình phát triển và thuật toán cốt lõi
1. Thuật toán lắng nghe và xử lý trạng thái trên ESP8266
Đoạn mã C/C++ dưới đây minh họa quá trình khởi tạo kết nối Wi-Fi, xác thực Firebase và xử lý luồng dữ liệu thời gian thực (Event-Action Triggers) trên NodeMCU ESP8266:
#include <ESP8266WiFi.h>
#include <FirebaseESP8266.h>
#include <Servo.h>
#define FIREBASE_HOST "khoaluan-iot-smarthome-default-rtdb.firebaseio.com"
#define FIREBASE_AUTH "AIzaSyD-SecretAuthTokenKeyHere_Example"
#define RELAY_LIGHT_PIN D6 // GPIO12
#define BUTTON_PIN D3 // GPIO0
FirebaseData fbdo;
FirebaseAuth auth;
FirebaseConfig config;
Servo doorServo;
void setup() {
Serial.begin(115200);
pinMode(RELAY_LIGHT_PIN, OUTPUT);
pinMode(BUTTON_PIN, INPUT_PULLUP);
doorServo.attach(D4); // GPIO2
WiFi.begin("Home_WiFi_SSID", "Password123");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
config.host = FIREBASE_HOST;
config.signer.tokens.legacy_token = FIREBASE_AUTH;
Firebase.begin(&config, &auth);
Firebase.reconnectWiFi(true);
}
void loop() {
// Lấy dữ liệu Realtime từ Firebase
if (Firebase.getBool(fbdo, "/devices/relay_light/status")) {
bool lightState = fbdo.boolData();
digitalWrite(RELAY_LIGHT_PIN, lightState ? HIGH : LOW);
}
// Xử lý nút bấm vật lý tại chỗ và đồng bộ ngược lên Cloud
if (digitalRead(BUTTON_PIN) == LOW) {
delay(50); // Chống rung phím (Debounce)
if (digitalRead(BUTTON_PIN) == LOW) {
bool currentState = digitalRead(RELAY_LIGHT_PIN);
bool newState = !currentState;
digitalWrite(RELAY_LIGHT_PIN, newState ? HIGH : LOW);
Firebase.setBool(fbdo, "/devices/relay_light/status", newState);
while(digitalRead(BUTTON_PIN) == LOW); // Chờ nhả phím
}
}
}
2. Lập trình Android đọc/ghi dữ liệu và điều khiển giọng nói
Đoạn mã Java trên Android Studio xử lý lắng nghe sự kiện đồng bộ và kích hoạt điều khiển bằng giọng nói:
public class DeviceControlActivity extends AppCompatActivity {
private DatabaseReference mDatabase;
private SwitchCompat switchLight;
private static final int SPEECH_REQUEST_CODE = 101;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_device_control);
switchLight = findViewById(R.id.switch_light);
mDatabase = FirebaseDatabase.getInstance().getReference("devices/relay_light");
// Lắng nghe dữ liệu thay đổi từ Firebase Realtime Database
mDatabase.child("status").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
if (snapshot.exists()) {
Boolean status = snapshot.getValue(Boolean.class);
if (status != null) {
switchLight.setChecked(status);
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
Log.e("Firebase_Error", error.getMessage());
}
});
// Xử lý sự kiện người dùng gạt switch trên UI
switchLight.setOnCheckedChangeListener((buttonView, isChecked) -> {
if (buttonView.isPressed()) { // Tránh loop khi Firebase cập nhật UI
mDatabase.child("status").setValue(isChecked);
}
});
}
// Xử lý Intent nhận diện giọng nói
public void startVoiceRecognition(View view) {
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");
startActivityForResult(intent, SPEECH_REQUEST_CODE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == SPEECH_REQUEST_CODE && resultCode == RESULT_OK && data != null) {
ArrayList<String> result = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
String command = result.get(0).toLowerCase();
if (command.contains("bật đèn")) {
mDatabase.child("status").setValue(true);
} else if (command.contains("tắt đèn")) {
mDatabase.child("status").setValue(false);
}
}
}
}
Kiểm thử và đánh giá hiệu năng
Hệ thống đã trải qua 500 lần thử nghiệm đóng cắt tải thực tế trong các điều kiện môi trường mạng khác nhau:
+-------------------------------------------------------------------------------+
| KẾT QUẢ ĐO ĐẠC HIỆU NĂNG THỰC TẾ |
+-----------------------------+-------------------+-----------------------------+
| Kịch bản kiểm thử | Tỷ lệ thành công | Độ trễ trung bình (Latency) |
+-----------------------------+-------------------+-----------------------------+
| 1. App Android (Mạng LAN) | 99.8% (499/500) | 85ms |
| 2. App Android (Mạng 4G/5G) | 99.2% (496/500) | 185ms |
| 3. Nút bấm vật lý (On-board)| 100.0% (500/500) | < 5ms (Phần cứng) |
| 4. Nhận diện giọng nói tiếng| 94.6% (473/500) | 420ms (Bao gồm Speech-to- |
| Việt (Môi trường yên tĩnh) | Text Processing) |
+-----------------------------+-------------------+-----------------------------+
+-------------------------------------------------------------------------------+
| ĐỘ TIÊU THỤ NĂNG LƯỢNG VÀ TÀI NGUYÊN |
+-----------------------------+-------------------+-----------------------------+
| Chỉ số | Mức tiêu thụ | Nhận xét |
+-----------------------------+-------------------+-----------------------------+
| Dòng điện hoạt động ESP8266 | 70mA - 120mA | Điện áp danh định 5V DC |
| RAM sử dụng trên ESP8266 | 28.4 KB / 81.9 KB | Tối ưu buffer bộ nhớ tốt |
| Flash Memory sử dụng | 342 KB / 1024 KB | Dư dả cho nâng cấp OTA |
| Thời gian cấu hình Wi-Fi | < 15 giây | Thông qua WebSocket AP mode |
+-----------------------------+-------------------+-----------------------------+
Đổi mới và đóng góp
- Cơ chế nạp cấu hình Wi-Fi động không cần sửa mã nguồn: Khắc phục nhược điểm "Hardcode" thông tin mạng Wi-Fi cố định trong các đồ án truyền thống. Khi thay đổi mạng, người dùng chỉ cần nhấn nút Reset cấu hình; ESP8266 sẽ phát ra một Soft-AP nội bộ, ứng dụng Android kết nối vào qua giao thức WebSocket để đẩy cấu hình SSID/Password mới và lưu vào chip EEPROM vĩnh viễn.
- Đồng bộ trạng thái 2 chiều tức thời (Full-Duplex Synchronization): Kết hợp hoàn hảo giữa giao diện số hóa và công tắc cơ. Khi người dùng bấm nút cơ học tại tường, NodeMCU phát hiện ngắt, cập nhật chân relay và đẩy cờ trạng thái lên Firebase trong 120ms, giúp giao diện App cập nhật ngay lập tức mà không xảy ra hiện tượng xung đột dữ liệu (Race Condition).
- Bảo mật phân quyền đa lớp: Ứng dụng tích hợp Firebase Auth cấp mã SHA-1 kết hợp Rule phân quyền thư mục riêng cho từng UID người dùng, ngăn chặn việc can thiệp trái phép vào thiết bị từ các thiết bị ngoài danh mục đăng ký.
Ứng dụng thực tế và triển khai
Kịch bản triển khai thực tế
- Chiếu sáng thông minh (Smart Lighting): Tự động hóa hệ thống đèn sân vườn, đèn phòng khách, hẹn giờ hoặc tắt từ xa qua 4G khi chủ nhà rời khỏi nhà.
- Kiểm soát cửa ra vào an toàn (Smart Door Access): Kết hợp động cơ Servo góc quay lớn để chốt/mở khóa cửa tự động qua mã lệnh điện thoại.
- Điều hòa không khí và thông gió: Điều chỉnh quạt hút, quạt thông gió theo các cấp tốc độ định trước nhằm tối ưu hóa nhiệt độ và tiết kiệm điện năng.
Hướng dẫn lắp đặt và triển khai hệ sinh thái
Sơ đồ chân kết nối NodeMCU V3:
- Chân D1 (GPIO5) ---> Tín hiệu điều khiển Relay Kênh 1 (Đèn)
- Chân D2 (GPIO4) ---> Tín hiệu điều khiển Relay Kênh 2 (Quạt)
- Chân D4 (GPIO2) ---> Chân xung tín hiệu PWM Động cơ Servo SG90
- Chân D3 (GPIO0) ---> Chân tín hiệu Nút bấm vật lý KY-004 (Active LOW)
- Chân Vin (5V) ---> Nguồn cấp dương từ Adapter 220VAC -> 5VDC 2A
- Chân GND ---> Nối đất chung toàn hệ thống
Quy trình xử lý sự cố (Troubleshooting Guide)
- Thiết bị không kết nối được Wi-Fi: Nhấn giữ nút Reset AP trong 5 giây để xóa bộ nhớ EEPROM, mở App Android chọn mục "Thiết lập kết nối", kết nối vào mạng
ESP8266_Config_AP và cấu hình lại.
- Relay không nhảy khi App báo trạng thái đổi: Kiểm tra tiếp điểm cấp nguồn 5V cho cuộn hút Relay; kiểm tra trạng thái kích mức logic (Active High/Low) trong firmware.
- Firebase trả lỗi
Permission Denied: Kiểm tra lại chuỗi khóa bí mật FIREBASE_AUTH hoặc cấu hình Rules trong mục Realtime Database Rules trên Firebase Console.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Băng tần mạng: ESP8266 chỉ hoạt động ở tần số Wi-Fi 2.4GHz, không thể kết nối các router chỉ phát băng tần 5GHz.
- Khả năng dự phòng mạng cục bộ: Khi mất hoàn toàn kết nối Internet ra cổng Gateway quốc tế, việc điều khiển qua App Android bị ngắt quãng (chỉ còn sử dụng được nút nhấn cơ học).
Hướng phát triển trong tương lai
- Nâng cấp phần cứng lên ESP32: Tận dụng vi xử lý Dual-core 240MHz, tích hợp chuẩn Bluetooth Low Energy (BLE 5.0) để hỗ trợ cấu hình đa kênh.
- Chuyển dịch sang giao thức MQTT: Ứng dụng Broker MQTT (như Mosquitto, EMQX) với chuẩn truyền nhận cực nhẹ để tối ưu băng thông khi mở rộng quy mô hàng nghìn thiết bị.
- Tích hợp cập nhật firmware từ xa (OTA - Over-The-Air): Hỗ trợ nạp và vá lỗi phần mềm cho vi điều khiển thông qua đường truyền mạng không dây mà không cần cắm cáp nạp.
- Bổ sung module đo công suất PZEM-004T: Giám sát điện áp, dòng điện, hệ số công suất và tính toán hóa đơn tiền điện tức thời về smartphone.
Đối tượng hưởng lợi
+-------------------+-----------------------------------------------------------+
| Nhóm đối tượng | Giá trị và lợi ích thực tiễn mang lại |
+-------------------+-----------------------------------------------------------+
| Sinh viên kỹ thuật| Nguồn tài liệu tham khảo chuẩn mực về lập trình nhúng C++,|
| & Nghiên cứu sinh | thiết kế mạch phần cứng, tích hợp Cloud Firebase và lập |
| | trình ứng dụng Android điều khiển qua giọng nói. |
+-------------------+-----------------------------------------------------------+
| Kỹ sư phần mềm & | Nắm vững kiến trúc đồng bộ dữ liệu hai chiều giữa vi điều |
| IoT Developers | khiển tài nguyên hạn chế và hệ thống Backend đám mây. |
+-------------------+-----------------------------------------------------------+
| Hộ gia đình & | Giải pháp nhà thông minh giá thành rẻ (dưới 350.000 VNĐ), |
| Doanh nghiệp vừa | tiết kiệm đến 25% chi phí điện năng hao phí hàng tháng. |
+-------------------+-----------------------------------------------------------+
Câu hỏi thường gặp
1. Yêu cầu phần cứng và phần mềm tối thiểu để tự triển khai dự án này là gì?
Về phần cứng, bạn cần 01 kit NodeMCU V3 ESP8266, 01 module Relay 4 kênh cách ly quang, 01 nguồn xung 5V/2A, và các nút bấm KY-004. Về phần mềm, máy tính cần cài đặt Arduino IDE (bản 2.x trở lên) tích hợp ESP8266 Board Package và Android Studio (bản Flamingo/Giraffe) chạy trên hệ điều hành Windows/Linux/macOS với RAM tối thiểu 8GB.
2. Khi nhà bị mất kết nối Internet, hệ thống có còn điều khiển được không?
Khi mất kết nối Internet, ứng dụng điện thoại sẽ tạm thời không thể gửi tín hiệu lên Firebase. Tuy nhiên, toàn bộ hệ thống nút bấm cơ học trên mạch vẫn hoạt động độc lập 100% nhờ chương trình đọc ngắt trực tiếp trên chân GPIO của ESP8266, đảm bảo sinh hoạt trong gia đình không bị gián đoạn.
3. Có thể mở rộng số lượng thiết bị điều khiển vượt quá số chân của ESP8266 không?
Hoàn toàn có thể. Do ESP8266 bị giới hạn số chân GPIO khả dụng, khi cần điều khiển từ 8 đến 16 thiết bị trở lên, bạn có thể mở rộng thông qua IC ghi dịch 74HC595 hoặc module mở rộng I2C PCF8574 chỉ với 2 chân tín hiệu (SDA/SCL).
4. Chi phí linh kiện và thời gian thu hồi vốn (ROI) của mô hình ước tính ra sao?
Tổng chi phí linh kiện phần cứng để chế tạo module điều khiển 4 thiết bị chỉ dao động khoảng 250.000 – 350.000 VNĐ (thấp hơn 70% so với các giải pháp thương mại đóng gói sẵn). Nhờ việc tự động hóa tắt các thiết bị công suất cao khi không sử dụng, một hộ gia đình có thể tiết kiệm từ 80.000 – 150.000 VNĐ tiền điện mỗi tháng, giúp thu hồi vốn đầu tư chỉ sau 3 - 4 tháng vận hành.
5. Dữ liệu tài khoản và quyền điều khiển thiết bị được bảo mật như thế nào?
Dự án áp dụng cơ chế bảo mật kép: Xác thực tài khoản người dùng qua Firebase Authentication (hỗ trợ mã hóa mật khẩu theo chuẩn SHA-256) và phân quyền truy cập thông qua Firebase Realtime Database Security Rules. Chỉ khi người dùng đăng nhập bằng đúng tài khoản sở hữu UID đã cấu hình thì mới có quyền đọc/ghi dữ liệu điều khiển của mạch đó.
Kết luận
Khóa luận tốt nghiệp "Nghiên cứu, thiết kế mạch và phát triển phần mềm điều khiển thiết bị điện từ xa bằng điện thoại" của nhóm tác giả Nguyễn Hữu Hùng và Hoàng Văn Đức đã hiện thực hóa thành công một hệ thống IoT hoàn chỉnh với tính ứng dụng thực tiễn vượt trội. Bằng cách kết hợp linh hoạt giữa vi điều khiển NodeMCU V3 ESP8266, cơ sở dữ liệu thời gian thực Google Firebase và ứng dụng di động Android native, dự án không chỉ giải quyết triệt để bài toán điều khiển và giám sát thiết bị điện từ xa mà còn mang lại trải nghiệm tiện ích qua công nghệ nhận diện giọng nói và cấu hình Wi-Fi động. Đây là nền tảng kỹ thuật vững chắc mở ra hướng đi đầy tiềm năng cho các ứng dụng nhà thông minh chi phí thấp, tối ưu năng lượng và có tính thương mại hóa cao trong tương lai.