一. 创建产品设备
1.1实验步骤
一.创建基于 MQTT 协议的产品!
二.按下列创建
三.设置物模型(按照以下设计)
四.创建设备
image.png
image.png
二.模拟设备接入
2.1实验步骤
一、通过模拟工具调试设备接入;
记录设备密钥和产品ID
打开Token!按照以下要求填入
将生成的密钥保存
打开MQTT.fx工具模拟器(点击小齿轮)
按照图中对应填入点击ok
上线成功
二、通过模拟设备,实现属性上报;
按照 $sys/产品 ID/设备名称/thing/property/post/reply 填入
编辑框中代码(要修改time数值要现在的而且要精确到毫秒)![]{
"id": "123",
"version": "1.0",
"params": {
"distance": {
"value": 28.88,
"time": 1717227764111
}
}
}
确认无误再点击Publish
三、OneNET 平台下发属性值(命令)到模拟设备;
在此处可以直接修改数据
三.系统终端设备搭建
3.1实验步骤
1、基于真实设备,搭建软硬件环境,接入 OneNET 平台并实现设备属性上报;
实验器材(wifi模块,蜂鸣器,超声波传感器,核心模块)
打开代码修改
1.工程相对路径\device\src\net_device.c 约 677 行处,将{wifi}、{password}替换为设备所
在 Wifi 网络用户名和密码(将括号一起替换,下同)
#if(PHONE_AP_MODE == 1)
UsartPrintf(USART_DEBUG, "Tips: AT+CWJAP\r\n");
if(!NET_DEVICE_SendCmd("AT+CWJAP=\"(热点名字)\",\"(热点密码)\"\r\n", "GOT IP", 400))
#endif
2.工程相对路径\onenet\src\onenet.c 约 56 行处,依次修改{设备密钥}、{产品 id}、{设备名称}为之前步骤中在 OneNET 平台 中所创建的产品、设备相关信息,本例中设备名称就是之前步骤中创建的“Controller”设备,并对应填入其设备密钥;
ONETNET_INFO onenet_info = {"", "(设备密钥)", "",
"(产品ID)", "", "",
"183.230.40.96", "1883", 0,
0, 0, 1, 0, 0, 0, 0, 0, 0};
char devicename[32]="(产品名称)";
//2、更改此处产品id,设备名称,设备key,备注:设备key可以用产品key替换,权限更高。
将代码拷入,上线
2、通过OneNET 平台的“设备调试”实现设备属性下发;
3、通过OneNET 平台的“API 调试”实现设备属性下发;
在params中填写
{
"beep": true
}
蜂鸣器就会执行
填写
{
"beep": false
}
蜂鸣器就会关闭
4、直接基于API 方式实现设备属性下发;
利用postman
{
"product_id": "***********",//产品ID
"device_name": "Controller",
"params": {
"beep": true
}
}
//打开的代码
{
"product_id": "***********",
"device_name": "Controller",
"params": {
"beep": false
}
}
//关闭的代码
四.可视化实现
4.1实验步骤
1、学会OneNET 平台数据可视化编辑器的使用;
点击立即试用
创建项目
选择模板
2、能够进行可视化数据源的配置;
创建距离的数据源模板
根据如下选择
拖出一个曲线图,选中配置数据源选择,点击管理数据源(不要选择数据过滤器)
选择管理距离的数据源模板
点击数据处理结果效果如下
创建wifi数据源模板
选中地图,数据源模板选择wifi定位
数据处理效果
3、对智慧小区安全防护系统进行可视化展现。
效果图如下
五.使用CoAP接入OneNET平台(拓展)
1.准备Java运行环境(使用工具包中提供的 JDK1.8 安装程序,进行默认安装即可。)
2.以管理员身份打开 cmd 窗口,新增下面两个环境变量,其中的路径名称根据实际路径进行修改:
setx /m JAVA_HOME "C:\Program Files\Java\jdk1.8.0_101"
setx /m CLASSPATH ".;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;"
setx /m PATH "%PATH%;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;"
3.生成设备接入Token
4.启动OneNET-CoAP-Shell(这个是在C盘为基础)
4.1填写
java -jar coap-shell-1.1.2-SNAPSHOT.jar
之后得到
_____ ___ ___ ______ ____
/ ___/__ / _ | / _ \ / __/ / ___ / / /
/ /__/ _ \/ __ |/ ___/ _\ \/ _ \/ -_) / /
\___/\___/_/ |_/_/ /___/_//_/\__/_/_/
CoAP Shell (v1.1.2-SNAPSHOT)
For assistance hit TAB or type "help".
server-unknown:>
第一步:连接平台;填写
connect coap://183.230.102.122:5683
得到
server-unknown:>connect coap://183.230.102.122:5683
available
第二步:接入平台,完成登录(将括号删除)
coap://183.230.102.116:5683:>post /$sys/(pid)/(device-name)/login --payload '{"lt":600,"st":"(token密钥)}' --format 'application/json'
得到,将Payload的代码复制保存
----------------------------- Response -----------------------------
POST coap://183.230.102.116:5683/$sys/PDQ1GhgWlM/COAP-DEVICE/login
MID: 17403, Type: ACK, Token: D00FB657D2200BDE, RTT: 29ms
Options: {"Location-Path":"$sys"}
Status : 201-Created, Payload: 8B
............................. Payload ..............................
7D747C9829241C3F
--------------------------------------------------------------------
第三步:上报设备属性数据
coap://183.230.102.116:5683:>post /$sys/(pid)/(device-name)/thing/property/post --payload '{"id": "53725","version": "1.0","params": {"Brand": {"value": "(上报的数据)"}}}' --format 'application/json' --accept 'application/json' --token '(Payload代码)'
上报成功
----------------------------- Response -----------------------------
POST coap://183.230.102.116:5683/$sys/PDQ1GhgWlM/COAP-DEVICE/thing/property/post
MID: 17404, Type: ACK, Token: 7D747C9829241C3F, RTT: 413ms
Options: {}
Status : 205-Reset Content, Payload: 0B
............................. Payload ..............................
--------------------------------------------------------------------
第四步:上报设备事件数据
coap://183.230.102.116:5683:>post /$sys/(pid)/(device-name)/thing/event/post --payload '{"id":"1637633595439","version":"1.0","params":{"CarReverseSignal":{"value":{"ReverseStatus":true,"ReverseTime":1637633573000,"gnssHead":99.9}}}}' --format 'application/json' --accept 'application/json' --token '(paylad代码)'
上报成功效果
----------------------------- Response -----------------------------
POST coap://183.230.102.116:5683/$sys/PDQ1GhgWlM/COAP-DEVICE/logout
MID: 17406, Type: ACK, Token: 2C5678B480DA17CB, RTT: 52ms
Options: {"Content-Format":"text/plain"}
Status : 202-Accepted, Payload: 0B
............................. Payload ..............................
--------------------------------------------------------------------
第五步:设备离线
coap://183.230.102.116:5683:>post /$sys/(pid)/(device-name)/logout --payload '{"st":"(Token密钥)}' --format 'application/json'