Mục đích chính của dự án là nghiên cứu và ứng dụng mô hình AI (YOLO) vào việc theo dõi hành vi vật nuôi trong thời gian thực, kết hợp với các cảm biến IoT mô phỏng để tự động hóa môi trường chuồng trại.
Dự án là bước đệm vững chắc để tiến tới xây dựng các giải pháp tự động hóa toàn diện trong mô hình Nông nghiệp công nghệ cao (Smart Agriculture).
Dự án này ra đời nhằm giải quyết bài toán đó. Hệ thống hoạt động như một người quản lý 24/7, có khả năng "nhìn" qua camera để đếm số lượng, phân tích hành vi (ăn, ngủ, di chuyển) và tự động kích hoạt các thiết bị phần cứng (Quạt hút, Đèn sưởi) khi phát hiện môi trường có dấu hiệu bất thường.
Video demo: Xem video hệ thống hoạt động
Hệ thống kết hợp giữa Computer Vision và IoT Dashboard với các tính năng chính:
- Phân tích hành vi (AI Tracking): Ứng dụng YOLO theo dõi và phân loại chính xác 3 trạng thái của lợn: EAT (Đang ăn), SLEEP (Đang ngủ), MOVE (Đang di chuyển).
- Thuật toán Custom NMS: Khắc phục triệt để lỗi phân mảnh Bounding Box (1 vật nuôi bị nhận diện thành 2 ID) do rung lắc camera.
- Vùng nhận diện (ROI): Cấu hình vùng máng cám linh hoạt để tăng độ chính xác khi nhận diện hành vi EAT.
- Tự động hóa IoT: Giám sát thông số Nhiệt độ và Khí Gas, tự động ra quyết định bật/tắt thiết bị dựa trên tập tính vật nuôi.
- Cảnh báo Telegram: Gửi báo cáo theo thời gian thực về điện thoại người quản lý kèm theo cơ chế chống Spam (Cooldown).
- Ghi log Database: Trích xuất toàn bộ lịch sử hoạt động và trạng thái môi trường ra file Excel để phân tích.
Hệ thống sử dụng cỗ máy trạng thái để so sánh và ra quyết định chính xác:
| Sự kiện / Điều kiện | Cảnh báo Telegram | Hành động hệ thống |
|---|---|---|
| Can thiệp thủ công | Báo cáo chi tiết lệnh Bật/Tắt | Ghi đè tự động, ưu tiên thực thi ngay lập tức |
| Khí Gas > Ngưỡng (VD: 300 PPM) | ☠️ Báo động môi trường khí độc | Tự động BẬT Quạt hút |
| Nhiệt độ > Ngưỡng (VD: 40°C) | 🔥 Báo động nhiệt độ cao | Tự động BẬT Quạt hút |
| Nhiệt độ < Ngưỡng (VD: 20°C) VÀ Lợn tụ tập | ❄️ Báo động tập tính (Tụ tập do lạnh) | Tự động BẬT Đèn sưởi |
| Các chỉ số trở về bình thường | 🔴 Thông báo ngắt lệnh tự động | Tự động TẮT các thiết bị |
CNXLA_BTL_Smart_Pig_Farm/
├── 📄dashboard.py # File chính điều phối Giao diện & AI
├── 📄telegram_api.py # Module xử lý giao tiếp Telegram
├── 📄excel_logger.py # Module xử lý lưu trữ Database
├── 📄hardware_iot.py # Module điều khiển phần cứng/giả lập
├── 📁arduino_firmware/ # Thư mục mã nguồn nạp cho vi điều khiển
│ └── 📄relay_controller.ino
├── 📁models/
│ └── 📄best.pt # Trọng số mô hình YOLO
├── 📁videos/ # Dữ liệu video đầu vào
├── 📁outputs/ # File Excel ghi nhật ký
├── 📄.env.example # File mẫu cấu hình biến môi trường
├── 📄.gitignore # Cấu hình bỏ qua file cho Git
├── 📄requirements.txt # Danh sách thư viện cần thiết
└── 📄README.md # Tài liệu hướng dẫn
# 1. Clone project
git clone [https://github.com/Anos2003/CNXLA_BTL_Smart_Pig_Farm.git](https://github.com/Anos2003/CNXLA_BTL_Smart_Pig_Farm.git)
# 2. Di chuyển vào thư mục dự án
cd CNXLA_BTL_Smart_Pig_Farm
# 3. Cài đặt thư viện
pip install -r requirements.txt
# 4. Tạo file .env và cấu hình Telegram API (Xem hướng dẫn trong file .env.example)
# 5. Bật Terminal và chạy Dashboard
streamlit run dashboard.py# Hướng dẫn Kết nối Phần cứng (Tùy chọn ESP32/Arduino)
Mặc định, hệ thống chạy ở chế độ Giả lập (Simulation). Để kết nối với thiết bị thật:
# Bước 1: Nạp mã nguồn cho vi điều khiển
-Mở file arduino_firmware/relay_controller.ino bằng Arduino IDE.
-Kết nối mạch và nạp code.
# Bước 2: Cấu hình giao tiếp Serial
-Mở file hardware_iot.py.
-Sửa USE_REAL_HARDWARE = True.
-Sửa SERIAL_PORT thành cổng USB thiết bị đang nhận diện (VD: 'COM3', '/dev/ttyUSB0').
Dự án được phát triển trong khuôn khổ môn học Công nghệ Xử lý Ảnh.
Sinh viên thực hiện:
- Trịnh Hữu Hiệu (Anos2003)
Giảng viên hướng dẫn: Thầy Lê Trung Hiếu & Thầy Nguyễn Văn Nhân - Khoa Công nghệ Thông tin - Đại học Đại Nam
Dự án này được phát hành theo giấy phép MIT License.
Bạn được phép sử dụng, chỉnh sửa và phân phối lại mã nguồn cho mục đích học tập hoặc phát triển cá nhân.


