【2024 DigiKey创意大赛】+自动浇水装置
[复制链接]
本帖最后由 suncat 于 2024-9-26 10:41 编辑
定时浇水装置
作者:suncat
一、作品简介
1、作品图片
2、作品功能
按照设置计划,实现每天定时浇水。浇水的启动时间和浇水时长可在设置页面进行调节。系统时间跟网络时间同步,同时利用温湿度传感器监测环境温湿度。在环境温度比较高、湿度正常时,会释放延长浇水时长。
3、物料清单
物料名称
|
数量
|
作用
|
ESP32-S3-LCD-EV-Board-SUB2模组
|
1
|
主控板
|
ESP32-S3-DevKit
|
1
|
WebServer,采集环境数据提供给客户端
|
GXHT30温湿度传感器
|
1
|
采集环境温湿度
|
抽水马达
|
1
|
抽水
|
抽水马达专用电源板
|
1
|
为抽水马达提供电源
|
继电器模块
|
1
|
经由主控板控制抽水马达的加电/断电
|
二、系统框图
系统由两部分构成。一部分用来获取网络时间和环境温湿度并以服务器形式发布。另一部分作为控制端,以HttpClient方式访问服务器,获取相关数据,并根据自身的设置,决定什么时候浇水,以及浇多长时间的水。
三、各部分功能说明
1、WebServer部分
由ESP32-S3-DevKit开发板实现。ESP32-S3-DevKit开发板获取网络标准时间,并使用SHT30温湿度传感器周期检测环境温湿度。同时ESP32-S3-DevKit开发板建立WebServer服务器,当游客户端访问时,将日期、时间、环境温湿度数据发送给客户端。
2、主控部分
由ESP32-S3-LCD-EV-Board-SUB2模组构成。使用lvgl设计为图形界面。在界面上可以调整交税的时间,以及浇水时长。显示器件使用模组中的3.95英寸显示屏作为输出部件,使用触摸平作为输入部件。
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,获取必要的数据。
这个开发过程是最开始选择在选择物料时没有想到的,因而在开发过程中吃了不少苦头,导致一边找资料学习、尝试,一边修改方案,这算是一个教训。以后在进行新的开发的时候,务必要搞清楚所选物料的功能、优缺点后,再决定使用什么物料和什么开发环境。总之要适合自己快速开发才好。
七、其它
由于半导体技术的发展,我们不可避免地会遇到熟悉的单片机慢慢退出市场,需要重新选型的情况。不断学习、适应新的单片机、新的的开发环境,这一点对每一个开发者而言,都是不可避免的。因此,必须不断学习,这一点是很重要的。
|