aliyunIoT — 阿里云物联网平台

阿里云物联网平台提供安全可靠的设备连接通信能力,支持设备数据采集上云,规则引擎流转数据和云端数据下发设备端。此外,也提供方便快捷的设备管理能力,支持物模型定义,数据结构化存储,和远程调试、监控、运维。 基于iot模块可以简单快速的使用阿里云物联网平台能力。

iot模块的主要实现是一个Device 类,通过它的构造函数获取device实例,就可以轻松设置相关回调函数和调用相关方法。阿里云物联网平台中涉及三个基本概念如下:

  • 属性(prop)

    云端/设备端数据互通的通道,云端通过改变prop值,反馈到设备端,设备端修改prop值,保存到云端

  • 事件(event)

    设备端到云端的事件通知

  • 服务(service)

    云端到设备端的服务调用

详细使用示例请参考主页”参考案例”中的云端连接/控制部分

class iot.Device(data)[源代码]

Bases: object

初始化物联网平台Device类,获取device实例

参数

data(dict)

data字典的key信息如下

属性

类型

是否必填

说明

deviceName

字符串

Y

物联网平台上注册的设备名称

deviceSecret

字符串

Y

物联网平台上注册的deviceSecret

productKey

字符串

Y

物联网平台上注册的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) 

on(event, callback)[源代码]

通过这个函数,可以设置物联网平台各种事件的处理函数,函数接收两个参数分别是事件名称和事件处理函数

参数
  • event(str))

    需要注册的事件名称,类型是字符串

    事件名称

    事件说明

    connect

    当iot设备连接到物联网平台的时候触发’connect’ 事件

    disconnect

    当连接断开时,触发’disconnect’事件

    props

    当iot云端下发属性设置时,触发’props’事件

    service

    当iot云端调用设备service时,触发’service’事件

    error

    当设备跟iot平台通信过程中遇到错误时,触发’error’事件

  • callback – 回调函数

使用示例:

def on_connect():
    print('linkkit is connected')

device.on('connect',on_connect)

def on_disconnect():
    print('linkkit is disconnected')

device.on('disconnect',on_disconnect)

def on_props(request):
    print('clound req data is %s' %(request))

device.on('props',on_props)


def on_service(id,request):
    print('clound req id  is %d , req is %s' %(id,request))

device.on('service',on_service)


def on_error(err):
    print('err msg is %s '%(err))

device.on('error',on_error)
connect()[源代码]

连接物联网平台连接函数,该函数是异步调用

postProps(data)[源代码]

上报设备属性

参数

data(dict)

字典的key信息如下

属性

类型

是否必填

说明

params

字典

Y

属性的值对应的是物联网平台的json数据

使用示例:

data = {
    'params': {
    'test_prop' : 100
    }
}
device.postProps(data)
postEvent(data)[源代码]

上报设备的事件

参数

data(dict)

字典的key信息如下

属性

类型

是否必填

说明

params

字典

Y

属性的值对应的是物联网平台的json数据

id

字符串

Y

事件名称,请参考物模型上定义的事件id

使用示例:

data = {
    'id': 'EventTest' ,
    'params': {
    'test_event' : 100
    }
}
device.postEvent(data)
close()[源代码]

关闭物联网设备节点,断开连接

do_yield(time)[源代码]

激活物联网平台接收云端消息,并设置接收超时时间为:timeout, 单位是 ms.为了保证云端消息被接收到,执行了异步命令以后,需要循环执行这个方法,直到拿云端的返回