目录
在ThingsBoard中注册Mokosmart LoRaWAN设备和网关
本指南说明如何在ThingsBoard中注册Mokosmart LoRaWAN终端设备和网关。本文档适用于所有Mokosmart LoRaWAN终端产品。
添加网关
在TTN上添加网关
步骤1:给网关上电,连接网关Wi-Fi,打开Web管理界面,在Web界面的”功能-服务器访问”页面获取网关ID。

步骤2:登录TTN账户,选择对应集群(此处以US915频段为例,即北美1区)。

步骤3:在首页进入网关控制台。

步骤4:注册新网关:
- 填入步骤1中获取的网关ID
- 在TTN中自定义网关ID
- 选择频段计划United States 902-928 MHz
- 点击”注册网关”完成网关注册

步骤5:在Web管理界面的”功能-服务器访问”页面配置网关参数。
- 在网关通用设置页面获取网关服务器地址
- 在MKGW2 Web管理界面填入服务器地址,端口为1700
- 选择与计划一致的频段(此处选915),信道须与TTN中的配置一致;步骤4中若选择了FSB2,此处选择信道US915_CH08-15
步骤6:检查网关状态:
- 在网关Web管理界面查看状态:绿色表示网关已成功连接服务器;红色表示未连接服务器
- 在TTN平台查看状态
在TTN上创建应用
步骤1:打开控制台,点击”创建应用”。

步骤2:填写应用必填项,然后点击「创建应用」按钮。

步骤3:进入「Integrations」-> 在左侧菜单打开「MQTT」页面,然后点击「Generate new API Key」按钮。

步骤4:复制并保存密码(API Key)(离开页面后将无法再次查看)。

在ThingsBoard中创建集成
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
| var数据 = decodeToJson(载荷);
var deviceName = 数据.end_device_ids.device_id;
var deviceType = 数据.end_device_ids.application_ids.application_id;
// 若需对上行数据做解析,可在此函数中添加代码。
// input: bytes
// expected output:
// {
//"属性": {"attributeKey":"attributeValue"},
//"遥测": {"telemetryKey":"telemetryValue"}
// }
// 默认功能:将字节转为十六进制字符串,遥测键为 "HEX_bytes"
function decodeFrmPayload(input) {
var output = { 属性:{}, 遥测: {} };
// --- Decoding code --- //
output.遥测.HEX_bytes = bytesToHex(input);
// --- Decoding code --- //
return output;
}
// --- 属性与遥测对象 ---
var遥测 = {};
var属性 = {};
// --- 属性与遥测对象 ---
// --- Timestamp parsing
var incomingDateString = 数据.uplink_message.received_at;
var dateString = incomingDateString.substring(0, incomingDateString.lastIndexOf(".")+3) +"Z";
var timestamp = new Date(dateString).getTime();
// --- Timestamp parsing
// 可手动向属性或遥测添加部分键
属性.f_port = 数据.uplink_message.f_port;
属性.设置 = 数据.uplink_message.设置;
// 将 correlation ids 保存为单一对象,故从属性解析中排除并在此手动添加
属性.correlation_ids = 数据.correlation_ids;
// 可从结果中排除部分键
var excludeFromAttributesList = ["device_id","application_id","uplink_message","correlation_ids"];
var excludeFromTelemetryList = ["uplink_token","gateway_id","设置"];
// 消息解析
// 为避免解码对象中出现路径,将 pathInKey 参数传为 false。
// 注意:pathInKey 可能导致已存在字段被最后一次找到的值覆盖,例如 uplink_message 的 receive_at 会写入根节点的 receive_at。
var telemetryData = toFlatMap(数据.uplink_message, excludeFromTelemetryList, false);
var attributesData = toFlatMap(数据, excludeFromAttributesList, false);
// 将上行字节传入 decodeFrmPayload 函数以得到自定义解码结果
var customDecoding = {};
if (数据.uplink_message.get("frm_payload") != null) {
customDecoding = decodeFrmPayload(base64ToBytes(数据.uplink_message.frm_payload));
}
// 将数据汇总到结果
if (customDecoding.?遥测.size() > 0) {
遥测.putAll(customDecoding.遥测);
}
if (customDecoding.?属性.size() > 0) {
属性.putAll(customDecoding.属性);
}
遥测.putAll(telemetryData);
属性.putAll(attributesData);
var result = {
deviceName: deviceName,
deviceType: deviceType,
遥测: {
ts: timestamp,
values: 遥测
},
属性: 属性
};
return result;
|



添加设备
步骤1:
- 进入应用控制台的「终端设备」页面;
- 点击「注册终端设备」。

步骤2:
- 选择手动录入终端设备;
- 选择频段计划(须与网关频段计划完全一致);
- 选择 LoRaWAN 版本 v1.0.3。

步骤3:填写 JoinEUI,MOKO 设备默认 JoinEUI 为 70 B3 D5 7E D0 02 6B 87。
步骤4:确认 JoinEUI 后,填写 DevEUI 和 AppKEY。MOKO 设备的 DevEUI 见包装标签,AppKEY 默认为 2B 7E 15 16 28 AE D2 A6 AB F7 15 88 09 CF 4F 3C。也可通过「“MKLora”」APP 连接设备,在 APP 中查看 DevEUI 和 AppKEY。

步骤5:点击「注册终端设备」完成注册。
步骤6:在 TTN 上检查设备状态。

也可查看实时数据:若有载荷上传,即表示设备已连接服务器。

步骤7:进入载荷格式化器,从 MOKO GitHub 链接 获取对应解码器,复制并粘贴后保存。

步骤8:在「Entities」中进入「设备」页面,此时可见:
- 在 TTN 注册的设备会同步到 ThingsBoard,在「最新遥测」中可看到设备上报的数据更新。

添加仪表板
ThingsBoard中的仪表板允许用户可视化并监控从物联网设备收集的数据。让我们创建一个仪表板并添加两个部件:
- 第一个部件显示设备电量。
- 第二个部件在地图上显示设备位置。
添加仪表板
添加电量部件
添加地图部件
点击屏幕顶部的「+ 添加部件」按钮以添加另一个部件;
找到「地图」部件包并点击;
选择「Google 地图」部件;
将出现「添加部件」窗口。数据源类型选「设备」,数据源指定为设备「lw006test」,添加时序数据键「latitude」和「longitude」,点击「添加」;
保存仪表板请点击右上角「保存」按钮;
已添加用于在地图上显示设备位置的部件。
下一步
-
快速入门指南 - 快速了解ThingsBoard主要功能,约15-30分钟完成。
-
连接设备 - 根据连接技术或方案学习如何连接设备。
-
数据可视化 - 配置ThingsBoard复杂仪表盘的说明。
-
数据处理与操作 - 学习使用ThingsBoard规则引擎。
-
IoT数据分析 - 学习使用规则引擎执行基本分析任务。
-
高级功能 - 了解ThingsBoard高级功能。
-
贡献与开发 - 了解ThingsBoard贡献与开发。