自动浇水系统——“多喝冷水”

Github代码链接:link
本文为自动浇水系统——“多喝冷水”的技术报告
− 本系统采用UIflow+M5GO Lite开发
− 使用MQTT通讯协议实现与手机的通讯
− 使用硬件有: M5GO Lite, EARTH传感器X 2, 舵机, 水容器
作品完成情况
1.预期功能
− 实时监测盆栽土壤湿度,并根据不同的湿度在M5屏幕上显示不同的图案(或水位)以及侧面LED灯显示不同的颜色。

− 当土壤湿度降低至阈值s以下时自动浇水一段时间t1并在其后一定时间t2内不再浇水不论湿度是否在阈值以下。

− 可以通过M5上按键控制是否在屏幕上显示图案(或水位)以及是否点亮侧面LED灯,达到类似省电模式的效果。

− 可以与手机通过WiFi进行连接,通讯,例如从手机上获取当前土壤湿度,是否需要给水容器加水等信息,也能通过手机进入省电模式。
2.实际完成情况

预期功能完全实现, 并且在此基础上增加了在手机上通过滑动条调节放水时间的功能以及在M5屏幕上显示电池电量的功能。

实现方案
1.机械部分
水容器结构:方形容器加四脚增高, 容器底部安装水龙头加皮管放水, 水龙头上加装辅助结构安放舵机(用于控制水龙头开关), 水龙头旁安装挂钩悬挂M5设备。
2.水容器外观图
在这里插入图片描述
水龙头结构放大图
在这里插入图片描述

安放舵机和M5设备后:

在这里插入图片描述
3.用于检测水位是否过低的结构

用一EARTH传感器连接导线并将导线接入容器中, 通过水位没过导线与低于导线时传感器的数值的不同判断水位是否过低

结构如图:
在这里插入图片描述
在这里插入图片描述
各功能模块实现思路
1.模块框图

在这里插入图片描述

2.实现细节

  • M5与手机通讯方式

    M5与手机的通讯选用MQTT协议, 服务器选用test.mosquitto.org免费测试服务器, 手机软件使用IoT MQTT Panel。

  • 屏幕显示及LED灯控制

    根据获取的土壤湿度, 电池电量以及省电模式标志在屏幕上显示湿度, 电量和不同的图案(三种)以及控制LED灯显示不同颜色(红黄蓝), 若省电模式标志为1(开启), 则屏幕上不显示图案, LED灯关闭, 可通过按钮A和手机控制省电模式。

  • 水龙头控制

    定义变量need_water辅助水龙头控制,初始值为1, 定义变量t_water控制放水时间, 初始值为5, 获取湿度值humidity,
    做以下步骤:

  1. 当humidity小于阈值并且need_water==1时调用water()函数开启水龙头一段时间, 并将need_water赋值为0

  2. 当humidity大于等于阈值时将need_water赋值为1

  3. 订阅手机发布的forced_water信息, 接收到时调用water()函数。

  4. 订阅手机发布的change_t_water信息, 改变t_water。

  5. 当按下按钮C时,
    调用water()函数。

  • 水位过低提醒

    定义threshold_add_water变量, 当水位没过导线时EARTH传感器数值高于threshold_add_water, 当水位高于导线时EARTH传感器数值低于threshold_add_water, 发布add_water信息至手机。
    屏幕显示示例
    在这里插入图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值