用Python打造基于MQ的应用(无需服务器)

2019-07-233942
AI 快速预览详细 收起
本文介绍了如何使用Python和MQTT协议在无需服务器的情况下实现设备数据推送。首先,安装Python环境和开发工具vscode或pycharm,并安装paho-mqtt库。接着,开通OneNET平台的MQ服务并获取重要参数。然后,创建Topic进行数据筛选,并配置缓存时间以保证数据不丢失。最后,编写客户端代码,使用paho-mqtt库接收和解析设备数据。附带完整源码示例,帮助开发者简化开发流程,节省成本。
自己挖的坑,自己还得找时间来跳!


然后吐口唾沫把自己埋了。


用Python打造基于MQ的应用(无需服务器)图1

先叨逼叨一段,写这个是因为我们很多童鞋想要用OneNET做开发,搞比赛,设备能接入了,平台也搞定了,想搞一个自己应用就懵逼了!

因为OneNET平台推送到第三方的时候需要有服务器做支撑,还得要域名,这尼玛还能玩?

玩不动玩不动。

不搞了不搞了,告辞。

就这样一条有梦想的咸鱼永远的离开了我们。

那可以不行,就这么走了,爸爸会心疼。
用Python打造基于MQ的应用(无需服务器)图2

说白了不就是接收一个推送数据嘛,http推送玩不了,我们就玩MQ推送,贼**简单。

来跟我一起嗨起来。

用Python打造基于MQ的应用(无需服务器)图3


老规矩,正文开始

准备工作

电脑一台

鼠标一个

键盘一个

显示器一台

.......


编程语言:Python 3.5.4

开发环境:vscode,pycharm

第三方库:paho-mqtt

第一步:安装Python环境

第二步:安装开发环境vscode吧,比较好看

第三步:打开vscode


用Python打造基于MQ的应用(无需服务器)图4


...

累了,不逼逼了。


准备工作做好了,介绍下MQ吧。

https://open.iot.10086.cn/doc/book/application-develop/mq/introduce.html

看下官方的介绍。

简单介绍就是基于MQTT的消息队列服务,

就是设备上传数据过后,会进入到这个队列,等待你们客户端去消费你的数据。

以下是开通和配置的流程。

用Python打造基于MQ的应用(无需服务器)图5

第一步开通MQ服务

用Python打造基于MQ的应用(无需服务器)图6

第二步:开通后会有两个重要参数,知道位置就行,用的时候来取

用Python打造基于MQ的应用(无需服务器)图7

第三步:创建Topic,这里我的理解就是MQ有数据筛选功能,一个topic可以有一类数据筛选,也可以全部。具体筛选规则和配置参考开发文档。

创建Topic可以配置缓存时间,现在支持最大缓存7天的数据,可以保证7天的数据不丢失,这也是解决了http推送中第三方服务器出故障的期间数据会丢失这个问题。

用Python打造基于MQ的应用(无需服务器)图8

数据流和设备事件就不多做解释了,看就明白了。

用Python打造基于MQ的应用(无需服务器)图9

最后创建订阅,订阅就是消费客户端订阅,可单点消费和集群消费,概念自己去看。懒得解释。

全部创建完就去写客户端。

客户端就是MQTT客户端,可以用mqttfx等免费移机收费的MQ软件,

也可以自己用代码写一个完整的客户端,

我就比较懒了,直接用开源的,车已经造好了,就没有必要造轮子了。

基本操作跟之前mqtt客户端一样。
用Python打造基于MQ的应用(无需服务器)图10
用Python打造基于MQ的应用(无需服务器)图11


附上源码:
与MQTT客户端不同的地方就是,MQ客户端只能收不需要发,并且必须设置TLS机密保证数据安全。
代码改一改可以直接跑,还有其他几个文件一会附件传上来。

目前这个版本是收到数据解析之后直接打印出来。

用Python打造基于MQ的应用(无需服务器)图12

设备事件,设备数据都拿到了 你还不知道怎么处理吗?



源码如下:

MQ.rar (5.67 KB, 下载次数: 14)

有问题随时联系我,还是希望你们参考我的自己写。

再挖个坑,改天加个界面吧,没有界面的程序你们都认为是没有灵魂的,哎。。。

告辞。



创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(0)
- 没有更多了 -