利用Python快速体验阿里云物联网

阿里云物联网平台文档

https://www.alibabacloud.com/help/zh/doc-detail/73705.htm?spm=a2c63.p38356.b99.13.16811fe34FjKlv

阿里物联网平台中定义产品和设备

最近学习TencentOS tiny,顺便体验下物联网平台(百度,阿里,腾讯,华为云都有支持),体验了下百度和阿里,在此对阿里物联网平台做下记录,刚好利用此机会再次了解下MQTT相关内容,本文使用Python语言模拟设备进行数据上报

创建成功效果截图

在这里插入图片描述

Python模拟设备上报

开发环境:Windows 7+ VScode+ python3.7

简单体验,模拟上传温度和湿度
安装阿里SDK

pip install aliyun-iot-linkkit

代码如下:

import configparser , time , hmac , hashlib , logging , os , sys , random
from linkkit import linkkit

lk = linkkit.LinkKit(
    host_name="cn-shanghai",
    product_key="xxxx",
    device_name="Demo",
    device_secret="xxxxx")

def on_device_dynamic_register(rc, value, userdata):
    if rc == 0:
        print("dynamic register device success, rc:%d, value:%s" % (rc, value))
    else:
        print("dynamic register device fail,rc:%d, value:%s" % (rc, value))

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_publish_topic(mid, userdata):
    print("on_publish_topic mid:%d" % mid)


def on_thing_enable(self, userdata):
    print("on_thing_enable")


def on_thing_disable(self, userdata):
    print("on_thing_disable")

def on_thing_prop_post(self, request_id, code, data, message,userdata):
    print("on_thing_prop_post request id:%s, code:%d, data:%s message:%s" %
        (request_id, code, str(data), message))

if __name__ == '__main__':
    print("hello")

    # config_mqtt(self, port=1883, protocol="MQTTv311", transport="TCP",
    #         secure="TLS", keep_alive=60, clean_session=True,
    #         max_inflight_message=20, max_queued_message=0,
    #         auto_reconnect_min_sec=1,
    #         auto_reconnect_max_sec=60,
    #         cadata=None):
    lk.on_device_dynamic_register = on_device_dynamic_register
    lk.on_connect = on_connect
    lk.on_disconnect = on_disconnect
    lk.on_publish_topic = on_publish_topic
    lk.on_thing_enable = on_thing_enable
    lk.on_thing_disable = on_thing_disable
    lk.on_thing_prop_post = on_thing_prop_post

    lk.thing_setup("D:\IOT\\aliiot\model.json")
    lk.connect_async()
    lk.start_worker_loop()
    time.sleep(1)  # 延时
    prop_data = {
        "temperature": 88,
        "humidity": 20
    }
    
    rc, request_id = lk.thing_post_property(prop_data)

上传成功效果截图

温度和湿度已经成功上报至阿里云服务器
在这里插入图片描述

阿里物联网平台的MQTT协议还有各种订阅功能,都可以使用阿里提供的API,这篇文章主要是基础体验,大家可行测试体验

参考链接:

https://blog.csdn.net/wang_hugh/article/details/89308123

更多推荐