Giới thiệu dự án

Ngành chăn nuôi bò sữa và bò thịt tại Việt Nam đang đứng trước yêu cầu cấp thiết về hiện đại hóa quy trình quản lý nhằm nâng cao năng suất và chất lượng sản phẩm. Theo các nghiên cứu chuyên ngành chăn nuôi, chỉ số nhiệt ẩm THI (Temperature-Humidity Index) vượt ngưỡng 72 sẽ khiến bò rơi vào trạng thái sốc nhiệt (heat stress), làm giảm sản lượng sữa từ 10% đến 25% và suy giảm hệ thống miễn dịch của vật nuôi. Tuy nhiên, phần lớn các trang trại quy mô vừa và nhỏ tại Việt Nam hiện vẫn áp dụng phương thức giám sát thủ công, phụ thuộc hoàn toàn vào cảm quan của người chăm sóc, dẫn đến việc xử lý vi khí hậu chuồng nuôi bị chậm trễ và tiêu tốn nhiều chi phí nhân công.

Đề tài "Ứng dụng công nghệ IoTs vào việc giám sát từ xa cho mô hình nông trại" được thực hiện nhằm giải quyết bài toán tự động hóa quá trình thu thập thông tin môi trường, xử lý vi khí hậu cục bộ và giám sát an ninh chuồng trại bằng việc kết hợp công nghệ mạng cảm biến không dây ZigBee, vi điều khiển chuyên dụng PIC16F887 và máy tính nhúng Raspberry Pi Model B.

graph TD
    subgraph Chuong_1 ["Khu vực Chuồng 1"]
        DHT11_1["DHT11 Cảm biến"] --> PIC_1["PIC16F887"]
        PIC_1 --> ACT_1["Quạt / Bơm / Massage"]
        PIC_1 <--> ZR_1["ZigBee Router 1"]
    end

    subgraph Chuong_2 ["Khu vực Chuồng 2"]
        DHT11_2["DHT11 Cảm biến"] --> PIC_2["PIC16F887"]
        PIC_2 --> ACT_2["Quạt / Bơm / Massage"]
        PIC_2 <--> ZR_2["ZigBee Router 2"]
    end

    subgraph Chuong_3 ["Khu vực Chuồng 3"]
        DHT11_3["DHT11 Cảm biến"] --> PIC_3["PIC16F887"]
        PIC_3 --> ACT_3["Quạt / Bơm / Massage"]
        PIC_3 <--> ZR_3["ZigBee Router 3"]
    end

    ZR_1 -. "Sóng 2.4GHz IEEE 802.15.4" .-> ZC["ZigBee Coordinator"]
    ZR_2 -. "Sóng 2.4GHz IEEE 802.15.4" .-> ZC
    ZR_3 -. "Sóng 2.4GHz IEEE 802.15.4" .-> ZC

    subgraph Robot_Central ["Xe Robot Giám Sát & Trung Tâm Xử Lý"]
        ZC <-->|UART Serial 9600bps| RPi["Raspberry Pi Model B<br>(Web Server + MySQL)"]
        Cam["Camera CSI 5MP"] --> RPi
        RPi -->|GPIO / PWM| L298N["Driver L298N"] --> Motors["Động cơ DC Bánh xe"]
    end

    RPi <-->|HTTP / TCP/IP| RouterWiFi["Modem Router WiFi / NAT"]
    RouterWiFi <--> Client["Thiết bị người dùng (PC, Tablet, Smartphone)"]

Mục tiêu dự án

  1. Thiết kế mạng cảm biến không dây ZigBee thu thập dữ liệu nhiệt độ và độ ẩm thời gian thực từ 3 phân khu chuồng trại riêng biệt với bán kính truyền nhận phủ sóng đạt 30m - 50m trong nhà và lên tới 400m ngoài trời.
  2. Xây dựng trạm điều khiển nút mạng cục bộ sử dụng vi điều khiển PIC16F887, có khả năng tự động kích hoạt quạt thông gió, máy bơm phun sương làm mát và hệ thống chổi massage theo ngưỡng môi trường định sẵn, đồng thời cho phép can thiệp thủ công qua nút nhấn phần cứng.
  3. Chế tạo xe Robot tuần tra di động tích hợp Raspberry Pi Model B, mô-đun ZigBee Coordinator, mạch cầu H L298N và camera CSI 5 Megapixel để truyền hình ảnh trực tiếp về tình trạng vật nuôi.
  4. Triển khai hệ thống Web Server nội nhúng trên Raspberry Pi (Apache, PHP, MySQL) cho phép hiển thị biểu đồ diễn biến môi trường, quản lý trạng thái thiết bị ngoại vi và điều khiển hướng di chuyển của robot qua mạng LAN/Internet.

