本项目是一个基于 ESP32-CAM 和 Django Channels 的远程监控浇水系统,支持视频流、拍照、土壤湿度监测以及远程浇水功能。
- ESP32-CAM: 负责视频流、拍照、土壤湿度监测和浇水控制。
- Django Channels: 实现 WebSocket 通信,支持实时数据传输。
- 前端页面: 提供设备监控和控制界面。
- Python 3.9
- ESP32-CAM 开发板
-
安装 Python 依赖:
pipenv install
-
安装 ESP32-CAM 所需库:
- 在 Arduino IDE 中安装以下库:
WiFiWebSocketsClientArduinoJsonesp_camera
- 在 Arduino IDE 中安装以下库:
- 修改 ESP32-CAM 的 WiFi 和 WebSocket 配置:
const char* ssid = "YourWiFiSSID"; const char* password = "YourWiFiPassword"; const char* ws_server = "YourServerIP"; const uint16_t ws_port = 8989; const char* ws_path = "/ws/esp32-cam/";
-
启动 Django 项目:
daphne -b 0.0.0.0 -p 8989 sinica.asgi:application
-
上传
ESP32-CAM.ino到开发板。 -
访问前端页面:
- 打开浏览器,访问
http://<服务器IP>:8989。
- 打开浏览器,访问
- 实时查看设备状态(在线/离线)。
- 显示土壤湿度数据。
- 启动/停止视频流。
- 远程拍照并查看图像。
- 获取土壤湿度数据(模拟值和数字值)。
- 远程启动浇水功能,支持自定义浇水时长。
sinica/: Django 项目主目录。fatcat/: 应用模块,包含视图、路由、WebSocket 消费者等。requirements.txt: 项目依赖列表。
fatcat/templates/fatcat/index.html: 前端页面。
esp32-cam/ESP32-CAM.ino: ESP32-CAM 的固件代码。esp32-cam/camera_pins.h: 摄像头引脚配置。
- 后端: Django, Django Channels
- 前端: HTML, CSS, JavaScript
- 硬件: ESP32-CAM
- 通信: WebSocket