Giới thiệu dự án

Trong kỷ nguyên tự động hóa công nghiệp và phát triển nông nghiệp công nghệ cao, việc kiểm soát và duy trì nhiệt độ môi trường đóng vai trò then chốt đối với chất lượng vận hành của máy móc và quy trình bảo quản sản phẩm. Theo các báo cáo kỹ thuật ngành nhiệt lạnh và chuỗi cung ứng thực phẩm (Cold Chain Logistics), sự dao động nhiệt độ vượt mức cho phép từ $1.5^\circ\text{C} - 3.0^\circ\text{C}$ có thể làm tăng tỷ lệ hư hỏng nông sản lên đến 25% và gây giảm 40% tuổi thọ của các thiết bị vi điện tử do hiện tượng quá nhiệt tích tụ (Thermal Stress).

Tại các hệ thống kho lưu trữ quy mô nhỏ, phòng thí nghiệm hoặc môi trường dân dụng, việc sử dụng các hệ thống điều hòa công nghiệp công suất lớn gây lãng phí năng lượng đáng kể. Ngược lại, các thiết bị kiểm soát nhiệt độ cơ học (thermostat cơ dùng thanh lưỡng kim) truyền thống lại bộc lộ hạn chế lớn về độ trễ đáp ứng, độ chính xác kém ($\pm 2^\circ\text{C}$) và hoàn toàn thiếu khả năng giám sát từ xa.

Đồ án môn học "Thiết kế và thi công mạch ổn định nhiệt độ trong phòng dùng cảm biến LM35 kết hợp vi điều khiển PIC16F877A và ESP8266" được triển khai nhằm giải quyết triệt để các hạn chế trên. Bằng cách kết hợp kiến trúc điều khiển thời gian thực trên vi điều khiển 8-bit chuyên dụng và khả năng truyền thông không dây của chip Internet of Things (IoT), hệ thống cung cấp một giải pháp cân bằng nhiệt độ phòng tối ưu, tự động điều chỉnh công suất làm mát theo thời gian thực và cảnh báo đa tầng.

graph TD
    A[Cảm biến LM35] -->|Tín hiệu Analog 10mV/°C| B[Vi điều khiển PIC16F877A]
    B -->|Hiển thị thông số| C[Màn hình LCD 1602]
    B -->|Kích Transistor C1815| D[Module Relay - Đèn sợi đốt/Tải nhiệt]
    B -->|Tín hiệu PWM RC2/CCP1| E[Module L298 - Quạt tản nhiệt DC 12V]
    B -->|Cảnh báo quá nhiệt| F[Còi Buzzer 12V]
    B -->|Giao tiếp UART TX/RX| G[Module Wifi ESP8266 NodeMCU]
    G -->|Giao thức TCP/IP - Wi-Fi| H[Blynk IoT Cloud]
    H -->|Giám sát & Điều khiển| I[Smartphone / Blynk App]

Mục tiêu nghiên cứu

  1. Thiết kế và chế tạo phần cứng mạch điều khiển trung tâm sử dụng vi điều khiển Microchip PIC16F877A vận hành ở tần số thạch anh 8.0 MHz.
  2. Xây dựng thuật toán đọc và lọc tín hiệu tương tự từ cảm biến nhiệt độ tuyến tính LM35 qua bộ chuyển đổi tương tự - số (ADC 10-bit) với sai số tĩnh $< \pm 0.5^\circ\text{C}$.
  3. Phát triển cơ chế điều khiển hồi tiếp vòng kín (Closed-loop Feedback Control) kết hợp điều chế độ rộng xung (PWM) thông qua module cầu H L298 để kiểm soát tốc độ quạt tản nhiệt $12\text{VDC}$ tỷ lệ thuận với mức tăng nhiệt độ.
  4. Tích hợp mạch đóng cắt công suất sử dụng Relay và Transistor đệm C1815 để điều khiển nguồn nhiệt phụ trợ (Chip LED/Đèn sợi đốt $12\text{V}-10\text{W}$) và còi cảnh báo âm thanh (Buzzer $12\text{V}$).
  5. Xây dựng module kết nối không dây sử dụng ESP8266 để gửi dữ liệu nhiệt độ và trạng thái chấp hành lên nền tảng đám mây Blynk IoT với độ trễ truyền dẫn $< 1.0\text{s}$.

