一、实验背景
实现用户的在线浏览监测数据消息,能够迅速准确地将城市信息实施传输和提现,便于市民出行选择,便于相关部门处理突发事件,进而为城市中的人创造更美好的生活,促进城市的和谐、可持续成长。
二、实验目标
1、基于真实设备,搭建软硬件环境,接入 OneNET 平台并实现设备属性上报;
2、通过 OneNET 平台的“设备调试”实现设备属性下发;
3、通过 OneNET 平台的“API 调试”实现设备属性下发;
4、直接基于 API 方式实现设备属性下发;
三、实验步骤
3.1真实设备接入 OneNET 平台实现属性上报
3.1.1终端设备硬件搭建
硬件连接
3.1.2网络接入配置参数
热点名称及密码
#if(PHONE_AP_MODE == 1)
UsartPrintf(USART_DEBUG, "Tips: AT+CWJAP\r\n");
if(!NET_DEVICE_SendCmd("AT+CWJAP=\"L\",\"12345678\"\r\n", "GOT IP",400))
产品、设备相关信息
ONETNET_INFO onenet_info = {"", "efvTrEMr+DN/ytSZ5aLUwYYgASQ7HO5QnVfTGRw8MwI=", "",
"A4Cv5Be6lD", "", "",
"218.201.45.7", "1883", 0,
0, 0, 1, 0, 0, 0, 0, 0, 0};
char devicename[32]="mqtt_Controller";
设备数据变量
DATA_STREAM data_stream[] = {
// {"temprature", &sht20_info.tempreture, TYPE_FLOAT, 1},
{"$OneNET_LBS", &data_lbs, TYPE_LBS, 0},
{"$OneNET_LBS_WIFI", &data_lbs_wifi, TYPE_LBS_WIFI, 0},
{"beep",&beep_info.beep_status[0],TYPE_BOOL,1},
{"distance",&Sonic_Info.sonic_distance,TYPE_FLOAT,1},
};
具体函数代码
CMD_CALLBACK_INFO cmd_callback_info[] = {
{"beep",CALLBACK_Beep},
{"int_test", CALLBACK_Test},
};
函数的声明
#define CB_NULL (void *)0
void CALLBACK_RedLed(int value);
void CALLBACK_GreenLed(int value);
void CALLBACK_BlueLed(int value);
void CALLBACK_Test(int value);
void CALLBACK_Beep(int value);
命令执行回调函数
void CALLBACK_Beep(int value)
{
switch(value)
{
case 0: BEEP_Ctl(2, LED_OFF); break;
case 1: BEEP_Ctl(2, LED_ON); break;
default: break;
}
}
3.1.3编译工程,连接下载器烧写程序到设备中
程序编译运行成功
3.1.4平台状态
设备在线历史记录
设备上报数据信息
3.2下发属性在终端设备上执行生效(设备调试)
3.3下发属性在终端设备上执行生效(API 调试)
3.4 基于 API 方式实现设备属性下发
下发的属性值为true返回值
更改下发的属性值为 false
3.5基于 OneNET 云平台的场景联动
创建场景联动规则
编辑场景联动【距离探测告警】规则
编辑场景联动【距离安全取消告警】规则
【距离安全取消告警】联动日志
四、总结
通过此次项目的实施,能够实现对距离和蜂鸣器的实时检测并控制蜂鸣器自动开关。虽然在这过程中由于不明原因蜂鸣器一直返回无效数据,最后发现标识符beep写出deep,但是在老师的帮助下,最终完成了整个实验。同时,在这次项目中对onenet平台的认识更加 深入。