[作品提交] 【2024 DigiKey创意大赛】+自动浇水装置

suncat   2024-9-23 21:12 楼主

定时浇水装置

作者:suncat

一、作品简介

1、作品图片

图片1.png
2、作品功能
    按照设置计划,实现每天定时浇水。浇水的启动时间和浇水时长可在设置页面进行调节。系统时间跟网络时间同步,同时利用温湿度传感器监测环境温湿度。在环境温度比较高、湿度正常时,会释放延长浇水时长。
3、物料清单

物料名称

数量

作用

ESP32-S3-LCD-EV-Board-SUB2模组

1

主控板

ESP32-S3-DevKit

1

WebServer,采集环境数据提供给客户端

GXHT30温湿度传感器

1

采集环境温湿度

抽水马达

1

抽水

抽水马达专用电源板

1

为抽水马达提供电源

继电器模块

1

经由主控板控制抽水马达的加电/断电

 
二、系统框图
图片2.png

 

 

系统由两部分构成。一部分用来获取网络时间和环境温湿度并以服务器形式发布。另一部分作为控制端,以HttpClient方式访问服务器,获取相关数据,并根据自身的设置,决定什么时候浇水,以及浇多长时间的水。
 
三、各部分功能说明
1、WebServer部分
    由ESP32-S3-DevKit开发板实现。ESP32-S3-DevKit开发板获取网络标准时间,并使用SHT30温湿度传感器周期检测环境温湿度。同时ESP32-S3-DevKit开发板建立WebServer服务器,当游客户端访问时,将日期、时间、环境温湿度数据发送给客户端。
图片3.png

 

2、主控部分
    由ESP32-S3-LCD-EV-Board-SUB2模组构成。使用lvgl设计为图形界面。在界面上可以调整交税的时间,以及浇水时长。显示器件使用模组中的3.95英寸显示屏作为输出部件,使用触摸平作为输入部件。
图片5.png

 

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 编辑

回复评论 (7)

ESP32界面在原基础上改的呀?

点赞  2024-9-24 09:03

必须得来个土壤湿度传感器啊,这样浇水更加合理  

在爱好的道路上不断前进,在生活的迷雾中播撒光引
点赞  2024-9-24 12:02
引用: 秦天qintian0303 发表于 2024-9-24 12:02 必须得来个土壤湿度传感器啊,这样浇水更加合理  

其实每天维持一定量的水,就能保证正常生长。

点赞  2024-9-24 19:55
引用: wangerxian 发表于 2024-9-24 09:03 ESP32界面在原基础上改的呀?

是啊,在例程的基础上修改的

点赞  2024-9-24 19:55
引用: [quote]wangerxian 发表于 2024-9-24 09:03
ESP32界面在原基础上改的呀?

是啊,在例程的基础上修改的
[/quote]

我觉得可以多学一些lvgl,再优化一下界面~
点赞  2024-9-24 20:49
引用: wangerxian 发表于 2024-9-24 20:49 是啊,在例程的基础上修改的
我觉得可以多学一些lvgl,再优化一下界面~[/quote]

这是我第一次学习用lvgl,因为活动期限的问题,只能后期深入学习。这还是因为以前做过Java的SWING编程,才能做到这样的程度。lvgl编程在界面布局上挺麻烦的。

点赞  2024-9-24 22:49
引用: suncat 发表于 2024-9-24 22:49 我觉得可以多学一些lvgl,再优化一下界面~
这是我第一次学习用lvgl,因为活动期限的问题,只 ...[/quote]

如果直接上手项目确实会有点难,得从头开始学会好一些~

点赞  2024-9-25 09:11
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复