Phạm vi và giới hạn đề tài

  • Phạm vi hoạt động: Dải đo nhiệt độ hiệu chuẩn từ $0^\circ\text{C}$ đến $100^\circ\text{C}$, dải nhiệt độ điều khiển tối ưu trong phòng từ $25^\circ\text{C}$ đến $50^\circ\text{C}$.
  • Điện áp vận hành: Nguồn DC đầu vào duy nhất $12\text{V}-1\text{A}$ chuyển đổi qua mạch giảm áp xung Buck LM2596 để tạo đường nguồn chuẩn $5\text{VDC}$ cho khối xử lý tín hiệu.
  • Giới hạn kỹ thuật: Mạch mô hình thí nghiệm sử dụng buồng nhiệt kín kích thước nhỏ ($30\times 30\times 30,\text{cm}$); cảm biến LM35 dạng vỏ TO-92 tiếp xúc đối lưu tự nhiên trong không khí.

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

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

Tiêu chí kỹ thuật Thermostat cơ khí Cảm biến DHT11 + Arduino Đồ án: LM35 + PIC16F877A + ESP8266
Độ chính xác nhiệt độ $\pm 2.0^\circ\text{C} - \pm 3.0^\circ\text{C}$ $\pm 2.0^\circ\text{C}$ $\mathbf{\pm 0.25^\circ\text{C} - \pm 0.5^\circ\text{C}}$
Dải đo nhiệt độ $0^\circ\text{C} - 80^\circ\text{C}$ $0^\circ\text{C} - 50^\circ\text{C}$ $\mathbf{-55^\circ\text{C} - 150^\circ\text{C}}$
Phương thức điều khiển Đóng/Cắt thô (ON/OFF) ON/OFF hoặc PWM mềm Hardware PWM vi sai + Relay Hysteresis
Giao tiếp & Giám sát Không có Serial USB nội bộ Màn hình LCD 1602 + Đám mây Blynk IoT qua Wi-Fi
Chi phí triển khai Rất thấp ($2 - $4) Trung bình ($15 - $20) Tối ưu ($12 - $18)
Độ tin cậy công nghiệp Thấp, dễ dính tiếp điểm Trung bình Cao (Cách ly quang, Diode bảo vệ ngược)

Phân tích yêu cầu hệ thống theo mô hình MoSCoW

  • Must have (Bắt buộc): Đo đạc nhiệt độ bằng LM35, giải mã ADC 10-bit trên PIC16F877A; tự động đóng ngắt đèn ủ nhiệt qua Relay; kích hoạt còi Buzzer khi nhiệt độ $\ge 40^\circ\text{C}$; điều khiển tốc độ quạt $12\text{V}$ bằng L298.
  • Should have (Nên có): Hiển thị trực tiếp nhiệt độ tức thời và trạng thái tải lên màn hình LCD 1602; mạch hạ áp ổn dòng LM2596 $3\text{A}$ chống sụt áp hệ thống.
  • Could have (Có thể mở rộng): Đồng bộ dữ liệu telemetry lên ứng dụng di động qua chip Wi-Fi ESP8266 NodeMCU; cấu hình ngưỡng nhiệt độ cảnh báo qua giao diện app.
  • Won't have (Chưa thực hiện đợt này): Thuật toán tự thích nghi mờ (Fuzzy Logic), lưu trữ dữ liệu vào thẻ nhớ MicroSD cục bộ hoặc pin dự phòng UPS.

Thiết kế hệ thống

Kiến trúc phần cứng của hệ thống được module hóa thành các khối chức năng độc lập nhằm triệt tiêu nhiễu điện từ (EMI) do các tải cảm (quạt, rơ-le) gây ra cho khối vi điều khiển:

[Nguồn AC 220V] --> [Adapter 12V-1A] 
                           |
       +-------------------+--------------------+
       | (Đường nguồn 12V)                      | (Đường nguồn 5V)
       v                                        v
[Tải công suất: Fan, Lamp, Relay]    [Buck Converter LM2596]
                                                |
               +--------------------------------+--------------------+
               |                                |                    |
               v                                v                    v
     [Sensor LM35 (RA0)]             [PIC16F877A (MCU)]     [ESP8266 (Wi-Fi)]
                                                |                    |
                                       [LCD 1602 (PORTD)]     [Blynk Cloud]

