Giới thiệu dự án

Kiểm soát các yếu tố vi khí hậu (nhiệt độ và độ ẩm) trong bảo quản dược phẩm là yêu cầu sống còn nhằm duy trì hoạt tính sinh hóa và độ an toàn của thuốc. Theo các tiêu chuẩn Thực hành tốt bảo quản thuốc (Good Storage Practice - GSP) của Tổ chức Y tế Thế giới (WHO) và Bộ Y tế Việt Nam, phần lớn các loại thuốc yêu cầu bảo quản ở nhiệt độ tiêu chuẩn từ $15^\circ\text{C}$ đến $25^\circ\text{C}$ (hoặc không quá $30^\circ\text{C}$) cùng độ ẩm tương đối không vượt quá $70%$. Khi nhiệt độ và độ ẩm vượt ngưỡng cho phép, tốc độ phân hủy hóa học, thủy phân và oxy hóa của dược chất tăng theo cấp số nhân, làm giảm hiệu lực điều trị hoặc tạo ra các độc tính nguy hiểm.

Tại nhiều cơ sở y tế, quầy thuốc đạt chuẩn GPP (Good Pharmacy Practice) và kho dược quy mô vừa và nhỏ ở Việt Nam, việc giám sát vi khí hậu vẫn phụ thuộc vào phương pháp thủ công: nhân viên dùng nhiệt ẩm kế cầm tay kiểm tra và ghi chép nhật ký 1-2 lần/ngày. Phương pháp này bộc lộ các điểm nghẽn nghiêm trọng:

  • Không cung cấp dữ liệu liên tục theo thời gian thực (Real-time monitoring).
  • Bỏ sót các biến động nhiệt độ nguy hiểm vào ban đêm hoặc các khung giờ không có người trực.
  • Sai số do thao tác con người và không thể đo đạc chính xác tại các vi phân vùng kín trong tủ thuốc.
  • Thiếu cơ chế phản hồi tự động để kích hoạt thiết bị xử lý khi có sự cố tăng nhiệt hoặc giảm ẩm.

Đồ án tốt nghiệp chuyên ngành Điện tử công nghiệp tại Trường Đại học Bà Rịa - Vũng Tàu (ĐHBRVT) với đề tài "Điều khiển nhiệt độ, độ ẩm trong phòng bảo quản thuốc" (Thực hiện bởi Huỳnh Trung Vẫn, Nguyễn Văn Hiếu; GVHD: Ths. Phạm Chí Hiếu) được nghiên cứu nhằm giải quyết triệt để các tồn tại trên.

+-------------------------------------------------------------------------+
|                              MỤC TIÊU DỰ ÁN                             |
+-------------------------------------------------------------------------+
| 1. Thiết kế module nhúng IoT thu thập nhiệt độ - độ ẩm thời gian thực.  |
| 2. Phát triển WebServer trực tiếp trên vi điều khiển ESP8266.           |
| 3. Tự động hóa điều khiển máy nén lạnh và máy phun sương theo ngưỡng.   |
| 4. Tối ưu chi phí phần cứng (< 500.000 VNĐ), vận hành bền bỉ 24/7.       |
+-------------------------------------------------------------------------+

Giải pháp sử dụng vi điều khiển ESP8266 NodeMCU kết hợp cảm biến DHT11, màn hình LCD 16x2 giao tiếp I2C và mạch kích Relay 4 kênh cách ly quang. Hệ thống hoạt động độc lập, tự động đóng cắt máy nén kho lạnh và máy bơm phun sương làm mát bù ẩm theo thuật toán Hysteresis khép kín, đồng thời cung cấp giao diện Web trực quan để người quản lý theo dõi và điều khiển từ xa.

Dự án đạt thời gian đáp ứng điều khiển $< 1000\text{ ms}$, sai số đo đạc nhiệt độ $\pm 2^\circ\text{C}$, độ ẩm $\pm 5%\text{ RH}$, duy trì môi trường kho bảo quản ổn định trong thể tích $15\text{ m}^3 - 50\text{ m}^3$. Hệ thống được thiết kế vận hành trong mạng cục bộ qua giao thức Wi-Fi 2.4GHz IEEE 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

