基于机智云的智能花盆1.0

目录

一、前言

二、总体设计

三、硬件准备

四、接入机智云

五、机智云协议使用解析

六、测试


一、前言

随着人均收入的增加,人们对于生活质量的要求也水涨船高。越来越多的人选择在家庭中种植绿色植物,而生命力及强的多肉成了不少人的选择。尽管如此,也时常发送一些多肉长时间缺乏浇水而落叶、浇水过多坏根的惨案...为此在大四上学期设计改智能花盆1.0;2.0版本近期将整理出来。

我们期望的功能有:

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

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

3.在线控制浇水

二、总体设计

对比几款常见的云平台后,我们选用提供调试APP的机智云作为云平台。

三、硬件准备

四、接入机智云

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

接着创建数据点,下面是我创建的数据点,光照强度这个版本没来得及加上...

完成以后我们可以使用虚拟设备调试,首先需要下载机智云调试APP

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

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

感觉没有问题我们就进行下一步,固件烧录。机智云官方固件可在下载中心中找到

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

烧录需要使用usb转ttl模块与wifi模块连接;设备连接示意图(红圈内的是需要注意的连接)

开始烧录的时候它会要求你给WIFI模块复位,如设备无自动复位,只需要使RST接以下低电平触发即可。

烧录完成后,可使用机智云提供的串口调试助手可实现虚拟MCU调试,以验证烧录是否成功。

同样WIFI模块接着USB转TTL插入电脑,这里需要注意的是你的RST引脚和使能固件烧录的引脚必须是无效的。

然后按下图顺序做好设置

配置模式有两种,AirLink和Softap。

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这个结构体变量中即可

由于我们定义的产品是定时上传数据的,数据上报函数我们可以不用细致了解;但是若你定义的数据点中有布尔变量,建议修改数据userHandle()函数,以减低高频率上传时引起的数据上下行冲突而造成APP端开关变量的不断跳变。

MCU开关量上传---->机智云----->APP显示

APP改变开关量---->机智云----->MCU指令解析

为避免过多影响设备性能,实现方式为采用定时器实现非阻塞延时

void userHandle(void)
{
    static uint32_t irLastTimer = 0;
	  
    if((gizGetTimerCount()-irLastTimer ) > n)
    {
        ......
        irLastTimer = gizGetTimerCount();    
    }
}

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

APP的控制部分,则由gizwits_product.c的另一个函数gizwitsEventProcess()实现接收机智云平台发送回MCU的指令

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

此外,为了提高连接机智云的成功率,建议在gizwits_protocol.h修改重连次数和超时时间

六、测试

外壳部分本来是想采用3D打印的,由于3D太耗时间...后面就没加上

APP演示

最底下出现的是水位警报

  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值