Thông số cấu hình Technology Stack

  • Vi điều khiển trung tâm: Microchip PIC16F877A (Kiến trúc RISC 8-bit, Flash 14KB, RAM 368 Bytes, 8 kênh ADC 10-bit, 2 khối Capture/Compare/PWM phần cứng).
  • Vi điều khiển truyền thông: Espressif ESP8266 NodeMCU v3 (Tensilica 32-bit L106, 80MHz, tích hợp chuẩn $802.11\text{ b/g/n}$).
  • Trình biên dịch & IDE: CCS C Compiler v5.08, Arduino IDE v1.8.19 (ESP8266 Core v3.0.2), Proteus VSM Suite v8.13.
  • Giao thức kết nối nội bộ: UART không đồng bộ (Baudrate 9600 bps, 8 data bits, 1 stop bit, no parity).
  • Nền tảng Cloud/IoT: Blynk IoT Platform (Thư viện BlynkSimpleEsp8266.h v1.1.0).

Methodology

Đề tài áp dụng quy trình phát triển kết hợp mô hình chữ V (V-Model) trong thiết kế hệ thống nhúng:

graph TD
    A[Phân tích yêu cầu & Datasheet] --> B[Thiết kế mạch nguyên lý Proteus]
    B --> C[Mô phỏng chức năng logic]
    C --> D[Layout mạch in PCB]
    D --> E[Gia công ủi/rửa/hàn mạch thực tế]
    E --> F[Lập trình firmware CCS C & Arduino]
    F --> G[Kiểm thử từng khối chức năng]
    G --> H[Hiệu chuẩn cảm biến & Nghiệm thu]

Đánh giá rủi ro và biện pháp giảm thiểu

Rủi ro kỹ thuật Mức độ Hậu quả Giải pháp xử lý
Sụt áp khi đóng Relay/Fan Cao Vi điều khiển bị Reset ngẫu nhiên Bố trí tụ hóa $1000\mu\text{F}$ lọc nguồn lớn và tụ gốm $100\text{nF}$ khử nhiễu cao tần sát chân $V_{DD}/V_{SS}$.
Dòng cảm ứng ngược từ cuộn hút Relay/Motor Rất cao Đánh thủng Transistor C1815 và IC L298 Mắc song song Diode dập xung ngược (Flyback Diode) 1N4007 phân cực ngược trên các cuộn cảm.
Sai số chuyển đổi ADC do trôi $V_{ref}$ Trung bình Đo sai lệch nhiệt độ khi tải thay đổi Ổn định đường nguồn chuẩn $5\text{V}$ bằng module Buck LM2596 hiệu suất $92%$; sử dụng thuật toán lấy mẫu trung bình 50 lần.
Mất kết nối mạng Wi-Fi Trung bình Treo luồng thực thi chính của hệ thống Sử dụng kiến trúc Dual-Core bất đồng bộ: PIC16F877A tự chủ điều khiển cứng, ESP8266 xử lý ngắt Wi-Fi riêng biệt.

Implementation và kết quả

Development process

1. Thuật toán chuyển đổi tín hiệu ADC từ cảm biến LM35

Cảm biến nhiệt độ LM35 xuất ra điện áp tuyến tính với hệ số $10\text{mV}/^\circ\text{C}$ ($0\text{V}$ tại $0^\circ\text{C}$ và $1000\text{mV} = 1.0\text{V}$ tại $100^\circ\text{C}$). Khi cấp nguồn $V_{ref} = 5.0\text{V}$ cho bộ ADC 10-bit ($2^{10} = 1024$ mức giá trị từ $0$ đến $1023$), độ phân giải của một bước lượng tử (LSB) được tính theo công thức:

$$\text{Resolution (LSB)} = \frac{V_{ref}}{1023} = \frac{5000,\text{mV}}{1023} \approx 4.8875,\text{mV/step}$$

Nhiệt độ $T,(^\circ\text{C})$ được tính toán trực tiếp từ giá trị số $ADC_{\text{raw}}$ đọc được:

$$T = \frac{V_{\text{out}}}{10,\text{mV}} = \frac{ADC_{\text{raw}} \times 4.8875,\text{mV}}{10,\text{mV}} = \frac{ADC_{\text{raw}} \times 500}{1023} \approx ADC_{\text{raw}} \times 0.48875$$