Trước khi xây dựng hệ thống, các giải pháp giám sát nhiệt ẩm hiện hành trên thị trường được phân tích chi tiết để xác định bài toán tối ưu:

Tiêu chí so sánh Ghi chép thủ công (Nhiệt kế cơ) Datalogger công nghiệp (Testo 174H) Hệ thống IoT đề xuất (ESP8266 + DHT11)
Chi phí đầu tư ban đầu Rất thấp (~100.000 VNĐ) Cao (3.000.000 - 6.000.000 VNĐ) Rất thấp (~400.000 VNĐ)
Giám sát thời gian thực Không (1-2 lần/ngày) Không (Phải cắm USB đọc log sau) Có (Cập nhật liên tục qua Web)
Tự động điều khiển tải Không Không Có (Đóng ngắt máy lạnh, phun sương)
Giao diện người dùng Sổ sách giấy Phần mềm chuyên dụng trên PC Web HTML5 tương thích mọi thiết bị
Khả năng mở rộng API Không Đóng (Phụ thuộc nhà sản xuất) Mở (RESTful JSON Endpoints)

Hệ thống được thiết kế theo ma trận ưu tiên yêu cầu MoSCoW:

  • Must have (Bắt buộc): Đo nhiệt độ/độ ẩm định kỳ 1Hz; Tự động kích Relay bật máy lạnh khi $T \ge 32^\circ\text{C}$; Bật bơm phun sương khi $H \le 72%$; Hiển thị thông số lên LCD1602 qua I2C; Nhúng WebServer trên ESP8266.
  • Should have (Nên có): Giao diện Web điều khiển Manual các Relay; Phân giải tên miền cục bộ qua mDNS (Multicast DNS).
  • Could have (Có thể mở rộng): Lưu trữ dữ liệu lịch sử vào bộ nhớ flash EEPROM hoặc thẻ nhớ SD.
  • Won't have (Chưa triển khai): Kết nối trực tiếp lên dịch vụ Cloud thương mại đa kênh (AWS/Azure IoT).

Hệ thống đối mặt với các ràng buộc kỹ thuật chính: tài nguyên RAM của vi điều khiển hạn chế (~80KB khả dụng), số lượng chân GPIO giới hạn trên NodeMCU ESP-12E, và xung nhiễu điện từ (EMI) phát sinh khi đóng ngắt các tải cảm ứng AC 220V công suất lớn như máy nén lạnh.

Thiết kế hệ thống

Kiến trúc phần cứng và luồng dữ liệu của hệ thống được tổ chức theo mô hình phân tầng:

graph TD
    A["Cảm biến DHT11 (1-Wire Pin)"] -->|Tín hiệu Digital| B["Vi điều khiển ESP8266 NodeMCU Lua"]
    B -->|Bus I2C (SDA/SCL)| C["LCD 16x2 + PCF8574 (Hiển thị tại chỗ)"]
    B -->|GPIO D0 / D4| D["Module Relay 4 Kênh (Optocoupler Isolation)"]
    D -->|Tiếp điểm AC 250V/10A| E["Máy nén lạnh (Làm mát)"]
    D -->|Tiếp điểm AC 250V/10A| F["Máy bơm phun sương (Tăng ẩm & Phụ trợ nhiệt)"]
    B <-->|Wi-Fi 802.11 b/g/n (HTTP Port 80)| G["Client Browser (PC / Smartphone)"]