Phạm vi và giới hạn

  • Phạm vi triển khai: Mô hình thực nghiệm gồm 1 thiết bị trung tâm (Coordinator) gắn trên Robot tuần tra và 3 trạm giám sát (Router) tại 3 chuồng nuôi bò sữa.
  • Giới hạn kỹ thuật: Dải đo nhiệt độ cảm biến DHT11 từ 0°C đến 50°C (sai số ±2°C), độ ẩm từ 20% đến 90% RH (sai số ±5% RH). Hệ thống truyền nhận hình ảnh qua module camera 5MP với độ trễ phụ thuộc vào băng thông mạng cục bộ không dây (WLAN).

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

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

Tiêu chí Phương pháp thủ công Hệ thống PLC / SCADA có dây Hệ thống WiFi đơn thuần (ESP8266) Giải pháp đề xuất (ZigBee + Raspberry Pi)
Chi phí đầu tư Thấp ban đầu, tốn nhân công dài hạn Rất cao (trên 50 triệu đồng) Thấp - Trung bình Tối ưu (~5 - 7 triệu đồng cho mô hình)
Độ linh hoạt khi mở rộng Kém Phức tạp, phải đi lại đường dây Bị giới hạn bởi số kết nối Router WiFi Rất cao (Cấu trúc mạng Mesh/Tree hỗ trợ tới hàng ngàn node)
Công suất tiêu thụ Không Cao Cao (80 - 150 mA liên tục) Cực thấp (Chế độ tiết kiệm năng lượng của ZigBee)
Khả năng quan sát di động Trực tiếp bằng mắt Cố định tại phòng điều khiển Camera IP cố định, góc nhìn hẹp Robot tuần tra linh hoạt mang camera tiếp cận vật nuôi
Độ tin cậy truyền nhận Không ổn định Rất cao Dễ nghẽn mạng khi nhiều thiết bị Ổn định nhờ định tuyến đa chặng và mã hóa AES

Ma trận ưu tiên yêu cầu người dùng (MoSCoW)

  • Must have (Bắt buộc): Đo đạc nhiệt độ, độ ẩm liên tục; tự động đóng ngắt rơ-le quạt/bơm; truyền dữ liệu qua ZigBee về bộ xử lý trung tâm; giao diện Web hiển thị số liệu và điều khiển thiết bị cơ bản.
  • Should have (Nên có): Điều khiển robot xe tuần tra 4 hướng (tiến, lùi, trái, phải); streaming video thời gian thực từ camera CSI; vẽ biểu đồ xu hướng nhiệt ẩm theo thời gian thực.
  • Could have (Có thể có): Cho phép người dùng tùy chỉnh ngưỡng nhiệt độ/độ ẩm kích hoạt thiết bị trực tiếp trên giao diện Web mà không cần nạp lại firmware cho MCU.
  • Won't have this time (Chưa thực hiện): Nhận diện khuôn mặt bò bằng AI xử lý ảnh; đo thân nhiệt vật nuôi qua cảm biến hồng ngoại không tiếp xúc.

Kiến trúc công nghệ và phần cứng chi tiết

+---------------------------------------------------------------------------------------+
|                                    APPLICATION LAYER                                  |
|         Giao diện Web GUI (HTML5 / CSS3 / JavaScript / Canvas / Bootstrap)            |
+---------------------------------------------------------------------------------------+
|                                      SERVICE LAYER                                    |
|   Apache HTTP Server 2.4  |  PHP 5.6 Script Engine  |  MySQL 5.5 Database Management  |
|                     Python 2.7 Serial & Motor Controller Daemon                       |
+---------------------------------------------------------------------------------------+
|                                      NETWORK LAYER                                    |
|   TCP/IP / HTTP (LAN/WAN)  |  IEEE 802.15.4 ZigBee 2007 PRO (2.4 GHz ISM Band)        |
+---------------------------------------------------------------------------------------+
|                                      DEVICE LAYER                                     |
|  Gateway: Raspberry Pi Model B (ARM11 700MHz, 512MB RAM, Raspbian OS)                 |
|  Actuator Driver: L298N Dual H-Bridge Module (2A peak)                                |
|  Node MCU: Microchip PIC16F887 (8-bit, 20MHz, 8KB Flash, 14 Channels ADC 10-bit)      |
|  Sensors & Transceivers: DHT11 (1-Wire), DRF1605 ZigBee Module (UART 3.3V)           |
+---------------------------------------------------------------------------------------+

