Giới thiệu
Đây là đồ án hệ thống giám sát nhiệt độ và độ ẩm sử dụng vi điều khiển ESP32 kết hợp với cảm biến DHT22. Hệ thống cho phép người dùng theo dõi các thông số môi trường real-time qua giao diện web và nhận cảnh báo khi vượt ngưỡng.
Công nghệ sử dụng
- Vi điều khiển: ESP32 DevKit V1
- Cảm biến: DHT22 (nhiệt độ, độ ẩm)
- Giao tiếp: WiFi, MQTT Protocol
- IDE: Arduino IDE / PlatformIO
- Backend: Node.js, Express
- Frontend: HTML, CSS, JavaScript (Chart.js)
- Database: InfluxDB (time-series data)
Tính năng chính
- Đo lường real-time: Đọc dữ liệu nhiệt độ và độ ẩm mỗi 5 giây
- Web Dashboard: Hiển thị biểu đồ thời gian thực và lịch sử dữ liệu
- Cảnh báo ngưỡng: Gửi thông báo khi nhiệt độ/độ ẩm vượt mức cài đặt
- Lưu trữ dữ liệu: Lưu lịch sử đo lường vào database
- Remote control: Điều khiển thiết bị từ xa qua web interface
- OTA Update: Cập nhật firmware qua WiFi
Sơ đồ khối hệ thống
[DHT22] --I2C--> [ESP32] --WiFi--> [MQTT Broker] ---> [Web Server]
|
v
[Database]
Thông số kỹ thuật
- Điện áp hoạt động: 5V DC
- Dải đo nhiệt độ: -40°C đến 80°C (±0.5°C)
- Dải đo độ ẩm: 0-100% RH (±2%)
- Tần suất cập nhật: 5 giây/lần
- Kết nối WiFi: 2.4GHz 802.11 b/g/n
- Tiêu thụ điện: ~80mA (trung bình)
Kết quả đạt được
✅ Hệ thống hoạt động ổn định 24/7
✅ Độ chính xác đo lường cao (sai số < 1%)
✅ Giao diện web responsive, thân thiện
✅ Thời gian phản hồi nhanh (< 1s)
✅ Hỗ trợ nhiều thiết bị cùng lúc
Hình ảnh sản phẩm
Hình ảnh minh họa - Vui lòng thay thế bằng ảnh thực tế
Source Code & Tài liệu
-
GitHub Repository: esp32-iot-monitoring
- Code ESP32 (Arduino)
- Web dashboard source
- Sơ đồ nguyên lý
- Hướng dẫn lắp ráp
-
Google Drive: Tài liệu & Files
- Datasheet các linh kiện
- Video hướng dẫn
- File PCB design (KiCad)
Hướng dẫn sử dụng
1. Chuẩn bị phần cứng
- ESP32 DevKit V1
- Cảm biến DHT22
- Dây jumper
- Nguồn 5V
2. Kết nối
DHT22 VCC --> ESP32 3.3V
DHT22 DATA --> ESP32 GPIO4
DHT22 GND --> ESP32 GND
3. Cài đặt phần mềm
# Clone repository
git clone https://github.com/minhduc219/esp32-iot-monitoring
# Cấu hình WiFi trong config.h
WIFI_SSID = "Your_WiFi_Name"
WIFI_PASSWORD = "Your_Password"
# Upload code lên ESP32
Khó khăn và giải pháp
Vấn đề 1: DHT22 đôi khi trả về giá trị NaN
Giải pháp: Thêm pull-up resistor 10kΩ và kiểm tra kết nối
Vấn đề 2: WiFi mất kết nối không tự động reconnect
Giải pháp: Implement auto-reconnect mechanism trong code
Phát triển tiếp theo
- [ ] Thêm cảm biến áp suất khí quyển (BMP280)
- [ ] Tích hợp AI để dự đoán xu hướng thay đổi
- [ ] Tạo mobile app (Flutter)
- [ ] Thêm chế độ tiết kiệm pin (deep sleep)
Tài liệu tham khảo
Liên hệ: Nếu bạn quan tâm đến đồ án này hoặc cần hỗ trợ, vui lòng liên hệ qua LinkedIn