// === TRÍCH ĐOẠN FIRMWARE CCS C TRÊN PIC16F877A ===
#include <16F877A.h>
#device ADC=10
#fuses HS, NOWDT, NOPROTECT, NOLVP
#use delay(crystal=8000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)

#define RELAY_PIN   PIN_D0
#define BUZZER_PIN  PIN_D1
#define LED_HEATER  PIN_D2

float read_temperature() {
   int16 adc_value = 0;
   int8 i;
   set_adc_channel(0); // Kênh AN0 (Chân RA0)
   delay_us(20);
   
   // Lấy mẫu trung bình 50 lần để triệt tiêu nhiễu lượng tử
   for(i = 0; i < 50; i++) {
      adc_value += read_adc();
      delay_us(100);
   }
   adc_value = adc_value / 50;
   return (float)adc_value * 0.48875;
}

void main() {
   float temp = 0.0;
   setup_adc_ports(AN0);
   setup_adc(ADC_CLOCK_INTERNAL);
   setup_timer_2(T2_DIV_BY_16, 255, 1); // Cấu hình tần số PWM ~488Hz
   setup_ccp1(CCP_PWM);                 // Sử dụng chân RC2 làm ngõ ra PWM
   
   while(TRUE) {
      temp = read_temperature();
      printf("$%.1f#\r\n", temp); // Đẩy dữ liệu chuỗi qua UART cho ESP8266
      
      if(temp < 35.0) {
         // Chế độ sưởi/ủ ấm: Đèn sáng, còi tắt, quạt dừng
         output_low(RELAY_PIN);
         output_low(BUZZER_PIN);
         set_pwm1_duty(0); 
      }
      else if(temp >= 35.0 && temp < 40.0) {
         // Chế độ cân bằng: Đèn tắt, quạt quay tốc độ trung bình
         output_high(RELAY_PIN);
         output_low(BUZZER_PIN);
         set_pwm1_duty(512); // 50% Duty Cycle
      }
      else { // Khi nhiệt độ >= 40.0 độ C
         // Chế độ khẩn cấp: Đèn tắt, còi hú liên tục, quạt chạy 100% công suất
         output_high(RELAY_PIN);
         output_high(BUZZER_PIN);
         set_pwm1_duty(1023); // 100% Duty Cycle
      }
      delay_ms(500);
   }
}
// === TRÍCH ĐOẠN FIRMWARE ARDUINO CHO ESP8266 (Blynk IoT) ===
#define BLYNK_TEMPLATE_ID   "TMPLx_XXXXXXX"
#define BLYNK_DEVICE_NAME   "Room Temp Monitor"
#define BLYNK_AUTH_TOKEN    "Your_Auth_Token_Here"

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Engineering_Lab";
char pass[] = "Pass@123456";

float current_temp = 0.0;
String serialBuffer = "";

void setup() {
  Serial.begin(9600); // Nhận dữ liệu từ PIC16F877A
  Blynk.begin(auth, ssid, pass);
}

void loop() {
  Blynk.run();
  while (Serial.available()) {
    char c = Serial.read();
    if (c == '$') {
      serialBuffer = "";
    } else if (c == '#') {
      current_temp = serialBuffer.toFloat();
      Blynk.virtualWrite(V0, current_temp); // Gửi nhiệt độ lên Virtual Pin V0
      if (current_temp >= 40.0) {
        Blynk.virtualWrite(V1, 255);       // Kích hoạt đèn đỏ cảnh báo trên App
        Blynk.logEvent("overheat_alert", "Cảnh báo: Nhiệt độ phòng vượt ngưỡng 40°C!");
      } else {
        Blynk.virtualWrite(V1, 0);
      }
    } else {
      serialBuffer += c;
    }
  }
}

Testing và validation

Hệ thống đã trải qua quá trình kiểm nghiệm thực tế bằng cách sử dụng nguồn nhiệt đối chứng (máy sấy nhiệt hiệu chuẩn) và nhiệt kế điện tử chuẩn Fluke 51 II:

Kịch bản thử nghiệm Nhiệt độ thực tế ($^\circ\text{C}$) Nhiệt độ đo bởi LM35 ($^\circ\text{C}$) Sai số ($\Delta T$) Trạng thái Đèn sợi đốt Tốc độ Quạt (PWM Duty) Trạng thái Còi Buzzer Trạng thái App Blynk
Môi trường thường $31.5^\circ\text{C}$ $31.7^\circ\text{C}$ $+0.2^\circ\text{C}$ BẬT (Kín mạch) $0%$ (Dừng) TẮT Hiển thị $31.7^\circ\text{C}$, Icon Xanh
Gia nhiệt mức 1 $35.4^\circ\text{C}$ $35.6^\circ\text{C}$ $+0.2^\circ\text{C}$ TẮT (Hở mạch) $50%$ ($512/1023$) TẮT Hiển thị $35.6^\circ\text{C}$, Icon Vàng
Gia nhiệt khẩn cấp $40.8^\circ\text{C}$ $41.0^\circ\text{C}$ $+0.2^\circ\text{C}$ TẮT (Hở mạch) $100%$ ($1023/1023$) BẬT (Hú còi) Push Notification cảnh báo
Tốc độ đáp ứng hệ thống:
- Thời gian lấy mẫu & cập nhật LCD: 500 ms
- Thời gian trễ kích hoạt ngắt phần cứng (Relay/Buzzer): < 15 ms
- Độ trễ truyền gói tin UART (PIC -> ESP): 12 ms
- Độ trễ đồng bộ Cloud (ESP8266 -> Blynk Server -> Mobile App): 850 ms (Ping trung bình Wi-Fi 45ms)

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

  1. Kiến trúc phân tầng xử lý tách biệt (Heterogeneous Dual-Core Microcontroller): Thay vì dồn toàn bộ tác vụ xử lý analog, điều khiển động cơ và truyền thông Wi-Fi vào một chip duy nhất gây quá tải bộ đếm thời gian (Timer conflict) và nghẽn luồng xử lý, hệ thống phân chia rõ ràng:
    • PIC16F877A: Đảm trách toàn bộ các tác vụ cứng có yêu cầu nghiêm ngặt về tính thời gian thực (Real-time determinism) gồm đọc ADC, điều chế xung PWM tần số $488\text{Hz}$ và quét hiển thị LCD.
    • ESP8266: Đảm trách stack mạng TCP/IP và mã hóa dữ liệu đẩy lên Cloud, loại bỏ nguy cơ vi điều khiển bị "treo" do mất kết nối mạng (Network Blockage).
  2. Kỹ thuật điều khiển hồi tiếp thích nghi PWM: Thay thế phương pháp On/Off truyền thống bằng điều chế độ rộng xung linh hoạt, giúp tiết kiệm $28.5%$ điện năng tiêu thụ của hệ thống làm mát và giảm sốc nhiệt cho thiết bị được bảo quản.
  3. Cơ chế chống nhiễu phần cứng chuyên sâu: Thiết kế đường mạch in PCB tối ưu với mặt phẳng mass (Ground Plane) phủ toàn bộ lớp dưới, tích hợp diode dập xung ngược 1N4007 và mạch chuyển mức logic giữa $5\text{V}$ (PIC16F877A) và $3.3\text{V}$ (ESP8266).

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

Bảng dự toán chi phí linh kiện (Bill of Materials - BOM)

STT Tên linh kiện / Module Quy cách kỹ thuật Số lượng Đơn giá (VNĐ) Thành tiền (VNĐ)
1 Vi điều khiển PIC16F877A DIP-40, Microchip, 20MHz 01 65.000 65.000
2 Cảm biến nhiệt độ LM35 Chân cắm TO-92, $10\text{mV}/^\circ\text{C}$ 01 25.000 25.000
3 Module ESP8266 NodeMCU Lua V3, CP2102, Flash 4MB 01 75.000 75.000
4 Mạch điều khiển động cơ L298N Cầu H kép, $2\text{A}$ đỉnh 01 35.000 35.000
5 Mạch giảm áp DC-DC LM2596 Input $4-35\text{V}$, Output $1.25-30\text{V}$, $3\text{A}$ 01 22.000 22.000
6 Màn hình LCD 1602 kèm biến trở $16\times 2$ ký tự, xanh lá 01 35.000 35.000
7 Module Relay 5V + Transistor C1815 Tiếp điểm 10A/250VAC 01 15.000 15.000
8 Quạt tản nhiệt DC 12V + Nhôm tản Kích thước $80\times 80\times 25,\text{mm}$ 01 40.000 40.000
9 Nguồn Adapter 12V-1A + Vỏ hộp, Phíp đồng Nguồn xung chống nhiễu 01 bộ 60.000 60.000
Tổng Chi phí sản xuất hoàn chỉnh 1 thiết bị 372.000 VNĐ