Thiết kế cơ sở dữ liệu (MySQL Database Schema)

Hệ thống lưu trữ cấu hình và nhật ký đo lường trên Raspberry Pi với cấu trúc cơ sở dữ liệu quan hệ gồm 3 bảng chính:

-- Bảng lưu trữ tài khoản phân quyền quản trị
CREATE TABLE `users` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `username` VARCHAR(50) NOT NULL UNIQUE,
  `password` VARCHAR(255) NOT NULL,
  `role` VARCHAR(20) DEFAULT 'operator',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- Bảng lưu trữ trạng thái điều khiển thiết bị ngoại vi
CREATE TABLE `control` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `farm_id` VARCHAR(10) NOT NULL,
  `fan_status` TINYINT(1) DEFAULT 0,
  `pump_status` TINYINT(1) DEFAULT 0,
  `massage_status` TINYINT(1) DEFAULT 0,
  `temp_threshold` FLOAT DEFAULT 32.0,
  `hum_threshold` FLOAT DEFAULT 80.0,
  `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- Bảng lưu trữ dữ liệu nhật ký vi khí hậu thu thập từ các trạm
CREATE TABLE `sensor_logs` (
  `log_id` BIGINT(20) NOT NULL AUTO_INCREMENT,
  `farm_id` VARCHAR(10) NOT NULL,
  `temperature` FLOAT NOT NULL,
  `humidity` FLOAT NOT NULL,
  `record_time` DATETIME NOT NULL,
  PRIMARY KEY (`log_id`),
  INDEX `idx_farm_time` (`farm_id`, `record_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Giao thức đóng gói dữ liệu UART qua mạng ZigBee

Khung truyền nối tiếp giữa PIC16F887, module ZigBee DRF1605 và Raspberry Pi tuân theo định dạng chuẩn 8-byte nhằm chống suy hao và kiểm tra tính toàn vẹn:

$$\text{Packet Format} = [SOH][\text{Node_ID}][\text{Temp_Int}][\text{Temp_Dec}][\text{Hum_Int}][\text{Hum_Dec}][\text{Checksum}][EOT]$$

  • SOH (Start of Heading): 0xAA (1 byte)
  • Node_ID: 0x01 (Chuồng 1), 0x02 (Chuồng 2), 0x03 (Chuồng 3)
  • Temp_Int, Temp_Dec: Phần nguyên và phần thập phân của nhiệt độ (°C)
  • Hum_Int, Hum_Dec: Phần nguyên và phần thập phân của độ ẩm (% RH)
  • Checksum: $Byte_{\text{Check}} = (Node_ID + Temp_Int + Hum_Int) \pmod{256}$
  • EOT (End of Transmission): 0x55 (1 byte)

Implementation và kết quả

Quy trình phát triển phần mềm và giải thuật nhúng

1. Xử lý đọc cảm biến DHT11 và điều khiển thiết bị trên PIC16F887

Vi điều khiển PIC16F887 chạy ở tần số xung nhịp $F_{osc} = 20\text{ MHz}$ ($T_{cy} = 0.2\mu\text{s}$). Dưới đây là đoạn mã nguồn C hiện thực giao thức 1-Wire giao tiếp cảm biến DHT11 và thuật toán tự động đóng ngắt rơ-le:

#include <16F887.h>
#fuses HS, NOWDT, NOPROTECT, NOLVP
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)

#define DHT11_PIN PIN_D0
#define RELAY_FAN PIN_D1
#define RELAY_PUMP PIN_D2

int8 dht_bytes[5];

