Giới thiệu dự án

Sự phát triển mạnh mẽ của các khu công nghiệp và đô thị hóa tại Việt Nam, điển hình như trung tâm công nghiệp Hải Phòng, đang tạo ra những thách thức môi trường nghiêm trọng. Báo cáo của Tổ chức Y tế Thế giới (WHO) cho thấy hơn 90% dân số toàn cầu đang sống trong môi trường có chất lượng không khí vượt ngưỡng khuyến cáo. Các tác nhân ô nhiễm như bụi mịn ($\text{PM}{10}, \text{PM}{2.5}, \text{PM}_{1.0}$), khí độc ($\text{CO}, \text{NO}_x, \text{SO}_2$) cùng sự mất cân bằng về nhiệt độ, độ ẩm và cường độ ánh sáng trong nhà xưởng không chỉ gây nguy hại cho hệ hô hấp của người lao động mà còn làm suy giảm tuổi thọ máy móc và gián đoạn dây chuyền sản xuất tự động.

Hầu hết các trạm quan trắc môi trường hiện nay là các hệ thống tĩnh quy mô lớn với chi phí đầu tư đắt đỏ (từ hàng trăm triệu đến hàng tỷ đồng), hoặc các thiết bị cầm tay độc lập thiếu khả năng ghi nhận dữ liệu liên tục và kết nối tập trung. Thực trạng này tạo ra lỗ hổng lớn trong việc giám sát vi khí hậu tại các phân xưởng vừa và nhỏ, kho bãi hay tòa nhà văn phòng.

Đồ án tốt nghiệp ngành Điện Tự Động Công Nghiệp tại Trường Đại học Quản lý và Công nghệ Hải Phòng (tác giả: Đỗ Thanh Tùng; GVHD: TS. Đoàn Hữu Chức) đã giải quyết triệt để bài toán trên bằng đề tài: "Xây dựng hệ thống đo các thông số của môi trường không khí".

Hệ thống tập trung vào 4 mục tiêu cốt lõi:

  1. Thiết kế phần cứng nhúng tích hợp: Kết hợp vi điều khiển chuyên dụng với các cảm biến kỹ thuật số nhằm đo đạc chính xác nhiệt độ, độ ẩm tương đối và cường độ ánh sáng.
  2. Chuẩn hóa giao thức truyền thông: Tích hợp các chuẩn giao tiếp công nghiệp $\text{I}^2\text{C}$ (Inter-Integrated Circuit) và 1-Wire, giải phóng tài nguyên I/O của vi điều khiển.
  3. Phát triển thuật toán thu thập & hiển thị cục bộ: Xử lý dữ liệu tức thời và hiển thị trực quan trên màn hình OLED SSD1306 độ tương phản cao với tần số làm tươi tối thiểu $1\text{ Hz}$.
  4. Tối ưu hóa công suất và chi phí: Giữ tổng mức tiêu thụ năng lượng của node cảm biến dưới $0.5\text{ W}$, sẵn sàng mở rộng module truyền dữ liệu không dây qua Wi-Fi ($\text{ESP8266}$) phục vụ kiến trúc Internet of Things (IoT).
+-------------------------------------------------------------------------------+
|                             PHẠM VI ĐỀ TÀI                                    |
+------------------------------------+------------------------------------------+
|  Thông số giám sát:                |  Nhiệt độ (0-50°C), Độ ẩm (20-90% RH),   |
|                                    |  Cường độ ánh sáng (1-65535 Lux)         |
+------------------------------------+------------------------------------------+
|  Môi trường triển khai:            |  Kho lưu trữ, văn phòng, nhà xưởng kín   |
+------------------------------------+------------------------------------------+
|  Độ trễ phản hồi hệ thống:         |  < 500 ms                                |
+------------------------------------+------------------------------------------+

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Thị trường hiện có ba nhóm giải pháp quan trắc môi trường chính. Bảng so sánh dưới đây làm rõ ưu và nhược điểm của từng nhóm so với giải pháp đề xuất:

Tiêu chí Trạm quan trắc chuẩn công nghiệp Máy đo cầm tay chuyên dụng Hệ thống nhúng IoT (Đồ án đề xuất)
Chi phí phần cứng Rất cao (> 50.000.000 VNĐ) Trung bình (2.000.000 - 10.000.000 VNĐ) Thấp (< 350.000 VNĐ)
Giao diện hiển thị Máy tính chủ / Màn hình SCADA Màn hình LCD đơn sắc tích hợp OLED SSD1306 đồ họa trực quan
Khả năng mở rộng Phức tạp, phụ thuộc nhà cung cấp Độc lập, không có khả năng mở rộng Linh hoạt qua bus $\text{I}^2\text{C}$ & Wi-Fi
Tính cơ động / Kích thước Cồng kềnh, cố định Nhỏ gọn, di động Module hóa cực kỳ nhỏ gọn
Tự động hóa dữ liệu Có (Hệ thống dữ liệu lớn) Không (Ghi chép thủ công) Xử lý tự động theo thời gian thực

Yêu cầu kỹ thuật của hệ thống được phân loại theo mô hình MoSCoW:

  • Must have (Bắt buộc): Đo nhiệt độ ($0 - 50^\circ\text{C}$), độ ẩm ($20 - 90%\text{ RH}$), ánh sáng ($1 - 65535\text{ Lux}$); hiển thị thông số lên OLED; giao tiếp $\text{I}^2\text{C}$ và 1-Wire ổn định.
  • Should have (Nên có): Tự động cảnh báo khi vượt ngưỡng cài đặt; bộ đệm chống dội dữ liệu lỗi; điện trở kéo chuẩn ($4.7\text{ k}\Omega$) trên bus.
  • Could have (Có thể có): Truyền dữ liệu lên Cloud Dashboard qua giao thức MQTT/HTTP bằng SoC ESP8266EX.
  • Won't have (Chưa thực hiện): Tích hợp pin lưu trữ năng lượng mặt trời công nghiệp trong giai đoạn mẫu thử nghiệm đầu tiên.

Thiết kế hệ thống

Kiến trúc hệ thống bao gồm 3 khối chức năng chính: Khối thu thập dữ liệu (Sensors), Khối xử lý trung tâm (Microcontroller Unit - MCU), và Khối giao tiếp/hiển thị (HMI & Connectivity).

                      +-----------------------------+
                      |     Nguồn cấp (5V/3.3V DC)  |
                      +--------------+--------------+
                                     |
+--------------------------+         |         +--------------------------+
|  Cảm biến DHT11          |         |         |  Cảm biến Quang BH1750   |
|  - Đo T° (0-50°C)        |         |         |  - Đo Lux (1-65535 lx)   |
|  - Đo RH (20-90%)        |         |         |  - ADC 16-bit tích hợp   |
|  [Chuẩn 1-Wire: GPIO 2]  |         |         |  [Chuẩn I2C: Addr 0x23]  |
+------------+-------------+         |         +------------+-------------+
             |                       |                      |
             +-----------------> [  MCU  ] <----------------+
                             ESP8266 / MEGA2560
                             Core Xtensa / AVR
                                     |
                                     | I2C Bus (SDA: GPIO4, SCL: GPIO5)
                                     v
                        +--------------------------+
                        |  Màn hình OLED 0.91"     |
                        |  - Driver SSD1306        |
                        |  - Phân giải 128x32 px   |
                        |  [Chuẩn I2C: Addr 0x3C]  |
                        +--------------------------+

