使用Python连接阿里云物联网
最近在做物联网相关的项目,想着用python模拟一个mqtt客户端,向云端发送数据以及从云端接收数据。
参考文章 《mqtt实战-Python接入阿里云物联网平台》
1 安装阿里云物联网平台提供的python sdk 第三方库
pip install aliyun-iot-linkkit
2 阿里云物联网平台创建设备
3.python代码(这里直接从参考文章里面拷贝出来,谢谢大神提供的代码)
from linkkit import linkkit
import time
import json
#连接阿里云
ProductKey=“a1Q6aDL1iKa” #你的产品key
DeviceName=“demo” #你的设备名称
DeviceSecret=“ba14184b64f6bce3ca1284c7b2c411e1”#你的设备密码
def on_connect(session_flag, rc, userdata):
print(“on_connect:%d,rc:%d,userdata:” % (session_flag, rc))
pass
#取消连接阿里云
def on_disconnect(rc, userdata):
print(“on_disconnect:rc:%d,userdata:” % rc)
def on_subscribe_topic(mid, granted_qos, userdata):#订阅topic
print(“on_subscribe_topic mid:%d, granted_qos:%s” %
(mid, str(‘,’.join(‘%s’ % it for it in granted_qos))))
pass
#接收云端的数据
def on_topic_message(topic, payload, qos, userdata):
#设备端的接收到的数据却是b:"123"用了一个切片去处理数据
print(“阿里云上传回的数值是:”, str(payload))
#拿到接收来的数据
data=str(payload)[2:-1]
print(“阿里云上传回的数值是:”,data)
dataDict=json.loads(data)
print(“阿里云上传回的数值是:”,type(dataDict)) #切片左闭右开 取头不取尾
#print(dataDict[“jiang”])
#多层解析
#{“temp”:{“value”:62}}
print(dataDict[“temp”][“value”]) #解析多层数据
pass
#终止订阅云端数据
def on_unsubscribe_topic(mid, userdata):
print(“on_unsubscribe_topic mid:%d” % mid)
pass
#发布消息的结果,判断是否成功调用发布函数
def on_publish_topic(mid, userdata):
print(“on_publish_topic mid:%d” % mid)
#设置连接参数,方法为“一机一密”型
lk = linkkit.LinkKit(
host_name=“cn-shanghai”,#填自己的host_name
product_key=ProductKey,#填自己的product_key
device_name=DeviceName,#填自己的device_name
device_secret=DeviceSecret)#填自己的device_secret
#注册接收到云端数据的方法
lk.on_connect = on_connect
#注册取消接收到云端数据的方法
lk.on_disconnect = on_disconnect
#注册云端订阅的方法
lk.on_subscribe_topic = on_subscribe_topic
#注册当接受到云端发送的数据的时候的方法
lk.on_topic_message = on_topic_message
#注册向云端发布数据的时候顺便所调用的方法
lk.on_publish_topic = on_publish_topic
#注册取消云端订阅的方法
lk.on_unsubscribe_topic = on_unsubscribe_topic
#连接阿里云的函数(异步调用)
lk.connect_async()
time.sleep(2)
#订阅主题
rc, mid = lk.subscribe_topic(lk.to_full_topic(“user/get”))
#发布主题
while True:
data={
“RoomTemp”:28
}
rc, mid = lk.publish_topic(lk.to_full_topic(“/sys/a1Q6aDL1iKa/demo/thing/event/property/post”),str(data))
time.sleep(2)
pass
上文中加粗的部分,个人认为有问题
(1) to_full_topic将关联的productname和devicename与括号中的参数结合生成推送的字符串;
(2)data中除了实际属性值,还需要加入 id, method等参数。
经过调试,将文中加粗的部分改为下面的内容,调试成功
data={
“id”:“789”,
“version”:“1.0”,
“params”:{“RoomTemp”:30},
“method”:“thing.event.property.post”
}
rc,mid=lk.publish_topic(“/sys/a1Q6aDL1iKa/demo/thing/event/property/post”,str(data))
time.sleep(2)
pass
经过调整之后,云端可以将数据刷新。
另附一种将变化的数据上传到阿里云端的示例,
将代码中的温度参数改为可变的参数,然后每次发送之前,改变该参数的值。
temperature=30
while True:
temperature=temperature+1
if(temperature>40):temperature=30
data={"id":"789","version":"1.0","params":{"RoomTemp":temperature},"method":"thing.event.property.post"
}rc,mid=lk.publish_topic("/sys/a1Q6aDL1iKa/demo/thing/event/property/post",str(data))time.sleep(2)
pass
使用Python连接阿里云物联网相关推荐
- 利用PYTHON连接阿里云物联网平台
语言:python 3.7 环境:windows 10 实例:公共实例(免费) 阿里云的官方文档只有C语言和Linux环境,因此自我探索出利用PYTHON连接阿里云物联网平台的方法和步骤. 概述 - ...
- Python3树莓派连接阿里云物联网设备发送接收数据
Python3连接阿里云物联网设备发送接收数据(树莓派) 阿里云物联网IOT 代码部分 库文件 Windows下安装环境 树莓派安装环境 可能遇到的错误 代码 效果展示 阿里云物联网IOT 首先,准备 ...
- Python对阿里云物联网MQTT设备接入端开发
文章目录 前言 一.快速搭建Python对阿里云物联网MQTT设备接入端代码实现 1. mqtt子应用下view.py 主文件 2. wsgi.py 二.具体使用介绍 1. 安装包 2. 设备认证,一 ...
- python连接阿里云odps
怎么下载他的库这个就自行百度了,配置完毕之后就用以下代码即可用python连接阿里云odps的数据库了. from odps import ODPS o = ODPS('嘿嘿嘿', #这个地方是阿里云 ...
- java连接阿里云物联网(服务器端)
java连接阿里云物联网(服务器端) 创建服务端订阅(如果没有创建的话,服务器接收不到信息) 这个是默认的消费组,也可以自新定义一个然后修改后面的CONSUMER_GROUP_ID字段为新定义的 导包 ...
- Paho Java Client 连接阿里云物联网平台
Paho Java Client 连接阿里云物联网平台 进入阿里云物联网平台->点击产品->新建 点击设备->添加设备 查看设备证书,复制记录,后面使用 阿里云TCP通信 一机一密. ...
- 使用arduino D1 wifi模块(WeMos D1)连接阿里云物联网平台并成功实现APP点亮板载LED(九)---制作APP
前几篇文章讲解了如何在阿里云控制台上给设备登记"身份证",如何用MQTT.fx客户端模拟一个设备连接阿里云物联网平台,分析了arduino编程环境如何配置依赖库,在arduino ...
- 手把手教你用Arduino接入阿里云物联网平台,ESP8266连接阿里云物联网平台必看教程...
使用Ardui no 的方式快速连接阿里云物联网平台. 文中提到的 AliyunIoTSDK 这个 Arduino 库,可以在 Arduino 库商店里搜索到(搜索 AliyunIoTSDK) Ali ...
- ESP-MQTT-AT指令连接阿里云物联网平台
文章目录 文章背景 关键的关键词 本章使用 本章约定 所需资源 技术正文 一:连接方式 二:步骤(简介 3.ESP模块+stm32单片机) 1.创建设备复制三元素组 2.信息生成 3.使用串口工具和云 ...
最新文章
- 从零开始玩转logback
- AOP概述及实现原理
- mxm智能教育机器人无法智能对话_零代码使用腾讯TBP打造智能对话机器人
- python将输入值转化为元组_Python实现将元组中的元素作为参数传入函数的操作
- 零点是结束,也是开始。
- postgres数据库授权失败
- 如何下载百度文库文章
- idea-svn文件名字浅蓝色(蓝绿色)含义
- 概率论3——古典概型与二项分布
- Adobe是什么软件?
- 【Android studio】使用雷电模拟器详细过程(或其他)(转)
- 线性规划——对偶问题、强弱对偶定理、KKT条件
- linux 的ss命令,Linux中的ss命令的详细解释
- 从零开始成为一名合格的数据分析师:为什么必须学统计学?
- 码元速率估计-速率信号法
- 连续空间和离散空间的距离基础
- java字符串和字符数组相互转化的方法
- 实现DQN算法玩CartPole
- BUUCTF--[HITCON 2016]Leaking
- 路由器重温——接口配置与管理2