short dht_start_signal() {
    output_drive(DHT11_PIN);
    output_low(DHT11_PIN);
    delay_ms(20);          // Kéo bus xuống LOW > 18ms
    output_high(DHT11_PIN);
    delay_us(30);          // Kéo bus lên HIGH 20-40us
    output_float(DHT11_PIN);
    
    if (input(DHT11_PIN)) return 0;
    delay_us(80);
    if (!input(DHT11_PIN)) return 0;
    delay_us(80);
    return 1;
}

int8 dht_read_byte() {
    int8 i, data = 0;
    for(i=0; i<8; i++) {
        while(!input(DHT11_PIN)); // Chờ hết xung LOW 50us
        delay_us(35);             // Lấy mẫu tại t = 35us
        if(input(DHT11_PIN)) {
            data |= (1 << (7 - i));
            while(input(DHT11_PIN)); // Chờ bus rơi về LOW
        }
    }
    return data;
}

void main() {
    int8 checksum;
    float temp_limit = 32.0;
    
    while(TRUE) {
        if(dht_start_signal()) {
            dht_bytes[0] = dht_read_byte(); // Hum Int
            dht_bytes[1] = dht_read_byte(); // Hum Dec
            dht_bytes[2] = dht_read_byte(); // Temp Int
            dht_bytes[3] = dht_read_byte(); // Temp Dec
            dht_bytes[4] = dht_read_byte(); // Checksum
            
            checksum = dht_bytes[0] + dht_bytes[1] + dht_bytes[2] + dht_bytes[3];
            if(checksum == dht_bytes[4]) {
                // Tự động kiểm soát vi khí hậu cục bộ
                if(dht_bytes[2] >= temp_limit) {
                    output_high(RELAY_PUMP); // Kích bơm tưới
                } else {
                    output_low(RELAY_PUMP);
                }
                
                // Gửi khung dữ liệu UART qua ZigBee
                putc(0xAA);          // SOH
                putc(0x01);          // Farm Node ID = 1
                putc(dht_bytes[2]);  // Temp Int
                putc(dht_bytes[3]);  // Temp Dec
                putc(dht_bytes[0]);  // Hum Int
                putc(dht_bytes[1]);  // Hum Dec
                putc((0x01 + dht_bytes[2] + dht_bytes[0]) & 0xFF); // Checksum
                putc(0x55);          // EOT
            }
        }
        delay_ms(2000); // Tần suất lấy mẫu 2 giây
    }
}

2. Dịch vụ tiếp nhận dữ liệu UART và lưu Database trên Raspberry Pi

Một tiến trình nền (Python Daemon) chạy liên tục trên Raspbian OS để giám sát cổng nối tiếp /dev/ttyAMA0, kiểm tra Checksum và cập nhật tức thời vào MySQL Database:

#!/usr/bin/env python
import serial
import MySQLdb
import time

ser = serial.Serial(
    port='/dev/ttyAMA0',
    baudrate=9600,
    parity=serial.PARITY_NONE,
    stopbits=serial.STOPBITS_ONE,
    bytesize=serial.EIGHTBITS,
    timeout=1
)

db = MySQLdb.connect(host="localhost", user="pi_user", passwd="pi_password", db="farm_iot")
cursor = db.cursor()

def process_uart_stream():
    while True:
        if ser.in_waiting >= 8:
            header = ord(ser.read(1))
            if header == 0xAA:
                payload = [ord(b) for b in ser.read(7)]
                node_id = payload[0]
                temp = float(payload[1]) + float(payload[2]) / 100.0
                hum = float(payload[3]) + float(payload[4]) / 100.0
                checksum = payload[5]
                footer = payload[6]
                
                calculated_chk = (node_id + payload[1] + payload[3]) & 0xFF
                if footer == 0x55 and checksum == calculated_chk:
                    farm_name = "Farm_{}".format(chr(64 + node_id))
                    sql = """INSERT INTO sensor_logs (farm_id, temperature, humidity, record_time) 
                             VALUES (%s, %s, %s, NOW())"""
                    cursor.execute(sql, (farm_name, temp, hum))
                    db.commit()
        time.sleep(0.05)

if __name__ == '__main__':
    try:
        process_uart_stream()
    except KeyboardInterrupt:
        ser.close()
        db.close()

3. Điều khiển động cơ Robot xe tuần tra qua IC L298N

Mạch cầu H L298N nhận tín hiệu logic từ GPIO Raspberry Pi để điều hướng robot tuần tra:

import RPi.GPIO as GPIO

