基于机智云平台的智能花盆

目录

  一、前言

  二、总体设计

  三、硬件准备

  四、接入机智云

    虚拟设备调试

    固件烧录

    虚拟MCU调试

      一键配置模式

      热点模式

  五、代码解析

  六、测试

 

 

 

百度云盘链接: https://pan.baidu.com/s/1U3tctyEljSVLrVXiJ5ElzA

提取码: pmw6

 

一、前言

  有时候会听到朋友难过的说“我养的多肉又掉叶子了...” 是不是太久没浇水啦?

  “假期有谁家在学校附件的帮我照顾下盆栽..” 真不好意思麻烦你了。

  你是否也经历过这样的烦恼?反正我都经历过...

  作为理科生当然是选择自己动手做一个啦~

 

二、总体设计

  首先,我们期望的功能有:

  1.实现温度,土壤湿度等数据的在线监控

2.当土壤湿度低于一定值时自动浇水

3.在线控制浇水

 

  总体设计如下:

 

  我们面临的第一个问题是平台的选择,我尝试了几个开发平台后最终选择的是机智云,它提供调试APP无须我们另外开发。

 

 

三、硬件准备

 

 

 

 

 

四、接入机智云

首先我们要贼机智云的开发者中心注册一个账号,登陆以后创建一个新产品

 

接着创建数据点,下面是我创建的数据点,光照强度后来没加上

 

完成以后我们可以使用虚拟设备调试

下载机智云调试APP

下载以后我们在个人项目中点开虚拟设备调试

 

打开APP,准备扫码查看我们的数据点

 

 

感觉没有问题我们就进行下一步

固件烧录

机智云官方固件可在下载中心中找到

解压后发现其含有以下文件,这里建议使用四合一的固件,烧录方便,至于烧录工具我们选择乐鑫原厂固件烧写工具

 

设备连接(红圈内的是需要注意的连接)

 

 完成以后直接用USB转TTL插入电脑烧录固件即可,开始烧录的时候它会要求你给WIFI模块复位,这时我们只需要使RST接以下低电平触发即可。

 

那么如何验证我们的WIFI模块烧录以后是正常可用的呢?

机智云提供了串口调试助手可实现

虚拟MCU调试

 

 

同样WIFI模块接着USB转TTL插入电脑

这里需要注意的是你的RST引脚和使能固件烧录的引脚必须是无效的。

然后按下图顺序做好设置

 

1.AirLink为机智云的一键配置模式

手机连接路由器(我用360随身WIFI充当无线路由)

随后打开机智云APP添加设备,选择一键配置,选择模组。

 

随后在串口调试助手中点击初始化,AirLink使模块进入一键配置模式。接着静待连接成功。

有时候链接超时不稳定可以再试一次。

 

2.Softap为热点模式

热点模式即让WIFI模块生成热点。

烧写了GAgent固件的WiFI模块配置为AP模式时,其WIFI名为”XPG-GAgent-xxxx”,

其中”xxxx”为Wi-Fi模块的物理地址后四位,初始密码为”123456789。

手机链接热点后使用热点配置添加设备,其余操作同上。

 

五、代码解析

完成至此,我们仅仅需要完成MCU的开发即可,下面讲讲机智云模板代码的修改

机智云官方推荐的编程软件是STM32Cube+Keil

STM32Cube可以轻松完成MCU的初始化的修改

keil则提供了编译烧录环境

 

首先我们在机智云的个人项目中选择MCU开发,等待模板代码生成

 

 

模板代码内含以下文件,作为使用者我们无需全部关注

首先我们打开STM32F103C8x.ioc

添加外设初始化,接着重新生成代码

main.c

按键函数包括初始化,重启,启动AirLink模式和启动Softap模式

 

主函数内,先是完成了各种初始化。接着是我自己添加的一段模式配置,这样就可以不用通过按键配置了

再往下就是再while循环内不断完成数据采集和数据的上报

 

下面我们跟踪以下数据采集的函数,只要数据赋值到currentDataPoint这个结构体变量中即可

由于我们定义的产品是定时上传数据的,数据上报函数我们可以不用细致了解

 

由此我们完成了设备数据采集---->服务器----->客户端

那么我们的手机如何控制设备呢?

这要说起gizwits_product.c的另一个函数gizwitsEventProcess

我们在这里添加接收到水泵开关事件的处理以及自动灌溉事件处理

至此基本完成

为了提高连接机智云的成功率

建议在gizwits_protocol.h修改重连次数和超时时间

 

 

六、测试

 

 

 为啥我把它焊接成这个样子呢,因为我本来打算给他做一个外壳的...然后把它放到懒人花盆上

可是这东西打印需要12小时,也就一直没行动...

后来我又想了一个方法,用3个以下形状的盒子像积木一样叠起来,底下的盒子放水,中间放设备,最上面种植物

同样也没有3D打印

 

 

APP演示

最底下出现的是水位警报

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/JYU-hsy/p/9965309.html

对于此项目,我们必须包含一组需要包含的组件:BME280,Seeed Grove灰尘传感器,Seeed Grove空气质量v1.3传感器,电容性土壤湿度传感器,Adafruit 128x64 OLED显示屏,继电器和一个粒子氩。 对于我的设计,我想要一个看起来干净且精致的设置。我本来想把一个盒子和一个花盆放在一个水箱上,但最终将其改为放在丙烯酸圆盘上的所有东西。对于盒子,我在Autodesk Fusion 360中对它和盖子建模,并使用Formlabs 3 Resin打印机将它们打印出来。对于花盆i,我也曾在Fusion 360中对其进行建模,并使用Ultimaker 3 3D打印机将其打印出来。对于水库本身,我使用了刚好适合该项目的剩余丙烯酸光盘。 该项目的目标是要有一个可以通过网络控制的整洁的自动浇水花盆。完成大约8个小时的工作就完成了,但是实际打印所有内容都花费了更长的时间。锅用了大约23个小时,盒子在树脂打印机上用了3个小时,而储藏室用了大约2个小时使其干燥。 BME280与土壤湿度传感器一起安装在花盆内。粒子通过继电器安装在盒子内,显示屏拧紧在外壳上,电动机安装在储水箱内,空气质量传感器和灰尘传感器一起热粘在外壳的盖子上。 对于这种情况,我想要一个易于使用的粒子氩气端口,一个易于拆卸但也可以固定的盖子,允许所有电线通过的直通孔,继电器安装在面包板上方以及灰尘传感器/空气质量传感器都安装在盖子上,以便能够更准确地读取空气。 对于水库,我最初希望将盒子和花盆都安装在其顶部,直径约6英寸。由于材料的使用,这种情况发生了变化,我发现直径为4.5英寸的丙烯酸光盘正被某人使用。我将其更改为双面粘贴到直径9英寸的较大的丙烯酸圆盘上,并将4.5英寸的圆圈粘在一起。虽然我曾经使用硅树脂,但是决定不给丙烯酸树脂提供必要的附着力,所以我最终使用了汽车RTV,该技术可以实现水密密封,并且能够有效地将每一块胶粘在一起。 对于花盆,我希望供水来自侧面,带有一个小尖头,可以使水更均匀地分配给土壤湿度传感器,以更准确地读取土壤。我在锅中钻了两个孔,一个用于土壤传感器的电线,另一个用于连接软管。我将电线和连接器热粘合在一起,希望能形成水密密封,但最终不得不使用浴室硅胶密封它们,以免它们泄漏!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值