Technology Stack của hệ thống:

  • Bộ vi xử lý chính: ESP8266 Wifi SoC trên kit NodeMCU V2/V3 (Module ESP-12E, Flash Memory 4MB, Chip nạp UART CP2102).
  • Cảm biến: DHT11 (Phạm vi nhiệt độ $0-50^\circ\text{C} \pm 2^\circ\text{C}$, độ ẩm $20-80%\text{ RH} \pm 5%$, tần số lấy mẫu 1Hz, giao tiếp 1 dây Digital 1-Wire).
  • Hiển thị: Màn hình LCD 16x2 ký tự (Driver HD44780) ghép nối Module chuyển đổi I2C (Chip PCF8574) giúp tiết kiệm chân vi điều khiển từ 16 chân xuống 2 chân (SDA trên D6, SCL trên D7).
  • Khối chấp hành: Bo mạch Relay 4 kênh kích mức thấp (Low Trigger 0V), tích hợp Optocoupler cách ly quang học bảo vệ MCU, đóng cắt tải AC tối đa 250VAC-10A.
  • Môi chất & Thiết bị làm mát: Máy nén dàn ngưng kho lạnh và hệ thống máy bơm tạo áp phun sương 220V (hạt sương mịn giúp giảm nhiệt $5-10^\circ\text{C}$ và tăng ẩm tức thời lên đến $90%$).
  • Nền tảng phần mềm: Firmware C++ biên dịch qua Arduino IDE (sử dụng các thư viện ESP8266WiFi.h, ESP8266WebServer.h, ESP8266mDNS.h, DHTesp.h), Giao diện Frontend viết bằng HTML5/CSS3 và JavaScript Fetch API.

Công thức tính toán công suất lạnh yêu cầu cho phòng bảo quản: $$P = \frac{V}{35 \div 40} \times 9000 \quad (\text{BTU/h})$$ (Trong đó $V$ là thể tích phòng tính bằng $\text{m}^3$. Tiêu chuẩn đối với phòng ít ánh sáng là $600\text{ BTU/m}^2$ và phòng nhiều ánh sáng là $900\text{ BTU/m}^2$).

Thiết kế giao tiếp API trên WebServer nhúng:

  • Endpoint GET /ReadDHT: Trả về dữ liệu JSON vi khí hậu và trạng thái thiết bị: {"Temp": 28, "Humi": 65, "Pump1": 0, "auto1": 1, "Pump2": 0, "auto2": 1}
  • Endpoint GET /AllButton: Trả về dữ liệu JSON cấu hình chế độ điều khiển: {"auto1": 1, "auto2": 1, "Pump1": 0, "Pump2": 0}

Khía cạnh an toàn (Security & Reliability): Vi điều khiển cấp phát mạng Wi-Fi bảo mật chuẩn WPA2-PSK, hệ thống xử lý Watchdog Timer tự khởi động lại khi treo chip, mạch điều khiển và mạch động lực được cách ly hoàn toàn qua Opto PC817 ngăn dòng rò và sốc điện áp ngược (Back-EMF).

Methodology

Quy trình phát triển hệ thống được tổ chức qua 4 giai đoạn nối tiếp:

[Giai đoạn 1: Nghiên cứu lý thuyết & Định cỡ phần cứng] (Tuần 1-3)
[Giai đoạn 2: Thiết kế sơ đồ nguyên lý & Lắp ráp mạch] (Tuần 4-6)
[Giai đoạn 3: Lập trình Firmware ESP8266 & Giao diện Web] (Tuần 7-9)
[Giai đoạn 4: Kiểm thử tích hợp, Thử tải thực tế & Đánh giá] (Tuần 10-12)

Quản trị rủi ro kỹ thuật:

  • Hiện tượng sụt áp khi khởi động máy nén: Bố trí nguồn xung 5V/2A độc lập nuôi riêng vi điều khiển và module Relay, sử dụng tụ lọc nguồn 1000µF.
  • Nhiễu giao tiếp I2C trên đường dây dài: Bổ sung điện trở kéo lên (Pull-up Resistor) 4.7kΩ trên cả hai đường tín hiệu SDA và SCL.
  • Lỗi treo vòng quét 1-Wire khi cảm biến hỏng: Sử dụng non-blocking timer (millis()) để đọc DHT11 thay vì hàm delay() truyền thống.

Implementation và kết quả

Development process

