Arduino与物联网云端平台:探索物模型的事件

事件,先下个简单的定义就是发生了什么事件

系列文章都是已经完成了基本的库安装和使用为前提

物模型之事件

基本的添加步骤不描述了,设置一个测试用例


事件我已经设定好了,输出参数代表的是在云端得到的输出,需要我们在设备进行输入

arduino事件函数

在arduino中sdk库中两个函数


static void sendEvent(const char *eventId,const char *param);
static void bindEvent(const char * eventId, MQTT_CALLBACK_SIGNATURE);

1.void sendEvent(const char *eventId,const char *param);
将本地发生的事情上报给云端,比如说,突然有人非法闯入这时候就可以将时间上传云端

const char *eventId="testEvent";
const char *param="{\"testvalue\":\"client is ok\"}";
AliyunIoTSDK::sendEvent(eventId,param);

2.static void bindEvent(const char * eventId, MQTT_CALLBACK_SIGNATURE);

云端下发事件时会被调用,但是这个功能怎么使用暂时没有看到(没有看到下发事件的云端api)

内部第二个参数来自pubsubclient库

#if defined(ESP8266) || defined(ESP32)
#include <functional>
#define MQTT_CALLBACK_SIGNATURE std::function<void(char*, uint8_t*, unsigned int)> callback
#else
#define MQTT_CALLBACK_SIGNATURE void (*callback)(char*, uint8_t*, unsigned int)
#endif

阿里云SDK

这里只看到有事件的上报过程

device.postEvent('eventIdentifier1', {
    //key1是事件'eventIdentifier1的参数'
    key1: 'value1'
});
            

这个过程和云端api可以使用node.js进行测试,比较快速

云端API

云端API调用QueryDeviceEventData可以获取所有的事件,也就是上面我们从c/s(客户端和服务端)发送的事件列表

上面的事件和下面的事件相对应

假设我们在一个智慧房间或者相关的系统中,如果出现一些特殊事件,比如说房间着火了(温度传感器),有毒气体上升都可以在服务端获取显示,同时可以预设对应的处理函数去处理事件

物联沃分享整理
物联沃-IOTWORD物联网 » Arduino与物联网云端平台:探索物模型的事件

发表评论