一、总体设计家居自动浇灌监控系统主要实现了在室内环境下植物的湿度监测和自动浇灌。系统基于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。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。智能家居自动浇灌监控系统
二、具体设计与实现
(一)硬件方案
土壤湿度超过一定值,水泵(E53 LED)停止工作,同时往腾讯云上报的数据如下图。
土壤湿度低于一定值,水泵(E53 LED)开始工作,同时往腾讯云上报的数据如下图。
(一)关于RT1062和IDE。RT1062这颗U很强大很赞,譬如跑个RTOS,别家的U在这个负荷已经开始烫手了,得益于更先进的制程,1062一点温度都没有感觉到。MCUXpresso IDE的Pins模块,对于不熟悉NXP产品的人来说,尤其是默认路由功能,真的是救星一般,单论针脚选择和初始化生成,感觉比CUBEMX还要好用一点。同样的,缺点(或者是不习惯的地方)也很明显,一方面是MCU的针脚命名,去寻找一个针脚真心费劲;另一方面是资料,相关资料较少,譬如网上找了很多资料关于FlexRAM配置都有点不痛不痒,很希望有个类似Pins这样的图形化生成小工具。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。