300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > mqtt实战-Python接入阿里云物联网平台实现订阅/发布

mqtt实战-Python接入阿里云物联网平台实现订阅/发布

时间:2021-12-04 04:18:59

相关推荐

mqtt实战-Python接入阿里云物联网平台实现订阅/发布

1.安装阿里云物联网平台提供的python sdk 第三方库

pip install aliyun-iot-linkkit

2.阿里云物联网平台创建设备

(这里就不多说了)

3.python代码

from linkkit import linkkitimport timeimport json#连接阿里云ProductKey="a1Q6aDL1iKa" #你的产品keyDeviceName="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):#订阅topicprint("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_nameproduct_key=ProductKey,#填自己的product_keydevice_name=DeviceName,#填自己的device_namedevice_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)在阿里云物联网平台 日志服务 中即可看到上报的信息啦

(2)接受阿里云发送来的信息

找到设备,发送消息

pycharm 控制台打印

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。