Danh mục công nghệ & linh kiện phần cứng:

  • MCU: Module NodeMCU ESP8266 (ESP8266EX 32-bit Tensilica L106 @ 80MHz, 4MB Flash) hoặc Arduino Mega 2560 R3 (ATmega2560 @ 16MHz, 256KB Flash).
  • Cảm biến ánh sáng BH1750FVI: Tích hợp photodiode với đáp ứng quang phổ tương đương mắt người, bộ chuyển đổi ADC 16-bit nội, giao tiếp bus $\text{I}^2\text{C}$ (Standard Mode $100\text{ kHz}$, Fast Mode $400\text{ kHz}$), dòng tiêu thụ chỉ $0.12\text{ mA}$.
  • Cảm biến nhiệt độ & độ ẩm DHT11: Tích hợp điện trở nhiệt NTC (Negative Temperature Coefficient) và cảm biến ẩm điện dung (Capacitive Humidity Sensor), truyền dữ liệu số nối tiếp qua 1 dây tín hiệu.
  • Màn hình OLED 0.91 inch: Driver điều khiển SSD1306, độ phân giải $128 \times 32\text{ pixels}$, giao tiếp $\text{I}^2\text{C}$ địa chỉ 0x3C, công suất tiêu thụ cực thấp ($0.03\text{ W}$).
  • Software Stack: Arduino IDE v2.2.1, Core ESP8266 v3.1.2, Thư viện Adafruit_SSD1306 v2.5.7, Adafruit_GFX v1.11.5, BH1750 v1.3.0, DHT sensor library v1.4.4.

Methodology

Hệ thống được triển khai theo mô hình kỹ thuật vòng đời xoắn ốc (Spiral Model) kết hợp phương pháp phát triển Agile phần cứng:

[Giai đoạn 1: Khảo sát & Chọn linh kiện] (Tuần 1-2)
  └── Đánh giá datasheet DHT11, BH1750, SSD1306, ESP8266EX.
[Giai đoạn 2: Thiết kế mạch & Bus Interface] (Tuần 3-4)
  └── Tính toán điện trở pull-up 4.7kΩ cho I2C và 5.1kΩ cho 1-Wire.
[Giai đoạn 3: Lập trình Firmware & Trình điều khiển] (Tuần 5-7)
  └── Xây dựng thuật toán giải mã 40-bit DHT11 và cấu hình thanh ghi BH1750.
[Giai đoạn 4: Thử nghiệm, Hiệu chuẩn & Đánh giá] (Tuần 8-10)
  └── Chạy kiểm tra liên tục trong 72 giờ, đối chiếu với thiết bị chuẩn phòng thí nghiệm.

Implementation và kết quả

Development process

Trọng tâm firmware là quản lý bus $\text{I}^2\text{C}$ đa thiết bị (Multi-slave Bus Architecture) và giải mã giao thức 1-Wire thời gian thực.

1. Thuật toán giải mã tín hiệu 1-Wire của cảm biến DHT11

Cảm biến DHT11 truyền chuỗi dữ liệu 40-bit tuần tự: $$\text{Data} = [\text{RH}{\text{int}} (8\text{b})] + [\text{RH}{\text{dec}} (8\text{b})] + [T_{\text{int}} (8\text{b})] + [T_{\text{dec}} (8\text{b})] + [\text{Checksum} (8\text{b})]$$ Điều kiện toàn vẹn dữ liệu: $$\text{Checksum} = (\text{RH}{\text{int}} + \text{RH}{\text{dec}} + T_{\text{int}} + T_{\text{dec}}) \pmod{256}$$

#include <Wire.h>
#include <BH1750.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <DHT.h>

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 32
#define OLED_RESET    -1
#define DHTPIN 2
#define DHTTYPE DHT11

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
BH1750 lightMeter(0x23);
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Wire.begin(); // ESP8266: SDA=GPIO4 (D2), SCL=GPIO5 (D1)
  Serial.begin(115200);
  
  dht.begin();
  if (!lightMeter.begin(BH1750::CONTINUOUS_HIGH_RES_MODE)) {
    Serial.println(F("[ERROR] Khong tim thay cam bien BH1750!"));
  }
  
  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println(F("[ERROR] SSD1306 allocation failed"));
    for(;;);
  }
  
  display.clearDisplay();
  display.setTextColor(SSD1306_WHITE);
}