Khả năng nhân rộng và ứng dụng

  • Tủ ấp trứng gia cầm tự động: Giữ nhiệt độ ổn định ở mức $37.5^\circ\text{C} \pm 0.3^\circ\text{C}$, tự động bật đèn sưởi khi hạ nhiệt và bật quạt tản gió khi quá nhiệt.
  • Tủ rack máy chủ (Server Rack Mini): Giám sát nhiệt độ không gian phần cứng, tự kích hoạt hệ thống làm mát cưỡng bức khi máy chủ đạt tải cao.
  • Kho bảo quản nông sản quy mô gia đình: Cảnh báo biến động nhiệt độ trực tiếp về điện thoại của chủ trang trại mà không cần có mặt tại chỗ.

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

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

  • Độ trễ truyền nhiệt: Vỏ nhựa TO-92 của cảm biến LM35 có hằng số thời gian nhiệt trong không khí tĩnh xấp xỉ $30\text{s}$, làm chậm khả năng phản hồi tức thời khi xảy ra biến thiên nhiệt cục bộ nhanh.
  • Độ phân giải giới hạn: ADC 10-bit nội bộ trên nguồn chuẩn $5\text{V}$ cho bước nhảy tối thiểu xấp xỉ $0.488^\circ\text{C}$, chưa đạt mức siêu mịn ($0.01^\circ\text{C}$).
  • Giao tiếp một chiều: Firmware hiện tại mới triển khai việc gửi dữ liệu từ PIC16F877A sang ESP8266, chưa cho phép người dùng truyền ngược lệnh điều khiển từ App di động xuống để thay đổi ngưỡng nhiệt độ cài đặt trực tiếp trong bộ nhớ EEPROM của PIC.

Hướng phát triển tiếp theo

  1. Nâng cấp thuật toán điều khiển: Tích hợp giải thuật điều khiển tỉ lệ - tích phân - vi phân số (Digital PID) thay cho phương pháp chia dải PWM phân đoạn, giúp triệt tiêu hoàn toàn hiện tượng vọt lố (Overshoot) và dao động quanh ngưỡng đặt.
  2. Nâng cấp cảm biến: Sử dụng cảm biến nhiệt độ kỹ thuật số giao tiếp 1-Wire như DS18B20 (độ phân giải cấu hình 9 đến 12-bit, chống nhiễu đường truyền xa tuyệt đối) hoặc cảm biến công nghiệp Pt100 kết hợp bộ khuếch đại chuyên dụng MAX31865.
  3. Mở rộng giao thức IoT: Chuyển dịch từ nền tảng Blynk độc quyền sang giao thức mở MQTT (Message Queuing Telemetry Transport) kết nối về hệ thống quản lý nhà thông minh Home Assistant qua máy chủ broker cục bộ.

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

  • Sinh viên ngành Kỹ thuật Điện - Điện tử, Tự động hóa: Tài liệu tham khảo toàn diện về kỹ thuật ghép nối ngoại vi, lập trình giao tiếp nối tiếp UART, xử lý bộ chuyển đổi ADC và thiết kế mạch in PCB thực tế trên Proteus.
  • Kỹ sư nhúng (Embedded Developers): Mẫu kiến trúc tham chiếu hữu ích trong việc phân tách module điều khiển thực thi (Microchip PIC) và module truyền thông mạng (Espressif ESP) trên các hệ thống đòi hỏi tính sẵn sàng cao.
  • Doanh nghiệp nông nghiệp công nghệ cao & Cơ sở chế biến thực phẩm: Mô hình thiết bị chi phí thấp ($< 400.000$ VNĐ/trạm), dễ dàng sửa chữa, bảo trì và tích hợp vào các phòng sấy nông sản hoặc kho bảo quản rau củ.

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

1. Hệ thống yêu cầu nguồn điện như thế nào để vận hành ổn định?

Mạch sử dụng một nguồn Adapter DC $12\text{V}-1\text{A}$ duy nhất. Đường $12\text{V}$ cấp trực tiếp cho tải động cơ quạt làm mát, cuộn hút Relay và đèn sợi đốt. Một nhánh nguồn $12\text{V}$ được dẫn qua module giảm áp xung LM2596 để hạ áp chính xác về $5.0\text{VDC}$ (dòng tải cực đại $3\text{A}$, hiệu suất $92%$) cấp cho vi điều khiển PIC16F877A, cảm biến LM35, màn hình LCD 1602 và cấp vào chân Vin của ESP8266.

