智能家居自动浇灌监控系统设计方案

描述

今年3月中,由腾讯TencentOS团队联合恩智浦半导体、安谋科技(Arm China)发起的线上开发者活动——TencentOS Tiny AIoT 应用创新大赛,评选出了优胜获奖者,本文介绍其中一个获奖作品。

一、总体设计家居自动浇灌监控系统主要实现了,在室内环境下植物的湿度监测和自动浇灌。

系统基于TencentOS Tiny EVB_AIoT开发板和NXP的MCUXpresso IDE,使用了土壤湿度传感器监测土壤湿度,并通过TencentOS Tiny的MQTT模块,传输至腾讯云物联网开发平台(IoT Explorer),可根据设定阈值由外接的水泵对上述环境变量进行控制,系统连接腾讯云后可以实时远程观测植物土壤湿度并手动控制水泵启停。

智能家居

二、具体设计与实现(一)硬件方案

系统基于TencentOS Tiny AIoT开发套件,套件核心板采用NXP i.MX RT1062处理器,套件自带物联网俱乐部的,基于WAN Interface接口的ESP8266模组和E53模块,额外模组有fly-fish的土壤湿度采集模块,水泵由于过年不发货,年后又由于疫情不发货,导致迟迟不能到位,眼看交作业日期一天天临近,于是打上了E53模组上的LED灯的主意,假设为水泵吧,反正都是一个针脚IO控制。

智能家居

(二)软件方案与实现

1. MQTT线程,负责连接腾讯云,接收土壤湿度数据并转发至腾讯云,接收腾讯云的控制命令,启停水泵。

2. ADC线程,负责采集土壤湿度采集模块的数据并通过消息队列转发至MQTT线程,经测试ADC数据只能在2900(水中)到4096(空气中)之间变化,所以做了个简单的量化数据计算公式(100 - (adcVal - 3096)/10),按照湿度百分比来计算。

智能家居

3. PUMP线程,接受来自MQTT线程的命令,启停水泵,本案例中是亮灭E53模块的LED灯。

4. LED线程,按照每1s切换一次的频率,点亮、熄灭板子上的蓝色LED灯,指示系统是否正常工作。

三、功能展示(一)总体展示

业务逻辑实现。

智能家居

历史数据展示:

智能家居

(二)数据采集+本地控制

土壤湿度超过一定值,水泵(E53 LED)停止工作,同时往腾讯云上报的数据如下图。

智能家居

土壤湿度低于一定值,水泵(E53 LED)开始工作,同时往腾讯云上报的数据如下图。

智能家居

(三)云端控制

如果需要人工控制水泵的话,直接在云端下发命令,人工接管水泵工作。

智能家居

(四)腾讯连连

智能家居

四、一些想法和建议(一)关于RT1062和IDE

i.MX RT1062这颗U很强大很赞,譬如跑个RTOS,别家的U在这个负荷已经开始烫手了,得益于更先进的制程,1062一点温度都没有感觉到。MCUXpresso IDE的Pins模块,对于不熟悉NXP产品的人来说,尤其是默认路由功能,真的是救星一般,单论针脚选择和初始化生成,感觉比CUBEMX还要好用一点。

同样的,缺点(或者是不习惯的地方)也很明显,一方面是MCU的针脚命名,去寻找一个针脚真心费劲;另一方面是资料,相关资料较少,譬如网上找了很多资料关于FlexRAM配置都有点不痛不痒,很希望有个类似Pins这样的图形化生成小工具。

(二)关于TencentOS Tiny和IoT Explorer

TencentOS Tiny的确很Tiny,各项资源开销都很小,几个组件的确稳定,譬如这次用到的MQTT组件,对比别家的跑着跑着一天内就掉线,Tiny的没有这现象。

Tiny的一个问题不得不说,就是文档不知道是不是太老旧还是不同步,资料不全,譬如想知道消息队列的案例,gitee上给的是指向github的链接,因为没有梯子,只能国内的找找,到底是用tos_msg_q_create()还是tos_msg_queue_create()亦或者用tos_queue_create()创建MQ,哪个是最新的?

最后,感谢腾讯提供这么一次机会近距离实战体验RT1062和TencentOS Tiny。

原文标题:AIoT应用创新大赛获奖作品精选:智能家居自动浇灌监控系统

文章出处:【微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分