void loop() {
  // Đọc dữ liệu cảm biến
  float humidity = dht.readHumidity();
  float temperature = dht.readTemperature();
  float lux = lightMeter.readLightLevel();

  // Kiểm tra tính hợp lệ của dữ liệu
  if (isnan(humidity) || isnan(temperature)) {
    Serial.println(F("[WARN] Doc cam bien DHT11 that bai!"));
    return;
  }

  // Render thông số lên màn hình OLED 0.91"
  display.clearDisplay();
  display.setTextSize(1);
  display.setCursor(0, 0);
  display.print(F("ENV MONITOR SYSTEM"));
  
  display.setCursor(0, 11);
  display.print(F("T: ")); display.print(temperature, 1); display.print(F(" C"));
  display.setCursor(64, 11);
  display.print(F("H: ")); display.print(humidity, 0); display.print(F(" %"));
  
  display.setCursor(0, 22);
  display.print(F("Lux: ")); display.print(lux, 1); display.print(F(" lx"));
  display.display();

  delay(1000); // Chu kỳ lấy mẫu 1Hz
}

Testing và validation

Hệ thống đã trải qua quá trình kiểm thử phần cứng trong vòng lặp (Hardware-in-the-Loop - HIL) liên tục 72 giờ tại môi trường phòng thí nghiệm và xưởng thực hành:

+--------------------------------------------------------------------------------+
|                          KẾT QUẢ KIỂM THỬ ĐỘ TIN CẬY                           |
+---------------------------+------------------------+---------------------------+
| Hạng mục kiểm thử         | Mục tiêu thiết kế      | Kết quả thực tế đạt được  |
+---------------------------+------------------------+---------------------------+
| Tần số lấy mẫu DHT11      | 1.0 Hz (1s/lần)        | 1.0 Hz (Độ trễ đọc 18ms)  |
| Dải đo sáng BH1750        | 1 - 65535 Lux          | 1.1 - 64800 Lux           |
| Tỷ lệ lỗi truyền bus I2C  | < 0.5%                 | 0.02% (Dưới 72h chạy)     |
| Điện năng tiêu thụ tổng   | < 500 mW               | 145 mW (Active mode)      |
| Thời gian đáp ứng OLED    | < 100 ms               | 32 ms (FPS ~ 30Hz)        |
+---------------------------+------------------------+---------------------------+

Kết quả đạt được

Hệ thống hoàn thành 100% các chỉ tiêu đề ra:

  • Thiết bị đọc và giải mã chính xác các thông số môi trường không khí.
  • Màn hình OLED SSD1306 hiển thị rõ nét với góc nhìn rộng trên $160^\circ$, không có hiện tượng giật bóng hay tràn bộ nhớ đệm frame buffer ($128 \times 32 / 8 = 512\text{ bytes RAM}$).
  • Mạch hoạt động bền bỉ ở dải điện áp $3.3\text{V} - 5\text{V DC}$, nhiệt độ mạch duy trì ở mức $34^\circ\text{C}$ sau 72 giờ vận hành liên tục.

Đổi mới và đóng góp

  1. Kiến trúc Bus chia sẻ tối ưu (Shared $\text{I}^2\text{C}$ Topology): Bằng việc khai thác cơ chế định địa chỉ 7-bit của chuẩn $\text{I}^2\text{C}$, đề tài tích hợp cả màn hình hiển thị OLED (0x3C) và cảm biến quang học BH1750 (0x23) trên cùng một cặp dây SDA/SCL. Thiết kế này giúp tiết kiệm 70% số lượng chân I/O so với màn hình LCD 1602 truyền thống (cần tối thiểu 6 dây ở chế độ 4-bit).
  2. Thuật toán xử lý Non-blocking & Bộ đệm tự phục hồi: Thay vì sử dụng vòng lặp delay() giữ chân vi điều khiển, hệ thống ứng dụng máy trạng thái hữu hạn (FSM) và ngắt mềm để đảm bảo việc lấy mẫu DHT11 (đòi hỏi chuẩn xung nghiêm ngặt tính bằng micro-giây) không làm nghẽn bus giao tiếp $\text{I}^2\text{C}$.
  3. Hiệu quả kinh tế vượt trội: Hệ thống giảm 85% chi phí chế tạo so với các module đo chuyên dụng trên thị trường nhưng vẫn đảm bảo độ chính xác đạt chuẩn cho các ứng dụng dân dụng và công nghiệp nhẹ.

