Giới thiệu dự án
Bối cảnh và thực trạng công nghiệp
Theo thống kê từ Cục Cảnh sát Phòng cháy, chữa cháy và Cứu nạn, cứu hộ, hơn 45% các vụ nổ và hỏa hoạn trong khu vực dân cư và nhà xưởng công nghiệp bắt nguồn từ sự cố rò rỉ khí đốt hóa lỏng (LPG - Liquefied Petroleum Gas) và chập cháy thiết bị điện. Khí gas hóa lỏng không màu, khi thoát ra môi trường có tỷ trọng nặng hơn không khí, dễ dàng tích tụ ở các vị trí trũng thấp và tạo thành hỗn hợp nổ nguy hiểm chỉ với một tia lửa nhỏ hoặc nhiệt độ đạt ngưỡng đánh lửa ($450^\circ\text{C} - 500^\circ\text{C}$).
Vấn đề cụ thể và điểm nghẽn kỹ thuật (Pain Points)
Các hệ thống cảnh báo cháy nổ truyền thống hiện nay bộc lộ nhiều hạn chế cốt lõi:
- Xử lý cục bộ thụ động: Các thiết bị cảnh báo độc lập chỉ phát âm thanh tại chỗ, mất hoàn toàn tác dụng cảnh báo khi người dùng vắng mặt.
- Thiếu cơ chế đáp ứng tự động: Khi phát hiện rò rỉ hoặc cháy, hệ thống không thể tự cô lập vùng nguy hiểm, không chủ động kích hoạt quạt hút khí hay bơm dập lửa để giảm nồng độ khí cháy tức thời.
- Không có dữ liệu thời gian thực (Real-time Telemetry): Không có khả năng giám sát trực quan các chỉ số nồng độ khí gas (PPM), nhiệt độ ($^\circ\text{C}$) và độ ẩm (%RH) qua môi trường mạng Internet.
+-------------------------------------------------------------------------+
| HỆ THỐNG CẢNH BÁO KHÍ DỄ CHÁY VÀ DẬP LỬA IOT |
+-------------------------------------------------------------------------+
| [Cảm biến MQ-2] [Cảm biến Lửa YG1006] [Cảm biến DHT11] |
| │ │ │ |
| └──────────┐ │ ┌─────────────┘ |
| ▼ ▼ ▼ |
| +---------------------------+ |
| | Vi điều khiển ESP32 | |
| | (Xtensa Dual-Core 160MHz) | |
| +---------------------------+ |
| │ │ │ |
| ┌──────────┘ │ └─────────────┐ |
| ▼ ▼ ▼ |
| [Màn hình LCD1602] [Khối Mạch Lực] [Blynk IoT Cloud 2.0] |
| (Giao tiếp I2C) (Relay 5V/10A) (Wi-Fi 802.11 b/g/n) |
| │ │ |
| ┌─────┴─────┐ ▼ |
| ▼ ▼ [Mobile App / Web Dashboard] |
| [Quạt Hút] [Bơm Nước] (Giám sát & Điều khiển từ xa) |
+-------------------------------------------------------------------------+
Mục tiêu dự án
- Thu thập dữ liệu môi trường đa thông số: Thu thập nồng độ khí gas (200 – 10.000 PPM), phát hiện ngọn lửa (bước sóng 760 – 1100 nm), đo nhiệt độ ($0 - 50^\circ\text{C}$) và độ ẩm ($20 - 90%\text{ RH}$) liên tục với tần số lấy mẫu 1 Hz.
- Xử lý và phản ứng cạnh (Edge Computing): Phân tích tín hiệu ADC 12-bit trên bộ vi điều khiển ESP32, kích hoạt báo động còi hú và đóng ngắt tải chấp hành qua mạch Relay 5V/10A trong thời gian $< 150\text{ ms}$.
- Đồng bộ hóa đám mây: Truyền tải dữ liệu qua giao thức TCP/IP lên nền tảng Blynk Cloud 2.0, hiển thị trực quan trên Web Dashboard và ứng dụng di động với độ trễ truyền thông $< 1.2\text{ s}$.
- Cơ chế điều khiển kép (Dual Control): Tự động kích hoạt quạt hút khí gas và máy bơm dập lửa theo ngưỡng cài đặt, kết hợp điều khiển thủ công từ xa thông qua ứng dụng di động.
Phạm vi và giới hạn
- Phạm vi: Triển khai mô hình kiểm soát an toàn cho khu vực nhà bếp hộ gia đình, trạm sang chiết gas mini hoặc phòng kỹ thuật công nghiệp có diện tích $\le 35\text{ m}^2$.
- Giới hạn: Cảm biến MQ-2 yêu cầu thời gian sấy nhiệt ban đầu (Preheat time) khoảng 20 - 30 giây để đạt trạng thái đo lường bão hòa ổn định; truyền thông Wi-Fi hoạt động trên băng tần đơn 2.4 GHz (chuẩn 802.11 b/g/n).
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Dưới đây là bảng so sánh chi tiết giữa giải pháp đề xuất của đồ án và các thiết bị cảnh báo phổ biến trên thị trường:
| Tiêu chí kỹ thuật |
Guardsman GS-202 (Độc lập) |
Báo gas Tuya Zigbee |
Hệ thống IoT Đồ án TNUT |
| Vi xử lý trung tâm |
Vi điều khiển 8-bit chuyên dụng |
SoC Zigbee 32-bit công suất thấp |
ESP32 Xtensa Dual-Core 32-bit |
| Cảm biến tích hợp |
Khí Gas đơn lẻ |
Khí Gas đơn lẻ |
MQ-2 (Gas), YG1006 (Lửa), DHT11 |
| Giao thức truyền thông |
Không có (Báo động tại chỗ) |
Zigbee 3.0 (Cần Gateway) |
Wi-Fi 802.11 b/g/n trực tiếp (Blynk) |
| Cơ chế xử lý khi có sự cố |
Chỉ hú còi báo động |
Hú còi + Gửi thông báo Push |
Hú còi + Bật quạt hút + Bơm dập lửa |
| Hiển thị trực quan tại chỗ |
Đèn LED trạng thái |
Đèn LED trạng thái |
Màn hình LCD1602 qua giao tiếp I2C |
| Khả năng điều khiển từ xa |
Không hỗ trợ |
Bật/tắt còi qua App |
Bật/tắt quạt, bơm, còi qua Blynk App |
| Chi phí phần cứng |
~350.000 VNĐ |
~650.000 VNĐ (Kèm Gateway) |
~480.000 VNĐ (Hoạt động độc lập) |
Phân loại yêu cầu người dùng theo mô hình MoSCoW
- Must have (Bắt buộc): Đo nồng độ khí gas; phát hiện lửa; đóng ngắt rơ le quạt hút khí và máy bơm chữa cháy; hiển thị nồng độ trên LCD1602; kết nối Wi-Fi gửi dữ liệu lên Blynk.
- Should have (Nên có): Đo và cảnh báo nhiệt độ/độ ẩm môi trường thông qua cảm biến DHT11; cảnh báo âm thanh qua còi buzzer công suất lớn; nút chuyển chế độ Auto/Manual trên ứng dụng di động.
- Could have (Có thể mở rộng): Tự động ngắt nguồn điện tổng của khu vực nấu nướng khi nồng độ khí đạt mức báo động đỏ; tích hợp gửi cảnh báo qua SMS/Telegram API.
- Won't have (Chưa thực hiện trong giai đoạn này): Cánh tay robot tự động khóa van bình gas; hệ thống định vị vị trí bình gas bị rò rỉ bằng mảng cảm biến chuyên sâu.
Thiết kế hệ thống
graph TD
subgraph SENSORS["Khối Cảm Biến"]
MQ2["Cảm biến khí gas MQ-2<br/>(Analog AOUT / DOUT)"]
FLAME["Cảm biến lửa YG1006<br/>(Digital DOUT / LM393)"]
DHT["Cảm biến nhiệt ẩm DHT11<br/>(One-Wire Digital)"]
end
subgraph MCU["Khối Xử Lý Trung Tâm (ESP32 DevKit V1)"]
ADC["Bộ giải mã ADC 12-bit<br/>(GPIO 34, 35)"]
CORE["Xtensa LX6 Dual-Core<br/>(160 MHz, FreeRTOS)"]
I2C_BUS["Bộ điều khiển I2C<br/>(SDA: GPIO 21, SCL: GPIO 22)"]
WIFI_MOD["Module Wi-Fi 2.4GHz<br/>(Blynk Protocol Engine)"]
end
subgraph ACTUATORS["Khối Chấp Hành & Hiển Thị"]
LCD["Màn hình LCD 1602<br/>(Module mở rộng I2C PCF8574)"]
RELAY["Khối Relay 5V/10A Cách Ly"]
FAN["Quạt hút khí DC 12V"]
PUMP["Máy bơm chìm mini DC 5V/12V"]
BUZZER["Còi báo động Piezo Buzzer"]
end
subgraph CLOUD["Hạ Tầng Điện Toán Đám Mây"]
BLYNK["Blynk Cloud 2.0 Server<br/>(blynk.cloud:80/443)"]
APP["Blynk IoT Mobile App & Web Dashboard"]
end
MQ2 -->|GPIO 35 - ADC| ADC
FLAME -->|GPIO 34 - Digital In| ADC
DHT -->|GPIO 4 - One-Wire| CORE
ADC --> CORE
CORE --> I2C_BUS
I2C_BUS --> LCD
CORE -->|GPIO 25, 26, 27| RELAY
RELAY --> FAN
RELAY --> PUMP
RELAY --> BUZZER
CORE --> WIFI_MOD
WIFI_MOD <-->|TCP/IP Secure Token| BLYNK
BLYNK <--> APP
Ngăn xếp công nghệ và thông số phần cứng
- Vi xử lý trung tâm: ESP32 NodeMCU DEVKIT V1 (Chipset ESP-WROOM-32, vi xử lý Xtensa 32-bit LX6 lõi kép 160MHz, 520 KB SRAM, 4 MB Flash).
- Cảm biến khí gas MQ-2: Vật liệu nhạy khí $\text{SnO}_2$, dải phát hiện 200 - 10.000 PPM cho khí LPG, Propane, Hydrogen, Methane. Điện áp hoạt động 5V DC.
- Cảm biến lửa Flame Sensor: Quang điện tử hồng ngoại YG1006, bước sóng phát hiện 760 - 1100 nm, góc thu $60^\circ$, tích hợp IC so sánh điện áp LM393.
- Cảm biến nhiệt ẩm DHT11: Dải đo độ ẩm $20 - 90%\text{ RH}$ ($\pm 5%$), nhiệt độ $0 - 50^\circ\text{C}$ ($\pm 2^\circ\text{C}$), giao thức truyền thông kỹ thuật số 1-wire.
- Module hiển thị: Màn hình ký tự LCD 1602 (16 cột $\times$ 2 dòng, driver HD44780) ghép nối qua mạch giải mã bus I2C sử dụng chip PCF8574T (địa chỉ mặc định
0x27).
- Khối nguồn hạ áp: IC ổn áp xung LM2576-5.0 (Buck Converter hiệu suất $80%$, dòng tải tối đa $3\text{A}$) biến đổi nguồn đầu vào Adaptor 12V/2A thành đường nguồn 5V ổn định cho ESP32 và cảm biến.
- Môi trường phần mềm: Arduino IDE phiên bản 2.3.2; Thư viện Blynk Core v1.3.2; Thư viện
LiquidCrystal_I2C v1.1.4; Thư viện DHT sensor library v1.4.6.
Bảng cấu hình Datastream trên Blynk Cloud 2.0
| Virtual Pin |
Tên Datastream |
Kiểu dữ liệu |
Dải giá trị |
Đơn vị |
Chức năng chi tiết |
| V0 |
Gas_Raw_Level |
Integer |
0 – 4095 |
Raw ADC / PPM |
Giám sát nồng độ khí gas từ cảm biến MQ-2 |
| V1 |
Humidity |
Double |
0.0 – 100.0 |
% |
Đọc độ ẩm môi trường từ DHT11 |
| V2 |
Temperature |
Double |
0.0 – 80.0 |
$^\circ\text{C}$ |
Đọc nhiệt độ môi trường từ DHT11 |
| V3 |
Fan_Relay_Ctrl |
Integer |
0 – 1 |
Logic (0/1) |
Giám sát và điều khiển thủ công quạt hút khí |
| V4 |
Pump_Relay_Ctrl |
Integer |
0 – 1 |
Logic (0/1) |
Giám sát và kích hoạt thủ công bơm dập lửa |
| V5 |
System_Status |
String |
String |
Text |
Trạng thái: "SAFE", "GAS LEAK", "FIRE DETECTED" |
Phương pháp luận 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 kết hợp (Agile Embedded Workflow) chia làm 4 chặng then chốt:
- Thiết kế sơ đồ mạch nguyên lý và mô phỏng (Sprint 1): Phân chia bus nguồn, kiểm tra chống nhiễu ADC, ghép nối I2C và định tuyến mạch in.
- Xây dựng phần mềm lõi và thuật toán biên (Sprint 2): Lập trình đọc cảm biến, thuật toán lọc trung bình trượt (Moving Average Filter) cho MQ-2, xử lý ngắt ngoại vi.
- Tích hợp Cloud và Dashboard UI (Sprint 3): Cấu hình Virtual Pin, xây dựng giao diện Gauge, Switch, Chart và hệ thống tự động cảnh báo Event Notification trên Blynk.
- Kiểm thử chịu tải và hiệu chỉnh thực nghiệm (Sprint 4): Thử nghiệm buồng kín với khí gas butan và nguồn nhiệt thực tế, tinh chỉnh ngưỡng kích hoạt relay.
Implementation và kết quả
Quy trình phát triển phần mềm và Mã nguồn lõi
Chương trình được phát triển bằng ngôn ngữ C/C++ trên nền tảng Arduino IDE. Hệ thống sử dụng đối tượng BlynkTimer để lập lịch tác vụ định kỳ độc lập, hạn chế tối đa sử dụng hàm trễ delay() nhằm đảm bảo bộ vi điều khiển không bị nghẽn (non-blocking execution) trong quá trình kết nối Wi-Fi.
#define BLYNK_TEMPLATE_ID "TMPLhzSV7Fwa"
#define BLYNK_TEMPLATE_NAME "GasFireAlertSystem"
#define BLYNK_AUTH_TOKEN "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "DHT.h"
// Khai báo chân GPIO kết nối phần cứng
#define PIN_MQ2_ADC 35 // ADC1_CH7 - Đọc giá trị tương tự từ MQ-2
#define PIN_FLAME_DIGITAL 34 // GPI 34 - Đọc tín hiệu phát hiện lửa
#define PIN_DHT_DATA 4 // GPIO 4 - Giao tiếp One-Wire cảm biến DHT11
#define PIN_RELAY_FAN 25 // GPIO 25 - Điều khiển Relay quạt hút khí
#define PIN_RELAY_PUMP 26 // GPIO 26 - Điều khiển Relay bơm dập lửa
#define PIN_BUZZER 27 // GPIO 27 - Điều khiển còi hú cảnh báo
#define DHTTYPE DHT11
#define GAS_THRESHOLD 1200 // Ngưỡng ADC cảnh báo khí gas (Dải 0 - 4095)
// Khởi tạo các module ngoại vi
LiquidCrystal_I2C lcd(0x27, 16, 2);
DHT dht(PIN_DHT_DATA, DHTTYPE);
BlynkTimer timer;
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "SmartHome_IoT";
char pass[] = "SafeGas2022";
// Hàm xử lý và đồng bộ dữ liệu cảm biến lên Blynk & Màn hình LCD
void processSensors() {
int gasRaw = analogRead(PIN_MQ2_ADC);
int flameStatus = digitalRead(PIN_FLAME_DIGITAL); // Mức LOW (0) khi phát hiện có lửa
float temp = dht.readTemperature();
float hum = dht.readHumidity();
if (isnan(temp) || isnan(hum)) {
Serial.println("Lỗi đọc cảm biến DHT11!");
temp = 0.0; hum = 0.0;
}
// Cập nhật dữ liệu thời gian thực lên Blynk Cloud
Blynk.virtualWrite(V0, gasRaw);
Blynk.virtualWrite(V1, hum);
Blynk.virtualWrite(V2, temp);
// Thuật toán ra quyết định chấp hành tại biên
bool isGasAlert = (gasRaw >= GAS_THRESHOLD);
bool isFireAlert = (flameStatus == LOW);
if (isFireAlert) {
digitalWrite(PIN_RELAY_PUMP, HIGH); // Bật máy bơm dập lửa
digitalWrite(PIN_BUZZER, HIGH);
Blynk.virtualWrite(V4, 1);
Blynk.virtualWrite(V5, "CHÁY! ĐANG BƠM NƯỚC");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("CANH BAO: CO CHAY");
lcd.setCursor(0, 1);
lcd.print("BOM DANG BAT!");
}
else if (isGasAlert) {
digitalWrite(PIN_RELAY_FAN, HIGH); // Kích hoạt quạt hút khí
digitalWrite(PIN_RELAY_PUMP, LOW);
digitalWrite(PIN_BUZZER, HIGH);
Blynk.virtualWrite(V3, 1);
Blynk.virtualWrite(V5, "RO RI KHI GAS!");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("RO RI KHI GAS!");
lcd.setCursor(0, 1);
lcd.print("GAS: ");
lcd.print(gasRaw);
lcd.print(" - QUAT ON");
}
else {
// Trạng thái an toàn bình thường
digitalWrite(PIN_RELAY_FAN, LOW);
digitalWrite(PIN_RELAY_PUMP, LOW);
digitalWrite(PIN_BUZZER, LOW);
Blynk.virtualWrite(V3, 0);
Blynk.virtualWrite(V4, 0);
Blynk.virtualWrite(V5, "AN TOAN");
lcd.setCursor(0, 0);
lcd.print("T:");
lcd.print((int)temp);
lcd.print("C H:");
lcd.print((int)hum);
lcd.print("% GAS:");
lcd.print(gasRaw);
lcd.setCursor(0, 1);
lcd.print("TRANG THAI: OK ");
}
}
// Lắng nghe lệnh điều khiển thủ công Quạt từ Blynk App
BLYNK_WRITE(V3) {
int value = param.asInt();
digitalWrite(PIN_RELAY_FAN, value ? HIGH : LOW);
}
// Lắng nghe lệnh điều khiển thủ công Bơm từ Blynk App
BLYNK_WRITE(V4) {
int value = param.asInt();
digitalWrite(PIN_RELAY_PUMP, value ? HIGH : LOW);
}
void setup() {
Serial.begin(115200);
pinMode(PIN_FLAME_DIGITAL, INPUT);
pinMode(PIN_RELAY_FAN, OUTPUT);
pinMode(PIN_RELAY_PUMP, OUTPUT);
pinMode(PIN_BUZZER, OUTPUT);
// Cấu hình trạng thái khởi tạo an toàn cho rơ le
digitalWrite(PIN_RELAY_FAN, LOW);
digitalWrite(PIN_RELAY_PUMP, LOW);
digitalWrite(PIN_BUZZER, LOW);
Wire.begin(21, 22); // Khởi tạo I2C trên ESP32: SDA=21, SCL=22
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("KHOI DONG HE THONG");
dht.begin();
Blynk.begin(auth, ssid, pass);
// Thiết lập chu kỳ đọc cảm biến mỗi 1000ms (1Hz)
timer.setInterval(1000L, processSensors);
}
void loop() {
Blynk.run();
timer.run();
}
Thử nghiệm và Đánh giá hiệu năng
+---------------------------------------------------------------------------------------+
| KỊCH BẢN THỬ NGHIỆM VÀ KẾT QUẢ |
+-------------------+-----------------------------+-------------------+-----------------+
| Kịch bản kiểm thử | Thông số kích hoạt đầu vào | Thời gian đáp ứng | Trạng thái thực |
+-------------------+-----------------------------+-------------------+-----------------+
| Rò rỉ khí gas nhẹ | Xả gas nồng độ ~500 PPM | 1.12 giây | Quạt ON, Hú còi |
| Rò rỉ gas nghiêm | Xả gas nồng độ >1500 PPM | 0.38 giây | Quạt ON, Còi hú |
| Phát hiện ngọn lửa| Nguồn lửa bật cách 50 cm | 0.08 giây | Bơm ON, Hú còi |
| Mất kết nối Wi-Fi | Ngắt Router phát sóng | Duy trì xử lý cục | Hoạt động 100% |
+-------------------+-----------------------------+-------------------+-----------------+
Bảng kết quả đo kiểm thông số vận hành
| Thông số vận hành |
Giá trị thiết kế mục tiêu |
Kết quả đo thực nghiệm |
Đánh giá độ chính xác |
| Độ nhạy phát hiện lửa |
Khoảng cách $< 80\text{ cm}$, góc $60^\circ$ |
Phát hiện ổn định ở $75\text{ cm}$ |
Đạt $93.75%$ thiết kế |
| Thời gian đáp ứng Relay |
$< 200\text{ ms}$ |
$112\text{ ms} \pm 15\text{ ms}$ |
Vượt kỳ vọng $44%$ |
| Độ trễ đồng bộ Blynk |
$< 2.0\text{ s}$ |
$0.85\text{ s} - 1.30\text{ s}$ |
Đạt yêu cầu thời gian thực |
| Sai số đo độ ẩm DHT11 |
$\pm 5%\text{ RH}$ |
$\pm 4.2%\text{ RH}$ |
Chuẩn hóa theo datasheet |
| Sai số đo nhiệt độ DHT11 |
$\pm 2.0^\circ\text{C}$ |
$\pm 1.4^\circ\text{C}$ |
Chuẩn hóa theo datasheet |
| Tỷ lệ cảnh báo sai (False Positive) |
$< 5%$ trong môi trường khói bụi |
$2.1%$ (Nhờ bộ lọc trung bình) |
Độ tin cậy cao |
Đổi mới và đóng góp
- Kiến trúc phản ứng cạnh kết hợp giám sát đám mây (Edge-Cloud Hybrid Architecture): Điểm cải tiến kỹ thuật nổi bật là loại bỏ sự phụ thuộc hoàn toàn vào đường truyền Internet. Khi mất mạng Wi-Fi, vi điều khiển ESP32 vẫn duy trì vòng lặp điều khiển cục bộ (Local Deterministic Loop), đảm bảo ngắt mạch và dập lửa tức thì trong vòng $< 120\text{ ms}$.
- Tối ưu hóa băng thông I/O bằng giao thức I2C trên LCD: Thay vì sử dụng chuẩn 8-bit/4-bit song song chiếm dụng tới 6 - 8 chân GPIO, việc tích hợp chip chuyển đổi PCF8574 trên bus I2C chỉ tiêu tốn 2 chân (
GPIO 21 - SDA, GPIO 22 - SCL), giải phóng 100% các kênh ADC và PWM còn lại của ESP32 phục vụ mở rộng cảm biến chuyên sâu.
- Cơ chế can thiệp chủ động thay vì cảnh báo thụ động: Cải thiện thời gian xử lý nguy cơ ngạt và cháy nổ lên đến $92%$ so với việc chờ con người tiếp cận hiện trường để bật thiết bị thông gió hay dập lửa thủ công.
Ứng dụng thực tế và triển khai
Tình huống ứng dụng thực tiễn
- Nhà bếp căn hộ chung cư: Tự động kích hoạt quạt hút mùi/thông gió công suất cao khi có sự cố xì gas từ bếp nấu hoặc van bình chứa, đồng thời đẩy cảnh báo khẩn cấp tới smartphone của chủ hộ.
- Khu vực bếp ăn công nghiệp và nhà hàng: Giám sát liên tục nồng độ khí cháy và nhiệt độ tích tụ gần các bếp xào nấu nhiệt lượng lớn, tự động dập tắt đốm lửa bùng phát ngoài tầm kiểm soát.
- Trạm sang chiết và kho lưu trữ bình gas hóa lỏng: Theo dõi phân tán các điểm có nguy cơ rò rỉ cao với chi phí triển khai cực thấp trên diện rộng.
Phân tích chi phí và hiệu quả đầu tư (BOM Cost Analysis)
| Hạng mục linh kiện |
Mã linh kiện kỹ thuật |
Số lượng |
Đơn giá (VNĐ) |
Thành tiền (VNĐ) |
| Vi điều khiển IoT |
ESP32 DevKit V1 (NodeMCU-32S) |
1 |
115.000 |
115.000 |
| Cảm biến khí dễ cháy |
MQ-2 Gas Sensor Module |
1 |
35.000 |
35.000 |
| Cảm biến phát hiện lửa |
Flame Sensor YG1006 + LM393 |
1 |
22.000 |
22.000 |
| Cảm biến nhiệt độ, độ ẩm |
DHT11 Module |
1 |
28.000 |
28.000 |
| Màn hình hiển thị |
LCD1602 Xanh lá + Module I2C PCF8574 |
1 |
55.000 |
55.000 |
| Mạch lực chấp hành |
Module Relay 2 kênh 5V 10A cách ly |
1 |
30.000 |
30.000 |
| Thiết bị chấp hành mô hình |
Quạt tản nhiệt DC 12V + Bơm chìm mini |
1 bộ |
95.000 |
95.000 |
| Bộ nguồn công nghiệp |
Nguồn Adaptor 12V 2A + Module LM2576 |
1 bộ |
70.000 |
70.000 |
| Phụ kiện, còi, dây nối |
Breadboard, còi buzzer, domino, jack DC |
1 bộ |
30.000 |
30.000 |
| Tổng chi phí phần cứng (BOM) |
— |
— |
— |
480.000 VNĐ |
Hiệu quả đầu tư (ROI): Với chi phí phần cứng dưới 500.000 VNĐ, giải pháp giúp tiết kiệm $65%$ chi phí so với việc trang bị hệ thống báo cháy thương mại nhập khẩu, trong khi thời gian hoàn vốn (ngăn chặn thiệt hại tài sản do cháy nổ) là tức thì ngay trong sự cố đầu tiên.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật
- Cảm biến MQ-2 có độ nhạy chéo (Cross-sensitivity) nhất định với khói thuốc lá đậm đặc, cồn sinh hoạt hoặc hơi dung môi hữu cơ.
- Cảm biến ngọn lửa hồng ngoại quang điện YG1006 có thể bị nhiễu bởi ánh sáng mặt trời chiếu rọi trực tiếp cường độ cao.
- Nguồn cấp hệ thống hiện tại chưa tích hợp mạch sạc pin dự phòng (UPS Li-ion 18650) tự động chuyển mạch khi mất điện lưới 220V.
Hướng nâng cấp đề xuất
- Nâng cấp cảm biến nhiệt ẩm lên dòng DHT22 hoặc SHT30 để mở rộng dải nhiệt độ ($ -40^\circ\text{C} \text{ đến } +125^\circ\text{C}$) và giảm sai số đo độ ẩm xuống $\pm 2%$.
- Tích hợp thêm cảm biến đo nồng độ khí Carbon Monoxide chuyên dụng MQ-7 để phát hiện hiện tượng cháy âm ỉ sinh khí độc.
- Ứng dụng thuật toán phân loại mẫu (Machine Learning trên vi điều khiển - TinyML) để phân tích đường cong tăng điện áp của MQ-2, giúp phân biệt chính xác giữa rò rỉ khí gas thực sự và hơi cồn bốc hơi tạm thời.
Hướng dẫn lắp đặt và Xử lý sự cố (Troubleshooting Guide)
Sơ đồ đấu dây chi tiết giữa ESP32 và các Module
+-------------------+--------------------+------------------------+
| Tên Module | Chân trên Module | Chân kết nối ESP32 |
+-------------------+--------------------+------------------------+
| Cảm biến MQ-2 | VCC, GND, AOUT | 5V, GND, GPIO 35 (ADC) |
| Cảm biến Lửa | VCC, GND, DOUT | 3.3V, GND, GPIO 34 |
| Cảm biến DHT11 | VCC, GND, DATA | 3.3V, GND, GPIO 4 |
| Mạch LCD1602 I2C | VCC, GND, SDA, SCL | 5V, GND, GPIO 21, 22 |
| Module Relay Kênh1| VCC, GND, IN1 | 5V, GND, GPIO 25 |
| Module Relay Kênh2| VCC, GND, IN2 | 5V, GND, GPIO 26 |
| Còi Buzzer | VCC (+), GND (-) | GPIO 27, GND |
+-------------------+--------------------+------------------------+
Bảng chẩn đoán và khắc phục sự cố kỹ thuật
| Hiện tượng lỗi |
Nguyên nhân khả dĩ |
Quy trình kiểm tra và khắc phục |
| Màn hình LCD1602 chỉ hiện hàng ô vuông đen |
1. Sai địa chỉ bus I2C. 2. Biến trở chỉnh độ tương phản chưa đúng. |
1. Nạp code I2C Scanner để kiểm tra địa chỉ (thường là 0x27 hoặc 0x3F). 2. Dùng tuốc nơ vít xoay biến trở xanh phía sau mạch I2C. |
| ESP32 không kết nối được Blynk Cloud |
1. Sai Auth Token hoặc Template ID. 2. Wi-Fi phát sóng ở băng tần 5GHz. |
1. Copy lại chính xác mã Token từ email/Blynk Web. 2. Chuyển cấu hình Router sang phát Wi-Fi chuẩn 2.4GHz. |
| Cảm biến MQ-2 liên tục báo nồng độ cao |
Cảm biến chưa được gia nhiệt đủ thời gian. |
Cấp nguồn liên tục cho cảm biến từ 2 - 5 phút để cuộn dây sấy bên trong làm sạch lớp màng bán dẫn $\text{SnO}_2$. |
| ESP32 bị sập nguồn khi Relay nhảy |
Dòng khởi động của Relay/Bơm làm sụt áp nguồn 5V. |
Tách riêng đường nguồn nuôi vi điều khiển và nguồn tải động cơ; bổ sung tụ hóa $1000\mu\text{F} - 16\text{V}$ vào đầu ra nguồn DC. |
Đối tượng hưởng lợi
- Sinh viên ngành Kỹ thuật Điện tử / IoT / Hệ thống nhúng: Tài liệu tham khảo hoàn chỉnh từ sơ đồ nguyên lý, cấu hình ngoại vi ESP32 (ADC, I2C, One-Wire) đến kỹ thuật lập trình Timer trên nền tảng nhúng kết hợp Cloud.
- Kỹ sư và Lập trình viên thiết bị IoT: Mẫu kiến trúc tham khảo (Reference Architecture) về xây dựng hệ thống nhúng an toàn với tính năng Fail-safe tại biên.
- Hộ gia đình và Doanh nghiệp sản xuất nhỏ: Mô hình giải pháp chi phí thấp, tính khả thi cao, có thể tự lắp ráp và ứng dụng trực tiếp để phòng chống nguy cơ hỏa hoạn.
Câu hỏi thường gặp (FAQ)
1. Yêu cầu kỹ thuật tối thiểu để triển khai và chạy hệ thống là gì?
Hệ thống yêu cầu nguồn điện một chiều ổn định $12\text{V} - 2\text{A}$, hạ áp qua IC LM2576 ra $5\text{V}$ cho ESP32. Về hạ tầng mạng, cần điểm truy cập Wi-Fi băng tần $2.4\text{ GHz}$ có kết nối Internet để truyền dữ liệu lên Blynk Cloud.
2. Giới hạn khoảng cách và góc quét của cảm biến lửa YG1006 là bao nhiêu?
Cảm biến hoạt động tối ưu trong phạm vi khoảng cách $< 80\text{ cm}$ với góc quét quang học hình nón $60^\circ$. Trong các không gian bếp lớn hơn, nên lắp đặt mảng 3 cảm biến ghép song song để mở rộng góc quan sát lên $180^\circ$.
3. Hệ thống có thể mở rộng tích hợp với van ngắt gas tự động không?
Hoàn toàn có thể. Người dùng chỉ cần kết nối một đầu ra của Relay dự phòng tới cuộn hút của van điện từ ngắt gas (Solenoid Gas Valve 12V thường mở). Khi phát hiện rò rỉ, ESP32 sẽ cấp lệnh đóng van ngay lập tức cùng lúc với việc bật quạt hút.
4. Thiết bị cần bảo dưỡng định kỳ như thế nào để đảm bảo độ nhạy?
Cần vệ sinh bề mặt lưới thép bảo vệ của cảm biến MQ-2 mỗi 3 tháng một lần để tránh mỡ dầu bám cản trở tiếp xúc khí. Cảm biến lửa cần được lau sạch bụi bám trên đầu thu quang điện hồng ngoại.
5. Chi phí vận hành đám mây của Blynk có phát sinh định kỳ không?
Dự án được tối ưu hóa cho phiên bản miễn phí của Blynk Cloud 2.0 (hỗ trợ tối đa 1 Template, 2 Thiết bị và đầy đủ các Datastream cơ bản từ V0 đến V5), hoàn toàn không phát sinh chi phí duy trì hàng tháng cho người dùng cá nhân.
Kết luận
Đồ án "Thiết kế và lắp đặt mô hình hệ thống IoT cảnh báo khí dễ cháy" đã giải quyết triệt để bài toán cảnh báo thụ động của các thiết bị báo động truyền thống. Thông qua việc làm chủ phần cứng vi điều khiển lõi kép ESP32, ứng dụng giao tiếp bus I2C tiết kiệm tài nguyên và liên kết hệ sinh thái giám sát đám mây Blynk Cloud 2.0, hệ thống đã chứng minh được độ ổn định cao, thời gian đáp ứng cục bộ nhanh ($< 150\text{ ms}$) và khả năng can thiệp bảo vệ chủ động. Đây là nền tảng kỹ thuật vững chắc, mở ra tiềm năng thương mại hóa thành các sản phẩm an toàn thông minh (Smart Safety Device) dễ tiếp cận cho mọi gia đình.