Firmware của hệ thống được xây dựng trên nền tảng Arduino Core for ESP8266, tối ưu hóa các hàm callback bất đồng bộ để phục vụ WebServer.

Trích đoạn mã nguồn cấu hình chân và khởi tạo WebServer xử lý JSON:

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
#include <DHTesp.h>

char ssid[] = "Huynh Trung Van";
char pass[] = "606386899396";

DHTesp dht;
ESP8266WebServer server(80);

const int Pump1 = D0; // Relay điều khiển máy lạnh
int status_a1 = 1;    // Cờ tự động máy lạnh (1: Auto, 0: Manual)
const int Pump2 = D4; // Relay điều khiển máy phun sương
int status_a2 = 1;    // Cờ tự động máy phun sương (1: Auto, 0: Manual)

int Temp = 0;
int Humi = 0;
unsigned long timenow = 0;

void setup() {
  pinMode(Pump1, OUTPUT);
  pinMode(Pump2, OUTPUT);
  digitalWrite(Pump1, LOW); // Tắt tải ban đầu (Relay kích mức thấp)
  digitalWrite(Pump2, LOW);
  
  Serial.begin(115200);
  WiFi.begin(ssid, pass);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  
  // API Endpoint trả về trạng thái nút bấm
  server.on("/AllButton", HTTP_GET, []() {
    String json = "{";
    json += "\"auto1\":" + String(status_a1) + ",";
    json += "\"auto2\":" + String(status_a2) + ",";
    json += "\"Pump1\":" + String(digitalRead(Pump1)) + ",";
    json += "\"Pump2\":" + String(digitalRead(Pump2));
    json += "}";
    server.send(200, "application/json", json);
  });

  // API Endpoint đọc dữ liệu nhiệt ẩm
  server.on("/ReadDHT", HTTP_GET, []() {
    String json = "{";
    json += "\"Temp\":" + String(Temp) + ",";
    json += "\"Humi\":" + String(Humi) + ",";
    json += "\"Pump1\":" + String(digitalRead(Pump1)) + ",";
    json += "\"auto1\":" + String(status_a1) + ",";
    json += "\"Pump2\":" + String(digitalRead(Pump2)) + ",";
    json += "\"auto2\":" + String(status_a2);
    json += "}";
    server.send(200, "application/json", json);
  });

  server.begin();
  MDNS.begin("phongthuoc-iot");
}

Thuật toán điều khiển nhiệt ẩm vòng kín (Closed-loop Hysteresis Control):

  1. Định kỳ mỗi chu kỳ $1000\text{ ms}$, MCU đọc giá trị $T$ (Nhiệt độ) và $H$ (Độ ẩm) từ DHT11.
  2. Kiểm tra chế độ vận hành của kênh làm mát:
    • Nếu status_a1 == 1 (Chế độ tự động): Nếu $T \ge 32^\circ\text{C}$, xuất tín hiệu kích digitalWrite(Pump1, HIGH) bật máy nén lạnh. Khi nhiệt độ hạ xuống dưới $32^\circ\text{C}$, ngắt tiếp điểm digitalWrite(Pump1, LOW).
  3. Kiểm tra chế độ vận hành của kênh tạo ẩm:
    • Nếu status_a2 == 1 (Chế độ tự động): Nếu $H \le 72%$, xuất tín hiệu kích digitalWrite(Pump2, HIGH) bật máy phun sương. Khi độ ẩm tăng lên trên $72%$, tự động ngắt digitalWrite(Pump2, LOW).
  4. Nếu chuyển sang chế độ thủ công (status_a == 0), MCU nhận lệnh trực tiếp từ Web UI để đóng/ngắt tiếp điểm theo yêu cầu của quản trị viên.

Testing và validation

Hệ thống đã trải qua quá trình kiểm thử nghiêm ngặt tại phòng thí nghiệm:

