定时浇水装置
作者:suncat
一、作品简介
1、作品图片
物料名称 |
数量 |
作用 |
ESP32-S3-LCD-EV-Board-SUB2模组 |
1 |
主控板 |
ESP32-S3-DevKit |
1 |
WebServer,采集环境数据提供给客户端 |
GXHT30温湿度传感器 |
1 |
采集环境温湿度 |
抽水马达 |
1 |
抽水 |
抽水马达专用电源板 |
1 |
为抽水马达提供电源 |
继电器模块 |
1 |
经由主控板控制抽水马达的加电/断电 |
3、抽水马达驱动部分
主控板在需要启动浇水的时候,向控制用的GPIO端口发出启动电平。通过继电器模块,给抽水马达提供驱动电源。抽水马达使用3.6V电压,所以需要一个降压模块将7V以上的电源降压到3.6V。
四、作品源码
1、WebServer部分
使用Arduino开发。
源码下载地址:https://download.eeworld.com.cn/detail/suncat/634418
2、主控部分
使用ESP32 IDF5.07版本,使用VSCode开发。
源码下载地址:https://download.eeworld.com.cn/detail/suncat/634419
3、设计思路
本装置之所以使用两个ESP32开发板的原因有两个,ESP32-S3-LCD-EV-Board-SUB2模组本身由于接入了并口液晶显示屏以及触摸屏,占用了大量GPIO口,而我自己没有吃透TCA9554 的端口扩展部分,同时由于没有搞通网络访问部分的处理, 为了赶时间,就用了另外一个ESP32开发板在Arduino环境下连接温湿度传感器、获取网络时间。就我个人而言,因为能使用第三方开发库,快速实现自己想要功能,所以更喜欢用Arduino来开发。而且使用ESP32IDF和VSCode开发,是第一次,有很多不熟悉的地方,是一边摸索一边开发。
五、作品功能演示视频
参考地址:https://training.eeworld.com.cn/video/41092
六、项目总结
以往我使用过ESP8266学习、开发一些小设计,因此这次大赛选择了ESP32S3开发板。本来以为可以继续使用ESP32-S3-LCD-EV-Board-SUB2模组在Arduino上进行快速开发,但没想到在模组本身的LCD驱动和触摸屏的驱动上,遇到了很多问题。首先就是在Arduino环境下没有合适的第三方驱动库,而自己从头开发,显然时间上是来不及的。所以最后使用了两个子系统的方案,由一块ESP32开发板做成WebServer,而另一块ESP32开发板作为主控制板,同时作为HTTP客户端访问WebServer,获取必要的数据。
这个开发过程是最开始选择在选择物料时没有想到的,因而在开发过程中吃了不少苦头,导致一边找资料学习、尝试,一边修改方案,这算是一个教训。以后在进行新的开发的时候,务必要搞清楚所选物料的功能、优缺点后,再决定使用什么物料和什么开发环境。总之要适合自己快速开发才好。
七、其它
由于半导体技术的发展,我们不可避免地会遇到熟悉的单片机慢慢退出市场,需要重新选型的情况。不断学习、适应新的单片机、新的的开发环境,这一点对每一个开发者而言,都是不可避免的。因此,必须不断学习,这一点是很重要的。
本帖最后由 suncat 于 2024-9-26 10:41 编辑
ESP32界面在原基础上改的呀?
引用: 秦天qintian0303 发表于 2024-9-24 12:02 必须得来个土壤湿度传感器啊,这样浇水更加合理
其实每天维持一定量的水,就能保证正常生长。
引用: wangerxian 发表于 2024-9-24 09:03 ESP32界面在原基础上改的呀?
是啊,在例程的基础上修改的
引用: [quote]wangerxian 发表于 2024-9-24 09:03
ESP32界面在原基础上改的呀?
引用: wangerxian 发表于 2024-9-24 20:49 是啊,在例程的基础上修改的
这是我第一次学习用lvgl,因为活动期限的问题,只能后期深入学习。这还是因为以前做过Java的SWING编程,才能做到这样的程度。lvgl编程在界面布局上挺麻烦的。
引用: suncat 发表于 2024-9-24 22:49 我觉得可以多学一些lvgl,再优化一下界面~
如果直接上手项目确实会有点难,得从头开始学会好一些~