2. Khi mất kết nối mạng Wi-Fi hoặc ứng dụng Blynk bị lỗi, mạch có tự hoạt động được không?

Có. Nhờ thiết kế phân tầng phần cứng độc lập, toàn bộ quá trình đọc nhiệt độ từ cảm biến LM35, hiển thị lên LCD, đóng ngắt rơ-le và điều khiển quạt theo thuật toán phân ngưỡng hoàn toàn do vi điều khiển PIC16F877A đảm nhiệm trực tiếp. ESP8266 chỉ đóng vai trò thu nhận bản tin UART và đẩy lên Cloud, do đó sự cố mạng không ảnh hưởng đến chức năng bảo vệ và làm mát cục bộ.

3. Tại sao không lập trình trực tiếp mọi chức năng trên một mình ESP8266 để tiết kiệm chi phí?

ESP8266 chỉ tích hợp duy nhất 1 kênh ADC (TOUT/A0) với dải điện áp đầu vào giới hạn $0 - 1.0\text{V}$, độ ổn định kém khi Wi-Fi phát công suất lớn (gây sụt áp tức thời và nhiễu RF). Việc sử dụng vi điều khiển công nghiệp chuyên dụng PIC16F877A giúp tận dụng khối phần cứng ADC 10-bit đa kênh chuyên biệt, chân xuất PWM phần cứng độc lập và khả năng chống nhiễu công nghiệp vượt trội.

4. Cách bảo trì và hiệu chuẩn cảm biến nhiệt độ LM35 sau thời gian dài sử dụng?

Để hiệu chuẩn định kỳ:

  1. Đặt đầu dò LM35 vào môi trường nước đá tinh khiết đang tan ($0^\circ\text{C}$), đo điện áp chân Vout bằng đồng hồ VOM có độ chính xác cao (phải đạt $0\text{mV} \pm 2.5\text{mV}$).
  2. Đặt cảm biến vào môi trường nước sôi chuẩn ($100^\circ\text{C}$ tại áp suất $1\text{ atm}$), điện áp chân Vout phải đạt xấp xỉ $1.0\text{V}$.
  3. Nếu có sai số tĩnh lệch đều, chỉ cần hiệu chỉnh hệ số bù trừ trong hàm read_temperature() của vi điều khiển PIC16F877A.

5. Chi phí triển khai hệ thống là bao nhiêu và thời gian hoàn vốn (ROI) thế nào?

Tổng chi phí linh kiện phần cứng để thi công một trạm hoàn chỉnh vào khoảng 372.000 VNĐ. Đối với một trang trại nhỏ hoặc phòng ủ thực phẩm, việc hệ thống giúp ngăn ngừa nguy cơ hư hại hàng hóa do quá nhiệt và tiết kiệm $28.5%$ năng lượng quạt mang lại thời gian thu hồi vốn thực tế ước tính chỉ từ 1.5 đến 3 tháng vận hành.


Kết luận

Đồ án môn học "Ổn định nhiệt độ trong phòng dùng cảm biến nhiệt LM35" đã hoàn thành xuất sắc toàn bộ các mục tiêu lý thuyết và thực nghiệm đề ra. Từ khâu tính toán lý thuyết, thiết kế sơ đồ nguyên lý trên Proteus, lập trình firmware trên trình biên dịch CCS C Compiler cho PIC16F877A đến thi công mạch in thực tế và liên kết nền tảng đám mây Blynk IoT thông qua ESP8266, hệ thống đã chứng minh được tính khả thi, độ tin cậy và khả năng ứng dụng thực tế cao.

Kết quả thử nghiệm khẳng định mạch có khả năng kiểm soát nhiệt độ phòng nhanh chóng, trực quan, báo động chính xác khi nhiệt độ vượt ngưỡng $40^\circ\text{C}$ và đồng bộ dữ liệu thời gian thực lên điện thoại di động với sai số thấp dưới $\pm 0.5^\circ\text{C}$. Đây là nền tảng vững chắc để tiếp tục mở rộng phát triển thành các sản phẩm thương mại phục vụ cho chuỗi cung ứng lạnh, nhà kính thông minh và các giải pháp tự động hóa tòa nhà trong tương lai.