Kịch bản kiểm thử Điều kiện kiểm thử Kết quả kỳ vọng Kết quả thực nghiệm Trạng thái
Độ nhạy cảm biến DHT11 Tăng nhiệt độ mô phỏng lên $33^\circ\text{C}$ Cảm biến cập nhật giá trị trong $\le 2\text{s}$ Dữ liệu cập nhật sau $1.2\text{s}$ Đạt
Tự động đóng cắt Relay 1 $T \ge 32^\circ\text{C}$ (Chế độ Auto) Relay 1 đóng, máy lạnh kích hoạt Relay 1 đóng ngay khi $T = 32^\circ\text{C}$ Đạt
Tự động ngắt Relay 2 $H$ tăng từ $68%$ lên $73%$ Relay 2 mở, ngắt máy phun sương Relay 2 ngắt chính xác tại $H = 73%$ Đạt
Phản hồi WebServer 5 Client kết nối đồng thời Thời gian tải trang $< 500\text{ ms}$ Thời gian phản hồi trung bình $180\text{ ms}$ Đạt
Giao tiếp I2C LCD1602 Vận hành liên tục 72 giờ Hiển thị rõ, không mất ký tự LCD chạy ổn định, không lỗi bộ nhớ Đạt

Các chỉ số hiệu năng đạt được (Performance Benchmarks):

  • Thời gian phản hồi API JSON cục bộ: $\sim 45\text{ ms}$.
  • Tần suất cập nhật màn hình LCD: $1.0\text{ Hz}$.
  • Công suất tiêu thụ của toàn bộ mạch điều khiển trung tâm: $< 1.5\text{ W}$ (ở chế độ phát Wi-Fi liên tục).

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

Hệ thống đã hiện thực hóa toàn diện mô hình phần cứng và phần mềm:

  • Hoàn thiện bo mạch điều khiển trung tâm nhỏ gọn, bố trí dây dẫn khoa học qua bus I2C.
  • Xây dựng giao diện Web theo chuẩn HTML5 trực quan, cho phép giám sát thông số thời gian thực và chuyển đổi linh hoạt giữa chế độ Tự động (Auto) và Thủ công (Manual).
  • Thuật toán điều phối hoạt động chính xác theo ngưỡng nhiệt $32^\circ\text{C}$ và ngưỡng ẩm $72%$, loại bỏ hoàn toàn các thao tác đóng ngắt thừa, bảo vệ tuổi thọ cho động cơ máy nén và máy bơm áp lực.

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

Dự án mang lại nhiều cải tiến kỹ thuật và giá trị ứng dụng thực tiễn:

  1. Kiến trúc nhúng tất cả trong một (All-in-One Embedded Server): Không cần trang bị máy tính chủ (PC Server) hoặc thuê hạ tầng Cloud đắt đỏ, bản thân chip ESP8266 đảm nhiệm đồng thời 3 vai trò: thu thập dữ liệu cảm biến, thực thi logic điều khiển thời gian thực và đóng vai trò WebServer cung cấp giao diện quản trị.
  2. Cơ chế điều hòa vi khí hậu bổ trợ: Kết hợp thông minh giữa hệ thống lạnh và hệ thống phun sương. Quá trình làm lạnh thông thường làm không khí bị khô; hệ thống phun sương tự động bù ẩm kịp thời bảo vệ vỏ nang thuốc, đồng thời quá trình bay hơi nước giúp hỗ trợ hạ nhiệt độ phòng nhanh hơn từ $5-10^\circ\text{C}$, tiết kiệm điện năng tiêu thụ cho máy nén lạnh.
  3. Tối ưu hóa tài nguyên phần cứng bằng I2C Bus: Khai thác module PCF8574 giao tiếp chuẩn I2C với màn hình LCD 16x2 giúp tiết kiệm $87.5%$ số chân I/O so với kết nối song song chuẩn HD44780 (từ 16 chân giảm còn 2 chân tín hiệu SDA/SCL), giải phóng tài nguyên GPIO của ESP8266 cho các module mở rộng khác.
