【天启教育M1开发板试用体验】基于MQTT的智能环境监视控制器

描述

本文来源电子发烧友社区,作者:jyaxz, 帖子地址:https://bbs.elecfans.com/jishu_2308726_1_1.html


基于MQTT的智能环境监视控制器

前一个试用中

https://bbs.elecfans.com/jishu_2307663_1_1.html

利用天启M1和传感器采集板S1完成了本地采集和控制功能。

由于天启M1集成了无线连接wifi控制器,同时支持mqtt的功能,所以对第一个设计升级,使它成为一个网络化的监视和控制器。

这个想法在试用开始的时候就有,但是一直也没有很好的解决MQTT的网络化问题,借着十一的时间,认真的研究了一下,终于可以成功的解决了所有的环节。

本测试包换前置采集和执行器,由天启M1+S1来完成,采用树莓派ZeroW架设MQTT的broker,利用Node-Read作为上位的监视和控制部分。

这里重点介绍一下天启M1的实现。

M1程序介绍

变量创建

开发板试用

这里面创建了三个变量,用来存储从S1传感器采集的温度、湿度和亮度值。

无线网络连接

开发板试用

利用wifi连接模块和家里面的路由器建立无线连接,并获取IP地址。

和MQTT Broker建立连接

开发板试用

无线连接建立后,就可以完成MQTT的连接了,通过和厂家的技术支持连接,第一条本机ID的设置很重要,应该被执行,以前在MQTT连接建立的时候总是出错,一个原因是这个ID的设置没有执行,另一个就是MQTT 的 Broker建立的有问题。因此这次我采用了树莓派ZeroW在局域网内来建立。

这里采用的是mosquitto开源软件,在树莓派上编译并运行。这里我们不详细介绍在树莓派上布置mosquitto的相关信息,感兴趣的话可以baidu一下,信息还是很多的。

开发板试用

环境参量获取

开发板试用

这里实现了三个函数,分别是读取温度,读取湿度和读取亮度。

发布环境变量信息

当读取完环境参量后,我们向MQTT服务器发布三条信息。

开发板试用

订阅控制信息及处理

开发板试用

在MQTT链接成功建立后,向服务器发布订阅信息。

开发板试用

通过“接受到的MQTT消息”块,获取MQTT的控制信息,由于系统没有提供更多的处理功能,所以支持选取最简单的信息内容,采用1-6这6个数字,每个数字分别代表一个控制量,这里模拟RGB小灯的红灯和绿灯共6个状态。

MQTT的运行信息监视

开发板试用

通过MQTTX这个软件,我们可以作为监视调试窗口,看到所有M1的信息发布,和订阅的控制信息传输。

Node-Red搭建的采集和控制系统

node-red系统的搭建大家可以在网上查一下,由于不是重点,这里也不介绍整个系统的搭建过程。

开发板试用

在node-red中搭建的温度采集和控制流图。

开发板试用

在dashboard中看到的采集温度图和红绿灯控制接口。

测试总结

实际测试过中,发现M1的MQTT网络连接效果不是太好,整体运行很难持续较长的时间,基本30分钟左右会出现断联的情况。这种情况是如何发生的,目前还没有找到原因。

开发板试用

 

mqtt发布信息和接收控制信息,视频演示内容,详见作者原帖子文章。



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

全部0条评论

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

×
20
完善资料,
赚取积分