此次创意大赛我的项目是基于Raspberry Pi 5的植物生长监管系统,其实这个项目并不复杂,想必之前也有不少前辈做过类似的项目。我想做这个是因为前段时间心血来潮想养养盆栽,于是选择了听说比较好养的迷迭香入门,结果没过多久它就变成下面这样了。可能是浇水或光照不足导致的,既然我自己靠人力养不好,我就想做一套可以自动浇水补光的植物监管系统,让我可以享受养好盆栽的感觉,同时因为这套系统是自己做的,所以也会有参与感(大概)。不过就算养盆栽的参与感不强,制作嵌入式项目的参与感肯定会爆棚。可能这就是失之东隅,收之桑榆吧。别的不说,起码能提升自己的编程与实践经验。
本系统计划采用软硬件结合的方式实现,可以进行人机交互,提高种植参与感。
本系统分为三个模块:Web管理模块(Flask、Dash)、数据收集模块(传感器)、植物监管模块(摄像头、电磁阀、补光灯)
首先我来介绍一下此项目需要用到的硬件部分,主要是单片机和各种传感器,还有摄像头、水电磁阀、补光灯等。
从左向右依次是:5v电源、4路继电器,它们负责传感器与监管模块硬件的独立供电。
接下来是软件部分,Web管理界面将基于Python Flask框架实现,它可以显示各传感器收集到的数据,通过摄像头对植物进行实时监控,打开、关闭水电磁阀或补光灯等操作。同时使用Dash进行图表绘制,显示历史数据以及变化过程,方便进行数据分析。
最后进行环境搭建,树莓派采用官方最新的Raspberry pi系统,Esp32采用CircuitPython进行开发。
对于像树莓派系统的安装这种流程,网上有非常多详细的教程,我将只进行大概记录,主要记录与此项目相关的部分和解决问题的过程。
配置账号密码、WiFi、时区并开启SSH。这样烧录成功后树莓派会自动尝试连接WiFi,并且可以通过SSH连接,不需要显示器。
烧录会清空SD卡中的数据,注意不要选错卡了。
等待烧录成功。
烧录成功后,插卡上电,等待自动连接WiFi。
此时即可通过SSH连接到树莓派。
加上--break-system-packages后看起来安装成功了,但是依然有许多警告,第一张图中的警告意思是从不信任的源中安装,加上--trusted-host 源地址 表示信任。第二张图提示/home/pi/.local/bin不在环境变量中。所以将提示中的/home/pi/.local/bin添加到环境变量中。
执行source .bashrc使配置生效。然后卸载pip uninstall pipenv --break-system-packages,
重新安装pip install pipenv -i http://pypi.douban.com/simple --break-system-packages --trusted-host pypi.douban.com。
在电脑上通过浏览器访问树莓派IP地址的5000端口即可看到刚刚编写的测试页面。
至此树莓派环境部分搭建完成,下面开始搭建ESP32-C6的环境。
这部分颇费周章,我本来想装CircuitPython,没装成;又装了ESP-IDF,不会用;最后还是选择了Arduino。(编辑时补充:这次烧录CircuitPython成功了,还是选CircuitPython)
记录一下踩坑过程吧。
先下载bin文件https://circuitpython.org/board/espressif_esp32c6_devkitc_1_n8/。
1、首先尝试通过Thonny安装CircuitPython,选择固件后提示Unkown,似乎不支持esp32c6。
2、尝试通过浏览器进行CircuitPython烧录(教程:https://learn.adafruit.com/circuitpython-with-esp32-quick-start/web-serial-esptool)
报错,连接失败。
3、尝试通过命令行工具ESPTool烧录。(教程:https://learn.adafruit.com/circuitpython-with-esp32-quick-start/command-line-esptool)
成功读取到了板子的信息。
成功擦除闪存信息。
因此我打算尝试一个新的编辑器Mu,也是教程中推荐的。
尴尬了,直接连接成功。那么我知道问题出在哪里了,上次烧录时我看到教程中关于偏移值的提示,加了偏移值和引导程序(bootloader.bin和partition-table.bin),烧录失败后在修改偏移值和引导程序的路上一去不返了,看来CircuitPython是自带引导的,果然大道至简啊。
既然CircuitPython安装成功了,那么剩下的两个方法大概贴下教程地址好了。
4、安装ESP-IDF(教程:https://github.com/espressif/vscode-esp-idf-extension/blob/master/docs/tutorial/install.md)
本帖最后由 Wenyou 于 2024-8-25 21:15 编辑
谢谢分享