+-------------------------------------------------------------------------+
|                  SO SÁNH CÁC GIẢI PHÁP ĐIỀU KHIỂN KHHO DƯỢC             |
+-------------------------------------------------------------------------+
| Tiêu chí              | Tủ điện Rơ-le cơ | Bộ Dixell/Carel | Đề tài IoT |
+-----------------------+------------------+-----------------+------------+
| Giám sát qua Web/WiFi | 0% (Không)       | Cần Card rời    | 100% Sẵn có|
| Độ chính xác ngưỡng   | Thấp (Cơ khí)    | Cao             | Cao        |
| Chi phí triển khai    | Trung bình       | Rất cao         | Cực thấp   |
| Tùy biến mã nguồn     | Không thể        | Đóng gói sẵn    | Hoàn toàn  |
+-------------------------------------------------------------------------+

Đóng góp về mặt kinh tế: Dự án giúp cắt giảm $100%$ chi phí nhân công ghi chép nhiệt ẩm định kỳ, giảm thiểu $85%$ chi phí lắp đặt thiết bị so với các hệ thống SCADA công nghiệp chuyên dụng, tạo ra giải pháp bảo quản thuốc an toàn cho các cơ sở y tế tuyến huyện, xã.


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

Hệ thống có khả năng ứng dụng trực tiếp trong nhiều bối cảnh thực tế:

  • Nhà thuốc bán lẻ & Chuỗi nhà thuốc GPP: Giám sát tủ bảo quản thuốc biệt dược, vắc-xin, sinh phẩm y tế cần kiểm soát nhiệt độ nghiêm ngặt.
  • Kho dược bệnh viện: Triển khai các nút cảm biến giám sát nhiều phòng lưu trữ thuốc tập trung.
  • Mô hình nông nghiệp công nghệ cao: Kiểm soát độ ẩm và nhiệt độ trong nhà kính trồng lan, nấm linh chi hoặc kho bảo quản hạt giống nông nghiệp.
sequenceDiagram
    participant User as Người quản trị (Web UI)
    participant ESP as ESP8266 WebServer
    participant DHT as Cảm biến DHT11
    participant Relay as Khối Relay & Động cơ

    DHT->>ESP: Gửi dữ liệu T=33°C, H=70% (1-Wire)
    Note over ESP: T >= 32°C & H <= 72% (Ngưỡng kích hoạt)
    ESP->>Relay: Kích D0=HIGH (Bật máy lạnh) & D4=HIGH (Bật phun sương)
    User->>ESP: Gửi yêu cầu HTTP GET /ReadDHT
    ESP-->>User: Trả về dữ liệu JSON vi khí hậu & Trạng thái tải

Hướng dẫn 5 bước triển khai hệ thống:

  1. Chuẩn bị phần cứng: 01 Kit NodeMCU ESP8266 CP2102, 01 Cảm biến DHT11, 01 Màn hình LCD 16x2 + I2C Backpack, 01 Module Relay 4 kênh 5V, 01 Nguồn xung 5V/2A.
  2. Đấu nối mạch: Nối chân Data của DHT11 vào chân GPIO trên ESP8266; Nối SDA vào D6, SCL vào D7; Nối IN1 vào D0 (Pump1), IN2 vào D4 (Pump2); Cấp nguồn 5V và GND chung.
  3. Nạp Firmware: Cài đặt driver CP2102, mở Arduino IDE, chọn board NodeMCU 1.0 (ESP-12E Module), cấu hình SSID/Password Wi-Fi và nạp code qua cổng MicroUSB.
  4. Đấu nối động lực: Đấu nối tiếp điểm thường mở (NO) của Relay 1 với nguồn cấp máy nén lạnh và Relay 2 với máy bơm phun sương 220V.
  5. Vận hành: Cấp nguồn, tra cứu địa chỉ IP qua Serial Monitor hoặc truy cập trực tiếp qua tên miền mDNS http://phongthuoc-iot.local để theo dõi Dashboard.

