阿里云物联网平台Python SDK(三)-接收云端信息

阿里云物联网平台Python SDK(一)-新建产品设备

阿里云物联网平台Python SDK(二)-发送消息到云端

阿里云物联网平台Python SDK(三)-接收云端信息

阿里云物联网平台Python SDK(四)-云产品流转

连接

把PRODUCT_KEY,DEVICE_NAME,DEVICE_SECRET换成你自己的(发送那边说过了这里不赘述)

from linkkit import linkkit
import time

PRODUCT_KEY = "k1ikm***X2w"
DEVICE_NAME = "testdevice0420_3"
DEVICE_SECRET = "5fd1c11****b610ae88b5aaca3043698"  

lk = linkkit.LinkKit(
    host_name="cn-shanghai",  # 根据实际地域修改
    product_key=PRODUCT_KEY,
    device_name=DEVICE_NAME,
    device_secret=DEVICE_SECRET
)

lk.connect_async()# 这句是当设备连接成功后,如果设备由于网络等原因断开连接,设备会根据配置的保活等参数,自动发起重新连接的请求
time.sleep(3)  # 等待连接

订阅

这里的接收逻辑是订阅对应的topic,topic有了消息就能收到

去产品里定义一个topic类用于测试,要有订阅权限

接收

on_topic_message是接收回调函数,收到消息就会执行李米娜的语句

def on_topic_message(topic, payload, qos, userdata):# 接收回调函数,收到消息自动执行
    print(f"收到消息:Topic: {topic}, Payload: {str(payload)}, QoS: {qos}")
lk.on_topic_message = on_topic_message

这句放在结尾保持设备的连接状态 

while(1): #放在代码结尾,保持连接状态    
time.sleep(1)

测试接收

运行代码,可以在设备里找到订阅了的topic

点击这个发布消息,成功接收

完整代码

from linkkit import linkkit
import time
PRODUCT_KEY = "k1ikm***2w"
DEVICE_NAME = "testdevice**0_3"
DEVICE_SECRET = "5fd1c1149d0b610ae88b5aaca3043698"  # 请替换真实DeviceSecret

lk = linkkit.LinkKit(
    host_name="cn-shanghai",  # 根据实际地域修改
    product_key=PRODUCT_KEY,
    device_name=DEVICE_NAME,
    device_secret=DEVICE_SECRET
)

lk.connect_async()# 这句是当设备连接成功后,如果设备由于网络等原因断开连接,设备会根据配置的保活等参数,自动发起重新连接的请求
time.sleep(3)  # 等待连接

topic = "/k1ikmb0TX2w/testdevice0420_3/user/test250420"
lk.subscribe_topic(topic,qos=1)  # 订阅topic,qos为消息质量等级,1为最多一次,0为最少一次,3为确保送达
def on_subscribe_topic(mid, granted_qos, userdata):
    print("on_subscribe_topic mid:%d, granted_qos:%s" %
          (mid, str(','.join('%s' % it for it in granted_qos))))
    pass
lk.on_subscribe_topic = on_subscribe_topic

def on_topic_message(topic, payload, qos, userdata):
    print(f"收到消息:Topic: {topic}, Payload: {str(payload)}, QoS: {qos}")
lk.on_topic_message = on_topic_message

while(1):
    time.sleep(1)

当然我们真正要使用肯定不是自发自收。可以通过云产品流转实现一个设备发另一个设备收,具体看第四节。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值