# Khai báo chân GPIO điều khiển module L298N
IN1, IN2, IN3, IN4 = 17, 18, 22, 23
ENA, ENB = 24, 25

GPIO.setmode(GPIO.BCM)
GPIO.setup([IN1, IN2, IN3, IN4, ENA, ENB], GPIO.OUT)

pwm_a = GPIO.PWM(ENA, 1000) # PWM 1kHz
pwm_b = GPIO.PWM(ENB, 1000)
pwm_a.start(80) # 80% Duty Cycle
pwm_b.start(80)

def move_robot(direction):
    if direction == "FORWARD":
        GPIO.output([IN1, IN3], GPIO.HIGH)
        GPIO.output([IN2, IN4], GPIO.LOW)
    elif direction == "BACKWARD":
        GPIO.output([IN1, IN3], GPIO.LOW)
        GPIO.output([IN2, IN4], GPIO.HIGH)
    elif direction == "LEFT":
        GPIO.output([IN1, IN4], GPIO.HIGH)
        GPIO.output([IN2, IN3], GPIO.LOW)
    elif direction == "RIGHT":
        GPIO.output([IN2, IN3], GPIO.HIGH)
        GPIO.output([IN1, IN4], GPIO.LOW)
    elif direction == "STOP":
        GPIO.output([IN1, IN2, IN3, IN4], GPIO.LOW)

Kiểm thử và đánh giá hiệu năng hệ thống

  1. Độ trễ truyền nhận không dây ZigBee: Thử nghiệm truyền gói dữ liệu 8-byte qua khoảng cách 30m trong môi trường chuồng trại có tường gạch và khung thép kim loại. Độ trễ gói tin trung bình đạt $38.4\text{ ms}$, tỷ lệ mất gói (Packet Loss Rate) dưới $0.85%$.
  2. Khả năng truyền phát Video (Video Streaming): Camera CSI 5MP cung cấp luồng hình ảnh chuyển động đạt độ phân giải $640 \times 480\text{ pixels}$ với tốc độ khung hình $20\text{ fps}$, độ trễ mạng LAN đo được dao động từ $140\text{ ms}$ đến $180\text{ ms}$, đảm bảo quan sát chuyển động và thể trạng bò trực tiếp không bị giật lag.
  3. Độ chính xác cảm biến DHT11: So sánh với nhiệt kế chuẩn thủy ngân và ẩm kế chuyên dụng, cảm biến cho độ lệch nhiệt độ trung bình là $\pm 1.2^\circ\text{C}$ và độ ẩm $\pm 4.1%\text{ RH}$, đáp ứng tốt điều kiện vận hành chuồng trại gia súc.

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

  • Mô hình kiểm tra vi khí hậu Hybrid (Cố định kết hợp Di động): Khắc phục nhược điểm của các hệ thống camera cố định góc hẹp truyền thống bằng cách đặt Gateway trung tâm lên một robot xe di động, cho phép di chuyển kiểm tra từng ô chuồng độc lập trong bán kính 30m.
  • Tối ưu hóa năng lượng mạng không dây: Ứng dụng cấu trúc mạng ZigBee IEEE 802.15.4 giúp giảm hơn $80%$ công suất tiêu thụ so với các hệ thống dùng WiFi (ESP8266/ESP32), cho phép các trạm giám sát ngoại vi hoạt động bền bỉ trong môi trường thiếu nguồn điện lưới ổn định.
  • Kiến trúc máy chủ biên cục bộ (Edge Computing Server): Raspberry Pi đảm nhận đồng thời 3 vai trò: Gateway thu thập ZigBee, Web Server nội tại phục vụ người dùng và Bộ điều khiển cơ cấu di động robot, không bắt buộc phụ thuộc vào đường truyền Internet băng rộng liên tục để ra quyết định tự động.

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

Kịch bản triển khai tại trang trại bò sữa 100 cá thể

  • Quy mô: Trang trại được chia thành 3 phân khu: Khu vực bò vắt sữa, Khu vực bò sinh sản và Khu vực nuôi bê con.
  • Bố trí thiết bị: Mỗi khu vực đặt một trạm thu thập PIC16F887 kết hợp module ZigBee Router (ZR) gắn cảm biến DHT11 tại vị trí thoáng khí cao 2 mét, kết nối trực tiếp với rơ-le quạt làm mát $220\text{V}$ và máy bơm phun sương $12\text{V}$. Robot xe tuần tra gắn Coordinator đặt tại lối đi trung tâm giữa các dãy chuồng.