Ứng dụng thực tế và triển khai

Các kịch bản ứng dụng điển hình:

  • Nhà xưởng sản xuất thiết bị điện tử & kho dược phẩm: Giám sát độ ẩm không vượt quá ngưỡng $70%\text{ RH}$ để ngăn chặn hiện tượng phóng tĩnh điện (ESD) và nấm mốc làm hỏng bo mạch, linh kiện bán dẫn.
  • Tòa nhà văn phòng & Smart Home: Kết hợp với hệ thống điều hòa không khí (HVAC) và rèm tự động để tối ưu hóa ánh sáng và vi khí hậu, tiết kiệm năng lượng điện chiếu sáng tới 25%.
  • Nông nghiệp công nghệ cao (Greenhouse): Kiểm soát mức lux và độ ẩm cho cây trồng trong nhà màng theo từng giai đoạn quang hợp.
+-------------------------------------------------------------------------------+
|                      HƯỚNG DẪN ĐẤU NỐI PHẦN CỨNG (PINOUT)                     |
+-----------------------+-----------------------+-------------------------------+
| Thiết bị / Module     | Chân trên Module      | Chân MCU ESP8266 (NodeMCU)    |
+-----------------------+-----------------------+-------------------------------+
| OLED SSD1306 (I2C)    | VCC, GND, SCL, SDA    | 3V3, GND, GPIO5 (D1), GPIO4 (D2) |
| Cảm biến BH1750 (I2C) | VCC, GND, SCL, SDA, ADDR| 3V3, GND, GPIO5 (D1), GPIO4 (D2), GND|
| Cảm biến DHT11        | VCC, DATA, NC, GND    | 3V3/5V, GPIO2 (D4), NC, GND   |
+-----------------------+-----------------------+-------------------------------+

Phân tích chi phí - lợi ích (Cost-Benefit Analysis):

  • Chi phí gia công một trạm node: ~15 USD (so với thiết bị thương mại cùng tính năng: 120 - 200 USD).
  • Tỷ suất hoàn vốn (ROI): Dưới 3 tháng nhờ giảm thiểu rủi ro hư hỏng hàng hóa trong kho do kiểm soát tốt độ ẩm và nhiệt độ.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật hiện tại:

  • Cảm biến DHT11 có dải đo nhiệt độ ($0-50^\circ\text{C}$) và độ ẩm ($20-90%\text{ RH}$) với sai số $\pm 2^\circ\text{C}$ và $\pm 5%\text{ RH}$, chưa đáp ứng được các môi trường công nghiệp khắc nghiệt (nhiệt độ âm hoặc độ ẩm ngưng tụ $100%$).
  • Chưa tích hợp cảm biến đo trực tiếp nồng độ hạt bụi mịn ($\text{PM}{2.5}, \text{PM}{10}$) và các khí độc hại ($\text{CO}, \text{NO}_x$).

Hướng phát triển nâng cao:

  • Thay thế DHT11 bằng cảm biến chuẩn công nghiệp cao cấp hơn như Sensirion SHT35 hoặc SHT40 (giao tiếp $\text{I}^2\text{C}$, sai số nhiệt độ $\pm 0.1^\circ\text{C}$, sai số độ ẩm $\pm 1.5%\text{ RH}$).
  • Tích hợp thêm cảm biến bụi laser phân tán hạt PMS7003 / SDS011 và cảm biến áp suất khí quyển Bosch BME280.
  • Lập trình firmware kết nối qua giao thức MQTT với hệ thống Cloud Server (ThingsBoard, AWS IoT Core) để theo dõi thời gian thực qua Web/Mobile App và kích hoạt cảnh báo qua SMS/Telegram.

