电子工程师日常——MQTT协议与电信天冀云平台连接

我喜欢四处溜达 2024-08-19 19:46:43

做电子工程师这一行,只要还在一线工作(设计开发产品),那就避免不了时刻准备学习新技术,因为没有哪项技术可以做到一招鲜吃遍天。

一直学习新技术挺折磨人的,特别是对一个高龄(35岁以上)技术人员来说更是如此,有时候就想躺在过去的资本上做些能力范围内的东西,这样即轻松又悠闲。

不过做到这一行没办法,电子行业的发展日新月异,不学就没办法胜任新工作,就要被淘汰被优化,所以只能硬着头皮去学习。

最近就学习了一款新的协议——MQTT协议,正好忙完了,有时间拿出来整理一番,写出来既是总结也是给后面有需要的人一种参考。

MQTT协议是一种队列消息传输协议,常用于物联网设备。

MQTT协议最大的特点就是消息订阅

TCP通讯中最常见的设置是IP和端口号,再设置个TCP模式(客户端或服务器)就可以开始相互通讯,我这边发数据你那边可以接收,点对点传输。

MQTT协议讲究的是订阅,只有你订阅了就可以接收信息,没订阅就收不到信息,消息传输不仅限于设备和云平台,也可是设备和设备之间通讯,云平台只是个载体。

比如有三个不同的设备,它们分别是温度传感器、风扇、空调,它们同时连上云平台且都连上云平台。

它们的工作逻辑是这样的,温度传感器检测到温度高于设定阀值时要开始风扇降温,风扇开启后温度还是持续上升时再开空调,同时风扇需要关闭。

如果用MQTT协议来通讯,温度传感器检测需要设置一个推送主题(往外发消息),风扇和空调需要订阅温度传感器检测的推送主题(从这里可以看到一推送主题是接送者的订阅主题)以便接收温度传感器发送的消息。

空调也要设置一个推送主题(告诉风扇该停止运行),风扇则要多订阅一个主题。

逻辑清晰后大家开始工作,先是温度传感器每隔一段时间通过推送主题发送数据,当风扇接收到温度传感器检测检测的温度高于阀值时开启工作,再过一段时间后空调接收到温度传感器检测检测的温度高于阀值时开启空调,同时通过推送主题发送关闭风扇的数据。

这里空调推送的主题只有风扇订阅了,所以只有风扇能收到,温度传感器则收不到,整个工作流程就完成了,可以看出云平台在这里只是个中介并没有直接参与工作,全程是设备和设备之间互相通讯。

MQTT在电信云平台的应用

这次任务下的比较急,没时间研究4G芯片相关的硬件开发,所以只能外购支持MQTT协议的4G模块,好在模块也不贵,只要二三十就能搞定,在这里只介绍一些MQTT协议纯软件的配置说明。

我相信,只要理解了软件相关的配置,再去做硬件相关的开发也不难,有兴趣的可以去查下MQTT3.1.1.pdf文件,参考具体协议,很容易就开发出来。

MQTT协议在电信云平台上的应用从创建产品开始,如下图所示,先创建一个标准产品。

创建产品

有了产品后还要创建自定义属性,就是推送主题(指令下发)和订阅主题(数据上传),如下图所示,我分别创建了一个M_test的订阅主题和一个set_time_gap的推送主题,这两个主题分别用于接收数据和下发指令。

上面设置好了以后就可以创建设备了,如下图我创建了两个设备用来做测试。

创建设备时平台会为该设备生成一个设备ID,这个有用。

以上设置完成后,云平台的设置就结束了,接下来就是设备连网通讯了,这里我用一个MQTT模拟设备来完成测试,这个软件可以理解为类似网络调试助手一样的MQTT协议调试助手。

打开软件后先做一个基本的设置,分别是服务器(云平台)IP,端口号和设备ID,其它的保持默认设置即可。

看到这是不是和网络调试助手设置一样,网络调试用手还可以配置服务器或客户端,MQTT这里只有客户端没的选,比网络调试助手多了一项是Client ID,这个就是云平台生成的设备ID,两者需对应起来才行,这样设备上线后云平台会亮绿灯,表示该设备已连接。

以上设备完成后可以点击连接按钮,如果连接上右边的小圆圈会变成绿色。

此时登入电信天冀云平台,找到对应设备会显示设备已激活。

接着就是测试通讯,先发数据,在软件上找到平台的订阅主题(数据上传),这里这个主题是M_test,因为电信的天冀云平台是JSON格式上传,所以发送数据时必须遵守这一协议格式。

以上是我发送的一串测试字符串数据,平台显示数据上传成功。

再试下指令下发,找到指令下发对应的主题,填入参数,点击确定即可。

查看软件,发现下发数据成功接收

至此数据上传发下发流程测试结束,问题轻松解决。

每次接触新技术就是这样,你对它不了解时看它就像雾里看花越看越模糊,一旦你钻进去学习钻研后就会发现,原来也就这样。

不过话说起来是简单,中间过程还是挺折磨人的,特别是遇到问题卡在那时更难熬,不过这到这行也没啥好办法,只能努力去适应了。

0 阅读:12

我喜欢四处溜达

简介:感谢大家的关注