Trợ lý mùa vụ AI là một hệ thống IoT kết hợp trí tuệ nhân tạo (AI) giúp giám sát và lập kế hoạch canh tác tự động. Hệ thống thu thập dữ liệu độ ẩm, NPK từ đất và tích hợp dự báo thời tiết để đưa ra các khuyến nghị tưới tiêu, bón phân phù hợp nhất.
Dự án này được phát triển bằng HTML/CSS/JS thuần cho giao diện người dùng, FastAPI (Python) cho Backend xử lý dữ liệu, và ESP32 đóng vai trò thiết bị biên. Hệ thống gồm:
-
Cảm biến và Thiết bị biên (ESP32):
- Đọc dữ liệu từ cảm biến độ ẩm đất và NPK.
- Gửi dữ liệu định kỳ lên Backend thông qua giao thức HTTP POST.
-
Backend (FastAPI):
- Đóng vai trò làm Web Server tiếp nhận dữ liệu từ ESP32.
- Gọi API thời tiết (OpenWeatherMap) để lấy dự báo mưa và nhiệt độ.
- Chuyển tiếp toàn bộ dữ liệu cho mô hình AI (Google Gemini 2.5 Flash) để sinh ra lời khuyên canh tác.
-
Frontend (Web App):
- Giao diện thân thiện, trực quan với các biểu đồ biến động thời tiết 30 ngày.
- Tự động lấy dữ liệu (polling) mỗi 5 giây từ Backend và chỉ báo trạng thái kết nối cảm biến.
- Hiển thị tóm tắt tình trạng đất và các khuyến nghị canh tác cụ thể.
Theo dõi chỉ số đất (Độ ẩm, Nitơ, Phốt pho, Kali) kèm trạng thái hoạt động online/offline của ESP32.
Tích hợp API của OpenWeatherMap để dự báo nhiệt độ dao động, lượng mưa, và trực quan hóa xu hướng thời tiết 10 đến 30 ngày tới dưới dạng biểu đồ.
Sử dụng LLM (Google Gemini) để phân tích tổng hợp chéo giữa tình trạng đất và thời tiết sắp tới, qua đó xuất ra khuyến nghị ngắn gọn, chính xác (ví dụ: bón thêm đạm, giảm tưới nước vì sắp có mưa).
- Python 3.9+
- Trình duyệt Web (Chrome/Edge/Firefox)
- Arduino IDE (để nạp code ESP32)
git clone https://github.com/Quan0804/btl.gitMở terminal tại thư mục của dự án và chạy:
# Cài đặt thư viện
pip install -r backend/requirements.txt
# Thiết lập biến môi trường
$env:OPENWEATHER_API_KEY="xxx"
$env:GEMINI_API_KEY="xxx"
# Chạy server FastAPI
uvicorn backend.main:app --host 0.0.0.0 --port 8000 --reload- Không cần cài NodeJS. Chỉ cần mở file
frontend/index.htmltrực tiếp trên trình duyệt. - Nếu chạy từ máy tính khác trong cùng mạng LAN, hãy cấu hình đường dẫn backend:
index.html?backend=http://<IP_MAY_CHAY_BACKEND>:8000
- Mở Arduino IDE, sửa thông tin WiFi (
ssid,password) và IP máy chủ (serverUrl) trong file code. - Biên dịch và nạp code vào mạch ESP32.
- Kiểm tra Serial Monitor để xem ESP32 gửi dữ liệu thành công (HTTP Response: 200).
📧 Email: vuquan0804@gmail.com 📞 Phone: 0364973088 🌐 Facebook: Your Profile