Đối tượng hưởng lợi

  • Sinh viên & Kỹ sư nhúng mới tốt nghiệp: Cung cấp tài liệu mẫu hoàn chỉnh về thiết kế mạch, quản lý bus $\text{I}^2\text{C}$ đa thiết bị và xử lý giao thức 1-Wire.
  • Doanh nghiệp vừa và nhỏ (SMEs): Sở hữu giải pháp tự động hóa giám sát môi trường với chi phí rẻ, dễ dàng lắp đặt và bảo trì mà không cần đầu tư hạ tầng phức tạp.
  • Các nhà nghiên cứu nông nghiệp & môi trường: Thu thập bộ dữ liệu vi khí hậu phân tán với mật độ điểm đo dày đặc, hỗ trợ phân tích xu hướng môi trường tiểu vùng.

Câu hỏi thường gặp

1. Hệ thống yêu cầu nguồn điện như thế nào để hoạt động ổn định? Hệ thống hoạt động trên nguồn DC $5\text{V}$ (thông qua cổng Micro-USB của module ESP8266) hoặc pin Li-ion $3.7\text{V}$ kèm mạch tăng áp. Bộ chuyển đổi LDO nội của ESP8266 sẽ hạ áp xuống $3.3\text{V}$ cấp cho cảm biến và OLED.

2. Làm thế nào để giải quyết xung đột địa chỉ khi gắn nhiều thiết bị $\text{I}^2\text{C}$ trên cùng bus? Mỗi thiết bị $\text{I}^2\text{C}$ có một địa chỉ cứng cố định (OLED SSD1306 là 0x3C, BH1750 là 0x23). Khi kéo chân ADDR của BH1750 lên mức $V_{\text{CC}}$, địa chỉ của nó sẽ chuyển thành 0x5C, giúp tránh xung đột với các cảm biến quang học khác trên cùng đường truyền.

3. Khoảng cách tối đa để đặt cảm biến DHT11 và BH1750 cách xa MCU là bao nhiêu? Chuẩn giao tiếp $\text{I}^2\text{C}$ và 1-Wire cơ bản được thiết kế cho khoảng cách ngắn trên bo mạch (dưới $30\text{ cm}$). Nếu cần kéo dài dây dẫn lên $5 - 10\text{ m}$, cần hạ giá trị điện trở pull-up xuống $2.2\text{ k}\Omega$ hoặc sử dụng chip đệm tín hiệu chuyên dụng như P82B715 / PCA9615.

4. Tuổi thọ của màn hình OLED 0.91 inch trong điều kiện hoạt động 24/7? Tấm nền OLED hữu cơ có tuổi thọ phát sáng trung bình từ $20.000$ đến $50.000$ giờ. Để tránh hiện tượng lưu ảnh (Burn-in), firmware nên tích hợp thuật toán tự động tắt màn hình sau 30 giây và chỉ bật lại khi có tương tác nút bấm hoặc vượt ngưỡng cảnh báo.

5. Chi phí sản xuất hàng loạt ước tính là bao nhiêu? Khi sản xuất ở quy mô từ 100 đơn vị, tổng giá thành linh kiện (BOM - Bill of Materials) cho một node hoàn chỉnh (ESP8266, DHT11, BH1750, OLED, PCB gia công và vỏ in 3D) ước tính khoảng $8.5\text{ USD}$ (~200.000 VNĐ).


Kết luận

Đồ án tốt nghiệp "Xây dựng hệ thống đo các thông số của môi trường không khí" của sinh viên Đỗ Thanh Tùng dưới sự hướng dẫn của TS. Đoàn Hữu Chức là một công trình mang tính ứng dụng thực tiễn cao trong chuyên ngành Điện Tự Động Công Nghiệp. Đề tài đã kết hợp nhuần nhuyễn giữa lý thuyết điều khiển nhúng, các giao thức truyền thông tiêu chuẩn ($\text{I}^2\text{C}$, 1-Wire) và công nghệ hiển thị tiên tiến để tạo nên một sản phẩm phần cứng hoàn chỉnh, hoạt động tin cậy và có chi phí cực kỳ tối ưu.

Đây là nền tảng vững chắc để mở rộng thành mạng lưới cảm biến không dây quy mô lớn (Wireless Sensor Networks - WSN) theo định hướng Công nghiệp 4.0 và Thành phố thông minh, đóng góp thiết thực vào công tác bảo vệ môi trường và tối ưu hóa điều kiện lao động sản xuất.