Phân tích hiệu quả đầu tư (Cost-Benefit & ROI Analysis):

  • Chi phí linh kiện phần cứng: ~400.000 VNĐ/bộ.
  • Chi phí nhân công giám sát thủ công truyền thống: ~2.500.000 VNĐ/tháng.
  • Thời gian hoàn vốn (ROI): Dưới 1 tháng vận hành nhờ cắt giảm thời gian lao động và ngăn ngừa nguy cơ hư hỏng thuốc do sự cố nhiệt.

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

Dự án đã nghiệm thu thành công nhưng vẫn tồn tại các giới hạn kỹ thuật cần tiếp tục nâng cấp:

+-------------------------------------------------------------------------+
|                  HẠN CHẾ HIỆN TẠI & HƯỚNG NÂNG CẤP                      |
+-------------------------------------------------------------------------+
| [Hạn chế 1] Cảm biến DHT11 dải đo hẹp (0-50°C, sai số ±2°C)             |
+-------------------------------------------------------------------------+
| [Hạn chế 2] Chưa có cơ sở dữ liệu lưu log lịch sử dài hạn               |
+-------------------------------------------------------------------------+
| [Hạn chế 3] WebServer hoạt động giới hạn trong mạng LAN Wi-Fi           |
+-------------------------------------------------------------------------+
| [Hạn chế 4] Mất kiểm soát khi mất nguồn điện lưới 220V                  |
+-------------------------------------------------------------------------+

Hướng nghiên cứu mở rộng:

  • Tích hợp thuật toán điều khiển mờ (Fuzzy Logic) hoặc thuật toán PID để điều tiết công suất máy nén lạnh biến tần (Inverter) và lưu lượng béc phun sương theo tốc độ biến thiên nhiệt độ môi trường.
  • Bổ sung tính năng cảnh báo sự cố khẩn cấp qua tin nhắn SMS (Module SIM800L) hoặc Bot Telegram khi nhiệt độ vượt ngưỡng báo động đỏ ($T > 35^\circ\text{C}$).

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

Hệ thống mang lại giá trị thiết thực cho nhiều nhóm đối tượng:

  • Sinh viên chuyên ngành Kỹ thuật (Điện tử, Tự động hóa, CNTT): Nguồn tài liệu tham khảo hoàn chỉnh từ thiết kế sơ đồ nguyên lý phần cứng, giao tiếp cảm biến 1-Wire, điều khiển LCD qua I2C đến kỹ thuật xây dựng RESTful WebServer nhúng trên vi điều khiển ESP8266.
  • Kỹ sư và Lập trình viên IoT: Mẫu kiến trúc tham khảo trong việc xây dựng hệ thống điều khiển biên (Edge Control) độc lập, kết hợp phương pháp đóng ngắt an toàn cho các tải công suất lớn có tính cảm kháng.
  • Chủ nhà thuốc, Doanh nghiệp Dược phẩm: Sở hữu công cụ tự động hóa giám sát vi khí hậu tin cậy với chi phí đầu tư ban đầu thấp, đáp ứng đầy đủ các tiêu chuẩn thanh kiểm tra GSP/GPP, bảo vệ an toàn cho các lô dược phẩm giá trị cao.
  • Nhà nghiên cứu nông nghiệp & bảo quản thực phẩm: Nền tảng phần cứng mở sẵn sàng tùy biến để thử nghiệm các mô hình kiểm soát vi khí hậu trong nhà màng hoặc kho bảo quản nông sản sau thu hoạch.

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

1. Yêu cầu kỹ thuật phần cứng và nguồn điện để triển khai hệ thống là gì?

Hệ thống yêu cầu nguồn cấp một chiều ổn định $5\text{VDC} - 2\text{A}$ (qua cổng MicroUSB hoặc chân Vin của NodeMCU) để nuôi vi điều khiển, màn hình LCD và cuộn hút của Relay. Đối với thiết bị chấp hành, các tiếp điểm Relay chịu tải tối đa $250\text{VAC}/10\text{A}$ hoặc $30\text{VDC}/10\text{A}$, phù hợp với các dòng máy nén lạnh công suất dưới $1.5\text{ HP}$ và máy bơm phun sương $220\text{V}$ dân dụng.

