概述
最近一心用在嵌入式上了,而这的起因仅仅是因为自己家声控灯座坏了,于是想换个更智能的照明控制器。但对于嵌入式,真的不是一学就会的,尽管有很多物联网平台已经大大简化了开发流程,尽管相关的教程已经很完善了,但对于初学者,没有对产品开发的整体把握,往往一步一个坑。鉴于自己的爬坑经历,有必要来记录一下了。
对于目前的嵌入式开发,联网的功能几乎成了标配,所以在开发前我们需要知道物联网的通讯,这就不得不说MQTT协议。
一、MQTT
MQTT(消息队列遥测传输)是基于发布/订阅式的消息协议。工作在TCP/IP协议族上,因此完全可以通过TCP/IP来实现消息的传输。MQTT最大的特点是:轻量、简单、开放和易于实现。对于嵌入式而言,这实在是再合适不过了。因此MQTT被广泛用于机器与机器(M2M)通信和物联网(loT)。
二、Paho-MQTT
Paho-MQTT是用来实现MQTT协议处理的模块,类似于Socket来处理TCP。此模块支持很多语言,以Python为例,先安装此模块,然后直接调用具体的函数就能实现MQTT通讯。
三、阿里物联网平台
阿里物联网平台是基于阿里云打造的物联网开发和管理平台,这个平台有很多不错的功能,值得去探索一下。关于这个平台的作用,可以看下图:
阿里物联网平台是智能终端与物联网设备之间的媒介,正是通过这个媒介来实现万物互联。本次在虚拟机下运行python程序来模拟物联网设备,主机通过浏览器访问阿里物联网来代表终端设备。
四、创建云产品
在阿里物联网平台创建产品,关于产品的创建,官网的教程还是很详细的,直接按照教程一步步操作即可:
设备列表显示了创建的产品,其中比较重要的是设备的产品标识(ID):ProductKey、DeviceName、DeviceSecret,这三个参数用来组成产品接入云的身份验证,这在接下来的程序中需要用到。
五、编程
首先安装Paho-MQTT:pip install paho-mqtt
安装完成后进入python环境测试一下:
如上图未报错表明安装成功,有时候安装提示错误是因为已经安装了,所以可以先测试下是否已安装。
程序不复杂,就直接上图了:
图中白色部分是出于安全考虑将密码遮挡了。
程序编译通过后就可以运行了。
六、测试
运行编写好的py文件:
设备启动后,先收到一个来自属性的回复。
打开阿里物联网平台,查看设备:
已经显示在线了,这就表明设备和平台已经建立了连接。
接下来测试消息的下发,也就是给设备发布指令:
调试功能选择电源开关,方法选择设置,然后将{"PowerSwitch":1}点击发送指令:
获取到开关状态后就可以根据这个状态来执行相关的动作(如控制电源的开和关)
最后来测试上报,上报就是设备将自身的一些信息发送给控制端,本例中设备端刚才收到了电源开的指令,但设备是否真的打开了电源,控制端并不知道,因此控制端需要询问一下,将方法改为获取后点击发送指令,然后将返回获取的结果(结果在代码框中显示,如"PowerSwitch":0):
说明设备端返回的结果表示电源未打开,我们只需将程序中上报的消息进行修改就可:
将上报的消息内容中的"PowerSwitch":0改为1
再次发送获取指令:
获取的结果符合预期,测试成功。
七、总结
对于物联网,很多嵌入式通讯模块已经有MQTT通讯的SDK,因此我们不必关心通讯的底层实现,直接使用发送和接收函数来进行信息处理就可以了。
最后
以上就是懵懂砖头为你收集整理的mqtt 获取 状态_物联网的构建:Python使用MQTT连接阿里物联网平台的全部内容,希望文章能够帮你解决mqtt 获取 状态_物联网的构建:Python使用MQTT连接阿里物联网平台所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复