iot
— 对接阿里云物联网平台¶
阿里云物联网平台提供安全可靠的设备连接通信能力,支持设备数据采集上云,规则引擎流转数据和云端数据下发设备端。此外,也提供方便快捷的设备管理能力,支持物模型定义,数据结构化存储,和远程调试、监控、运维。 基于iot模块可以简单快速的使用阿里云物联网平台能力。
iot模块的主要实现是一个Device 类,通过它的构造函数获取device实例,就可以轻松设置相关回调函数和调用相关方法。阿里云物联网平台中涉及三个基本概念如下:
- 属性(prop)
云端/设备端数据互通的通道,云端通过改变prop值,反馈到设备端,设备端修改prop值,保存到云端
- 事件(event)
设备端到云端的事件通知
- 服务(service)
云端到设备端的服务调用
详细使用示例请参考主页”参考案例”中的云端连接/控制部分
-
class
iot.
Device
(data)[源代码]¶ 基类:
object
初始化物联网平台Device类,获取device实例
入参
data类型是字典,字典的key信息如下
deviceName : 物联网平台上注册的设备名称,必选
deviceSecret : 物联网平台上注册的设备秘钥,必选
productKey : 物联网平台上注册的productKey,必选
productSecret : 物联网平台上注册的productSecret,可选
region : 默认值是cn-shanghai,可选
使用示例:
import iot productKey = "a1uTFk4xjko" productSecret = "xxxxxxx" deviceName = "mpy_001" deviceSecret = "xxxxxxxxxxxxxxx" key_info = { 'region' : 'cn-shanghai' , 'productKey': productKey , 'deviceName': deviceName , 'deviceSecret': deviceSecret , 'productSecret': productSecret } device = iot.Device(key_info)
-
do_yield
(time)[源代码]¶ 激活物联网平台接收云端消息,并设置接收超时时间为:timeout, 单位是 ms.为了保证云端消息被接收到,执行了异步命令以后,需要循环执行这个方法,直到拿云端的返回
-
on
(event, callback)[源代码]¶ 通过这个函数,可以设置物联网平台各种事件的处理函数,函数接收两个参数分别是事件名称和事件处理函数
事件: ‘connect’
当iot设备连接到物联网平台的时候触发connect 事件
事件处理函数示例:
def on_connect(): print('linkkit is connected')
事件: ‘disconnect’
当连接断开时,触发’disconnect’事件
事件处理函数示例:
def on_disconnect(): print('linkkit is disconnected')
事件: ‘props’
当iot云端下发属性设置时,触发props事件
事件处理函数示例:
def on_props(request): print('clound req data is %s' %(request))
事件: ‘service’
当iot云端调用设备service时,触发service事件
事件处理函数示例:
def on_service(id,request): print('clound req id is %d , req is %s' %(id,request))
事件: ‘error’
当设备跟iot平台通信过程中遇到错误时,触发error事件
事件处理函数示例:
def on_error(err): print('err msg is %s '%(err))