2. Giới hạn mở rộng (Scalability) của hệ thống là bao nhiêu và giải pháp khắc phục?

Do ESP8266 đóng vai trò WebServer độc lập, chip chỉ có thể đáp ứng ổn định $4-6$ kết nối HTTP đồng thời từ trình duyệt. Khi mở rộng giám sát hàng chục phòng thuốc trong một bệnh viện, giải pháp tối ưu là chuyển đổi giao thức truyền thông từ HTTP sang MQTT: các node ESP8266 đóng vai trò MQTT Client gửi dữ liệu định kỳ về một MQTT Broker tập trung (như Mosquitto trên Raspberry Pi hoặc máy chủ trung tâm).

3. Làm thế nào để tích hợp hệ thống với hạ tầng SCADA/BMS hiện có của tòa nhà?

Hệ thống cung cấp sẵn các Endpoint xuất dữ liệu dưới định dạng chuẩn JSON (/ReadDHT). Bất kỳ hệ thống SCADA, BMS hoặc phần mềm quản trị bệnh viện nào cũng có thể định kỳ gửi các bản tin HTTP GET để thu thập thông số nhiệt độ, độ ẩm và trạng thái thiết bị mà không cần sửa đổi phần cứng.

4. Quy trình bảo trì, hiệu chuẩn cảm biến và xử lý sự cố định kỳ như thế nào?

Cảm biến DHT11 cần được vệ sinh bụi bẩn bám trên màng đo định kỳ 3 tháng/lần. Để duy trì độ chính xác cao nhất cho kho thuốc, nên thực hiện hiệu chuẩn so sánh với nhiệt ẩm kế chuẩn kiểm định 6 tháng/lần. Nếu cảm biến có dấu hiệu trôi dạt thông số (Drift), việc thay thế diễn ra dễ dàng nhờ thiết kế chân cắm module hóa mà không cần nạp lại firmware.

5. Chi tiết bảng dự toán chi phí và thời gian thu hồi vốn (ROI) thực tế?

Tổng chi phí linh kiện gồm: Kit ESP8266 NodeMCU (~90.000 VNĐ), Cảm biến DHT11 (~35.000 VNĐ), Module LCD1602 + I2C (~65.000 VNĐ), Module Relay 4 kênh Opto (~55.000 VNĐ), Nguồn xung 5V/2A + phụ kiện hộp bảo vệ (~110.000 VNĐ). Tổng chi phí phần cứng khoảng 355.000 VNĐ. So với việc thuê nhân viên ghi sổ định kỳ hoặc tổn thất khi một lô thuốc bị hỏng do quá nhiệt (thường từ vài chục đến hàng trăm triệu đồng), thời gian thu hồi vốn thực tế đạt được ngay trong tháng đầu tiên lắp đặt.


Kết luận

Đề tài tốt nghiệp "Điều khiển nhiệt độ, độ ẩm trong phòng bảo quản thuốc" của nhóm sinh viên Trường Đại học Bà Rịa - Vũng Tàu đã chứng minh tính khả thi, độ tin cậy và giá trị ứng dụng cao của công nghệ Internet of Things (IoT) trong việc tự động hóa giám sát y tế.

Bằng việc kết hợp vi điều khiển SoC ESP8266, cảm biến DHT11 và module Relay cách ly quang, hệ thống đã giải quyết triệt để bài toán giám sát liên tục, phản hồi điều khiển máy lạnh và máy phun sương tức thời khi vi khí hậu vượt ngưỡng ($T \ge 32^\circ\text{C}$, $H \le 72%$). Với chi phí phần cứng tối ưu dưới 400.000 VNĐ cùng giao diện Web nhúng trực quan, giải pháp mở ra tiềm năng ứng dụng rộng rãi cho các nhà thuốc GPP và cơ sở y tế tuyến cơ sở, góp phần nâng cao chất lượng bảo quản dược phẩm và bảo vệ sức khỏe cộng đồng.