最近在做物联网相关的项目,想着用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连接阿里云物联网相关推荐

  1. 利用PYTHON连接阿里云物联网平台

    语言:python 3.7 环境:windows 10 实例:公共实例(免费) 阿里云的官方文档只有C语言和Linux环境,因此自我探索出利用PYTHON连接阿里云物联网平台的方法和步骤. 概述 - ...

  2. Python3树莓派连接阿里云物联网设备发送接收数据

    Python3连接阿里云物联网设备发送接收数据(树莓派) 阿里云物联网IOT 代码部分 库文件 Windows下安装环境 树莓派安装环境 可能遇到的错误 代码 效果展示 阿里云物联网IOT 首先,准备 ...

  3. Python对阿里云物联网MQTT设备接入端开发

    文章目录 前言 一.快速搭建Python对阿里云物联网MQTT设备接入端代码实现 1. mqtt子应用下view.py 主文件 2. wsgi.py 二.具体使用介绍 1. 安装包 2. 设备认证,一 ...

  4. python连接阿里云odps

    怎么下载他的库这个就自行百度了,配置完毕之后就用以下代码即可用python连接阿里云odps的数据库了. from odps import ODPS o = ODPS('嘿嘿嘿', #这个地方是阿里云 ...

  5. java连接阿里云物联网(服务器端)

    java连接阿里云物联网(服务器端) 创建服务端订阅(如果没有创建的话,服务器接收不到信息) 这个是默认的消费组,也可以自新定义一个然后修改后面的CONSUMER_GROUP_ID字段为新定义的 导包 ...

  6. Paho Java Client 连接阿里云物联网平台

    Paho Java Client 连接阿里云物联网平台 进入阿里云物联网平台->点击产品->新建 点击设备->添加设备 查看设备证书,复制记录,后面使用 阿里云TCP通信 一机一密. ...

  7. 使用arduino D1 wifi模块(WeMos D1)连接阿里云物联网平台并成功实现APP点亮板载LED(九)---制作APP

    前几篇文章讲解了如何在阿里云控制台上给设备登记"身份证",如何用MQTT.fx客户端模拟一个设备连接阿里云物联网平台,分析了arduino编程环境如何配置依赖库,在arduino ...

  8. 手把手教你用Arduino接入阿里云物联网平台,ESP8266连接阿里云物联网平台必看教程...

    使用Ardui no 的方式快速连接阿里云物联网平台. 文中提到的 AliyunIoTSDK 这个 Arduino 库,可以在 Arduino 库商店里搜索到(搜索 AliyunIoTSDK) Ali ...

  9. ESP-MQTT-AT指令连接阿里云物联网平台

    文章目录 文章背景 关键的关键词 本章使用 本章约定 所需资源 技术正文 一:连接方式 二:步骤(简介 3.ESP模块+stm32单片机) 1.创建设备复制三元素组 2.信息生成 3.使用串口工具和云 ...

最新文章

  1. 从零开始玩转logback
  2. AOP概述及实现原理
  3. mxm智能教育机器人无法智能对话_零代码使用腾讯TBP打造智能对话机器人
  4. python将输入值转化为元组_Python实现将元组中的元素作为参数传入函数的操作
  5. 零点是结束,也是开始。
  6. postgres数据库授权失败
  7. 如何下载百度文库文章
  8. idea-svn文件名字浅蓝色(蓝绿色)含义
  9. 概率论3——古典概型与二项分布
  10. Adobe是什么软件?
  11. 【Android studio】使用雷电模拟器详细过程(或其他)(转)
  12. 线性规划——对偶问题、强弱对偶定理、KKT条件
  13. linux 的ss命令,Linux中的ss命令的详细解释
  14. 从零开始成为一名合格的数据分析师:为什么必须学统计学?
  15. 码元速率估计-速率信号法
  16. 连续空间和离散空间的距离基础
  17. java字符串和字符数组相互转化的方法
  18. 实现DQN算法玩CartPole
  19. BUUCTF--[HITCON 2016]Leaking
  20. 路由器重温——接口配置与管理2

热门文章

  1. 学习AlphaGo理论知识-----part two
  2. 3.5mm音频插头的引脚连接关系
  3. 2019年6月1日第十四周UML项目日志
  4. 鸿蒙秘境怎么玩,鸿蒙秘境
  5. 微信小程序之支付密码输入
  6. 通过高德api获取经纬度
  7. MYSQL主从部署(Censo:6)
  8. dos的几种打开方式
  9. 五一假期维修手机感想
  10. Scratch模拟题(二级)_1