Hệ thống cảnh báo cháy IoT cho tòa chung cư là giải pháp công nghệ tiên tiến giúp phát hiện sớm và cảnh báo kịp thời các nguy cơ hỏa hoạn, đảm bảo an toàn cho cư dân.
Kiến trúc tổng quan hệ thống
Mô hình 3 tầng IoT
Hệ thống được thiết kế theo kiến trúc IoT chuẩn gồm 3 tầng chính:
Tầng cảm biến (Perception Layer):
-
Các node cảm biến phân bố khắp tòa nhà
-
Thu thập dữ liệu môi trường liên tục 24/7
-
Phát hiện sớm các dấu hiệu cháy như khói, nhiệt độ, lửa
Tầng mạng (Network Layer):
-
Kết nối WiFi/LoRa giữa các node với gateway trung tâm
-
Truyền dữ liệu thời gian thực với độ trễ dưới 100ms
-
Đảm bảo tính ổn định và dự phòng kết nối
Tầng ứng dụng (Application Layer):
-
Giao diện web/mobile quản lý hệ thống
-
Tích hợp với Firebase/ThingSpeak
-
Gửi cảnh báo đa kênh (SMS, email, push notification)
Thiết kế phần cứng
Thành phần cốt lõi
Cảm biến | Chức năng | Điện áp hoạt động | Khoảng cách | Giá tham khảo |
---|---|---|---|---|
Cảm biến khói MQ-2 | Phát hiện khói và khí gas | 5V | Phòng 20-30m² | 50,000-80,000đ |
Cảm biến nhiệt độ DHT11/DHT22 | Đo nhiệt độ và độ ẩm | 3.3-5V | Tại điểm | 30,000-50,000đ |
Cảm biến lửa (Flame Sensor) | Phát hiện ánh sáng lửa | 3.3-5V | 0-80cm | 15,000-25,000đ |
Cảm biến khí gas MQ-6/MQ-135 | Phát hiện rò rỉ khí gas | 5V | Phòng 20-30m² | 60,000-100,000đ |
Vi điều khiển khuyến nghị
Vi điều khiển | Tính năng nổi bật | GPIO | RAM/Flash | Giá tham khảo |
---|---|---|---|---|
ESP32 | WiFi + Bluetooth tích hợp | 34 chân | 520KB/4MB | 150,000-200,000đ |
Arduino Uno R3 | Dễ lập trình cho người mới | 14 chân digital | 2KB/32KB | 300,000-400,000đ |
NodeMCU ESP8266 | WiFi tích hợp, giá rẻ | 17 chân | 80KB/4MB | 80,000-120,000đ |
ESP32 được khuyến nghị do tích hợp sẵn WiFi, Bluetooth, có nhiều GPIO và hiệu năng cao.
Thiết bị báo động
Thiết bị | Mục đích | Thông số | Giá tham khảo |
---|---|---|---|
Còi báo động | Phát âm thanh cảnh báo | 90-120dB | 30,000-50,000đ |
Đèn LED cảnh báo | Báo hiệu bằng ánh sáng | 5mm, đỏ/xanh | 5,000-10,000đ |
Màn hình LCD 16×2 | Hiển thị thông tin | 16 ký tự x 2 dòng | 40,000-60,000đ |
Relay 2/4 kênh | Điều khiển thiết bị ngoại vi | 250V AC/10A | 50,000-80,000đ |
Sơ đồ kết nối phần cứng
Kết nối ESP32 với các cảm biến:
ESP32 MQ-2 Smoke SensorGPIO 35 -> A0 (Analog Output)
5V -> VCC
GND -> GND
ESP32 DHT11 TemperatureGPIO 15 -> Data Pin
3.3V -> VCC
GND -> GND
ESP32 Flame Sensor
GPIO 2 -> Digital Output
5V -> VCC
GND -> GND
ESP32 Relay Module
GPIO 4 -> IN1 (Relay 1)
GPIO 16 -> IN2 (Relay 2)
5V -> VCC
GND -> GND
Lập trình hệ thống
Code mẫu cho ESP32 (Arduino IDE):
#define BLYNK_TEMPLATE_ID “YOUR_TEMPLATE_ID”
#define BLYNK_TEMPLATE_NAME “Fire_Alarm_System”
#define BLYNK_AUTH_TOKEN “YOUR_AUTH_TOKEN”
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>
#include <FirebaseESP32.h>
// Định nghĩa chân kết nối
#define DHT_PIN 15
#define DHT_TYPE DHT11
#define MQ2_PIN 35
#define FLAME_PIN 2
#define BUZZER_PIN 4
#define LED_PIN 16
// Thông số WiFi
char ssid[] = “YOUR_WIFI_SSID”;
char pass[] = “YOUR_WIFI_PASSWORD”;
// Khởi tạo cảm biến
DHT dht(DHT_PIN, DHT_TYPE);
BlynkTimer timer;
// Ngưỡng cảnh báo
int smokeThreshold = 400;
int tempThreshold = 50;
void setup() {
Serial.begin(115200);
// Khởi tạo các chân
pinMode(FLAME_PIN, INPUT);
pinMode(BUZZER_PIN, OUTPUT);
pinMode(LED_PIN, OUTPUT);
// Khởi tạo cảm biến
dht.begin();
// Kết nối WiFi và Blynk
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
// Thiết lập timer đọc cảm biến
timer.setInterval(2000L, readSensors);
Serial.println(“Hệ thống báo cháy IoT đã khởi động!”);
}
void loop() {
Blynk.run();
timer.run();
}
void readSensors() {
// Đọc dữ liệu từ cảm biến
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
int smokeLevel = analogRead(MQ2_PIN);
int flameDetected = digitalRead(FLAME_PIN);
// Kiểm tra dữ liệu hợp lệ
if (isnan(temperature) || isnan(humidity)) {
Serial.println(“Lỗi đọc cảm biến DHT!”);
return;
}
// Gửi dữ liệu lên Blynk
Blynk.virtualWrite(V0, temperature);
Blynk.virtualWrite(V1, humidity);
Blynk.virtualWrite(V2, smokeLevel);
Blynk.virtualWrite(V3, flameDetected);
// Kiểm tra điều kiện cảnh báo
bool fireAlert = false;
if (temperature > tempThreshold) {
Serial.println(“CẢNH BÁO: Nhiệt độ cao!”);
fireAlert = true;
}
if (smokeLevel > smokeThreshold) {
Serial.println(“CẢNH BÁO: Phát hiện khói!”);
fireAlert = true;
}
if (flameDetected == LOW) {
Serial.println(“CẢNH BÁO: Phát hiện lửa!”);
fireAlert = true;
}
// Kích hoạt báo động
if (fireAlert) {
activateAlarm();
sendFirebaseAlert();
Blynk.logEvent(“fire_alert”, “Phát hiện cháy tại node!”);
} else {
deactivateAlarm();
}
// In thông tin lên Serial
Serial.printf(“Nhiệt độ: %.1f°C, Độ ẩm: %.1f%%, Khói: %d, Lửa: %s\n”,
temperature, humidity, smokeLevel,
flameDetected == LOW ? “CÓ” : “KHÔNG”);
}
void activateAlarm() {
digitalWrite(BUZZER_PIN, HIGH);
digitalWrite(LED_PIN, HIGH);
Blynk.virtualWrite(V4, 1); // Báo trạng thái cảnh báo
}
void deactivateAlarm() {
digitalWrite(BUZZER_PIN, LOW);
digitalWrite(LED_PIN, LOW);
Blynk.virtualWrite(V4, 0);
}
void sendFirebaseAlert() {
// Code gửi cảnh báo lên Firebase
// Thực hiện gọi API hoặc webhook để gửi SMS/Email
}
// Hàm điều khiển từ xa qua Blynk
BLYNK_WRITE(V5) {
int buttonState = param.asInt();
if (buttonState == 1) {
// Reset hệ thống
deactivateAlarm();
Serial.println(“Hệ thống đã được reset từ xa”);
}
}
Tích hợp Firebase:
#include <FirebaseESP32.h>
// Cấu hình Firebase
#define FIREBASE_HOST “your-project.firebaseio.com”
#define FIREBASE_AUTH “your-database-secret”
FirebaseData firebaseData;
void setupFirebase() {
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
Firebase.reconnectWiFi(true);
}
void sendFirebaseData(float temp, float hum, int smoke, int flame) {
String path = “/fire_alarm_data/” + String(millis());
FirebaseJson json;
json.set(“temperature”, temp);
json.set(“humidity”, hum);
json.set(“smoke_level”, smoke);
json.set(“flame_detected”, flame);
json.set(“timestamp”, millis());
json.set(“location”, “Tầng 5 – Căn hộ A501”);
if (Firebase.setJSON(firebaseData, path, json)) {
Serial.println(“Dữ liệu đã gửi lên Firebase”);
} else {
Serial.println(“Lỗi gửi Firebase: ” + firebaseData.errorReason());
}
}
Thiết kế ứng dụng mobile
Tính năng chính của app:
-
Giám sát real-time: Hiển thị dữ liệu từ tất cả node trong tòa nhà
-
Cảnh báo khẩn cấp: Push notification với âm thanh lớn khi phát hiện cháy
-
Bản đồ tòa nhà: Hiển thị vị trí chính xác node báo cháy
-
Hướng dẫn thoát hiểm: Chỉ dẫn lối thoát an toàn nhất
-
Lịch sử sự kiện: Lưu trữ và phân tích các sự cố đã xảy ra
Công nghệ phát triển app:
-
Frontend: React Native hoặc Flutter
-
Backend: Node.js với Express
-
Database: Firebase Realtime Database
-
Push notification: Firebase Cloud Messaging
Kiến trúc mạng và triển khai
Mô hình triển khai cho tòa chung cư:
Phân bố node cảm biến:
-
Mỗi căn hộ: 1-2 node (phòng khách, bếp)
-
Hành lang: 1 node mỗi 15-20m
-
Tầng hầm để xe: 2-3 node
-
Khu vực công cộng: 1 node mỗi zone
Hệ thống mạng:
-
WiFi chính: Kết nối các node trong phạm vi
-
LoRa backup: Dự phòng khi WiFi gặp sự cố
-
Gateway trung tâm: Tầng 1 hoặc tầng kỹ thuật
Tính năng nâng cao:
Phân tích AI/ML:
-
Dự đoán nguy cơ cháy dựa trên pattern dữ liệu
-
Giảm false alarm thông qua machine learning
-
Phân tích xu hướng để bảo trì proactive
Tích hợp hệ thống tòa nhà:
-
Kết nối với hệ thống HVAC để ngừng thông gió
-
Điều khiển thang máy về tầng 1 khi cháy
-
Mở khóa cửa thoát hiểm tự động
Liên kết cứu hộ:
-
Tự động gọi cứu hỏa 114
-
Gửi thông tin chi tiết vị trí cháy
-
Hỗ trợ đội cứu hộ với bản đồ 3D tòa nhà
Chi phí và lợi ích
Ước tính chi phí:
-
Chi phí cho 1 node: 612,500đ
-
Chi phí cho hệ thống 10 node: 6,125,000đ
-
Chi phí cho hệ thống 20 node (1 tòa chung cư): 12,250,000đ
Lợi ích kinh tế:
-
Giảm 60-80% thiệt hại do phát hiện sớm 3 phút
-
Giảm 30-40% chi phí vận hành nhờ tự động hóa
-
Tăng 50-60% tốc độ phản ứng so với hệ thống truyền thống
Lợi ích xã hội:
-
Bảo vệ tính mạng và tài sản cư dân
-
Nâng cao ý thức phòng cháy chữa cháy
-
Đáp ứng quy chuẩn PCCC quốc gia
-
Tăng giá trị bất động sản tòa nhà
Hệ thống báo cháy IoT không chỉ là giải pháp công nghệ hiện đại mà còn là khoản đầu tư thiết yếu cho an toàn cộng đồng, đặc biệt quan trọng trong bối cảnh đô thị hóa nhanh và mật độ dân cư cao tại các tòa chung cư hiện nay.