sequenceDiagram
    autonumber
    actor Farmer as Người quản lý (Web Browser)
    participant Web as Web Server (Apache/PHP trên RPi)
    participant DB as MySQL Database
    participant Daemon as Python Serial Daemon
    participant ZC as ZigBee Coordinator (RPi)
    participant ZR as ZigBee Router (PIC16F887)
    participant Actuator as Bơm nước / Quạt thông gió

    ZR->>Actuator: Đo nhiệt độ môi trường (T > 32°C) -> Tự kích hoạt Bơm
    ZR->>ZC: Gửi gói tin UART qua sóng ZigBee (Packet: Temp, Hum, Status)
    ZC->>Daemon: Chuyển tiếp byte dữ liệu qua chân GPIO RX (/dev/ttyAMA0)
    Daemon->>Daemon: Kiểm tra Checksum & Giải mã dữ liệu
    Daemon->>DB: INSERT INTO sensor_logs & UPDATE control
    Farmer->>Web: Truy cập Dashboard giám sát
    Web->>DB: Truy vấn dữ liệu nhiệt ẩm mới nhất
    DB-->>Web: Trả về tập dữ liệu
    Web-->>Farmer: Render biểu đồ vi khí hậu & Trạng thái quạt/bơm
    Farmer->>Web: Nhấn nút điều khiển Robot tiến về chuồng A
    Web->>Daemon: Gửi lệnh RPC điều khiển GPIO L298N
    Daemon->>Daemon: Kích hoạt PWM bánh xe di chuyển robot

Phân tích hiệu quả kinh tế (ROI)

  • Chi phí triển khai ước tính: 6.500.000 VNĐ (Bao gồm Raspberry Pi, 3 bộ PIC16F887, 4 module DRF1605 ZigBee, camera CSI, khung xe, động cơ và linh kiện phụ trợ).
  • Lợi ích kinh tế:
    • Giảm thiểu nhân công giám sát thủ công: Tiết kiệm ~3.000.000 VNĐ/tháng.
    • Ngăn ngừa tình trạng giảm sản lượng sữa do sốc nhiệt: Duy trì ổn định thêm $1.5\text{ lít sữa/con/ngày}$ trong mùa nóng (tương đương giá trị gia tăng ~4.500.000 VNĐ/tháng cho đàn 10 con).
    • Thời gian hoàn vốn (Payback Period): Ước tính từ 4 đến 6 tháng sau khi đưa vào vận hành thực tế.

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

Hạn chế kỹ thuật

  • Cảm biến DHT11 có dải đo hạn chế và độ bền vỏ bọc chưa đạt chuẩn công nghiệp IP67, dễ bị ẩm mốc ăn mòn trong môi trường chuồng trại có nồng độ khí Amoniac ($NH_3$) cao.
  • Robot xe tuần tra hiện tại sử dụng khung bánh xe tiêu chuẩn, khó di chuyển trơn tru trên địa hình chuồng trại ẩm ướt hoặc có rãnh thoát nước sâu.
  • Video streaming chỉ có thể truy cập mượt mà trong mạng nội bộ (LAN) do giới hạn băng thông đường truyền tải lên (Upload Bandwidth) khi NAT qua modem dân dụng.

Hướng phát triển mở rộng

  1. Nâng cấp cảm biến nhiệt ẩm công nghiệp chuẩn Modbus RTU/RS485 hoặc SHT30 tích hợp màng lọc PTFE kháng bụi và khí ăn mòn.
  2. Thiết kế robot di chuyển dạng ray treo trần (Overhead Monorail Robot) giúp hoạt động bền bỉ, không bị cản trở bởi chất thải và vật cản mặt đất.
  3. Ứng dụng mô hình mạng nơ-ron tích chập (YOLOv8-nano) trên Raspberry Pi 4/Edge TPU để tự động nhận dạng hành vi bò (nằm, đứng, ăn, thể trạng mệt mỏi) phục vụ chẩn đoán bệnh từ sớm.

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

  • Sinh viên ngành Kỹ thuật Máy tính, Điện - Điện tử, IoT: Tài liệu tham khảo toàn diện về tích hợp hệ thống nhúng lai ghép (Hybrid Architecture) kết hợp vi điều khiển 8-bit giá rẻ và máy tính nhúng Linux.
  • Kỹ sư phát triển phần mềm nhúng: Tham khảo mã nguồn giao thức 1-Wire, cơ chế kiểm tra toàn vẹn khung truyền UART và kỹ thuật liên kết Daemon Python với Web Application (LAMP Stack).
  • Chủ trang trại chăn nuôi: Tiếp cận giải pháp công nghệ tự động hóa với chi phí thấp, chủ động quản trị sức khỏe đàn gia súc và tối ưu năng suất kinh tế.
  • Các nhà nghiên cứu Nông nghiệp Công nghệ cao: Dữ liệu cơ sở về sự tương quan giữa vi khí hậu chuồng nuôi và các chỉ số phúc lợi động vật.

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

1. Cần chuẩn bị hạ tầng kỹ thuật như thế nào để triển khai hệ thống này?

Cần trang bị nguồn điện lưới $220\text{V}$ cho các trạm PIC16F887 cố định (hoặc ắc quy $12\text{V}$ kết hợp tấm pin năng lượng mặt trời $20\text{W}$), một Router phát sóng WiFi nội bộ có hỗ trợ DHCP và máy tính/điện thoại thông minh có trình duyệt web chuẩn HTML5 kết nối vào cùng mạng LAN.

2. Khả năng mở rộng của mạng ZigBee trong hệ thống này đạt tối đa bao nhiêu node?

Theo lý thuyết chuẩn ZigBee PRO 2007, một Coordinator có thể quản lý tới 65.536 địa chỉ mạng logic. Trong thực tế ứng dụng nông trại, hệ thống có thể mở rộng ổn định từ 30 đến 50 trạm Router/End-Device mà không gây nghẽn đường truyền UART tại bộ xử lý trung tâm.

3. Khi mất kết nối sóng ZigBee, các trạm chuồng trại có tự động điều khiển được không?

Có. Vi điều khiển PIC16F887 tại mỗi trạm hoạt động hoàn toàn độc lập theo chương trình nạp sẵn trong Flash ROM. Khi mất kết nối vô tuyến về Gateway, trạm vẫn tự động so sánh nhiệt độ/độ ẩm với ngưỡng an toàn để kích hoạt quạt và máy bơm, đồng thời cho phép bấm nút vật lý tại chỗ.

4. Chi phí bảo trì và bảo dưỡng hệ thống định kỳ bao gồm những gì?

Bảo trì định kỳ chủ yếu gồm: Vệ sinh bề mặt cảm biến nhiệt ẩm khỏi bụi bẩn (3 tháng/lần), kiểm tra tiếp điểm chổi than động cơ robot và nạp bổ sung ắc quy nguồn cho robot tuần tra.

5. Dữ liệu giám sát có thể xem được từ xa qua mạng 4G/Internet ngoài trang trại không?

Có. Để xem từ xa qua Internet, quản trị viên cấu hình tính năng Port Forwarding (NAT Port 80/8080) trên modem chính của trang trại trỏ về địa chỉ IP tĩnh của Raspberry Pi, hoặc sử dụng các giải pháp mạng riêng ảo (VPN/Ngrok/Cloudflare Tunnel) để truy cập bảo mật mà không cần mở cổng modem.


Kết luận

Đề tài "Ứng dụng công nghệ IoTs vào việc giám sát từ xa cho mô hình nông trại" đã xây dựng thành công một giải pháp công nghệ toàn diện và khả thi cho nông nghiệp thông minh. Bằng cách làm chủ phần cứng vi điều khiển PIC16F887, cấu hình mạng cảm biến không dây ZigBee tiết kiệm năng lượng và tối ưu hóa máy tính nhúng Raspberry Pi làm máy chủ dịch vụ nội nhúng kết hợp robot tuần tra, hệ thống đã giải quyết triệt để bài toán giám sát vi khí hậu chuồng nuôi liên tục và trực quan. Kết quả thực nghiệm khẳng định tiềm năng ứng dụng to lớn của kiến trúc IoT phân tán trong việc hiện đại hóa quy trình chăn nuôi tại Việt Nam, mở ra hướng đi bền vững cho các trang trại hướng tới chuyển đổi số toàn diện.