Skip to main content

网关接入

IoTGateway开源开放跨平台工业物联网网关,通过可视化配置,南向的连接到你的任何设备和系统(如PLC、扫码枪、上位机、OPC Server等)。

为让使用者快速掌握北向对接各种物联网平台的能力,本文以接入ThingsPanel为例进行扩展实操。

0. 效果展示

1. ThingsPanel 介绍

ThingsPanel是基于Go语言的优秀的开源物联网平台。

2. ThingsPanel 安装

docker-compose up -d
  • 访问8080端口,使用租户管理员登录

    用户名tenant@tenant.cn

    密码123456

3. 设备接入文档与规范

http://thingspanel.io/zh-Hans/docs/device-connect/gateway

https://docs.qq.com/doc/DZXlnb25scnZRc1dK

4. 创建网关设备配置模版

5. 创建子设备配置模板

6. 创建网关设备

设备连接tab查看并记录MQTT UsernameMQTT ClientID

7. 创建子设备

8. 网关关联子设备

关联后,记录子设备地址

9. 添加ThingsPanel平台类型

iotgateway\IoTGateway.Model\SystemConfig.cs\IoTPlatformType

[Display(Name = "ThingsPanel")]
ThingsPanel = 9

10. 添加ThingsPanelHandler

参考其他Handler,添加ThingsPanelHandler

iotgateway\Plugins\Plugin\PlatformHandler\ThingsPanelHandler.cs

public async Task PublishTelemetryAsync(string deviceName, Device device, Dictionary<string, List<PayLoad>> sendModel)
{
foreach (var payload in sendModel[deviceName])
{
if (payload.Values != null)
{
var telemetryData = new Dictionary<string, Dictionary<string, object>>()
{
{
"sub_device_data", new Dictionary<string, object>()
{
{ deviceName, payload.Values }
}
}

};
await MqttClient.EnqueueAsync(new MqttApplicationMessageBuilder().WithTopic($"gateway/telemetry")
.WithPayload(JsonConvert.SerializeObject(telemetryData)).Build());
}
}
}

11. 修改PlatformHandlerFactory

iotgateway\Plugins\Plugin\PlatformHandler\PlatformHandlerFactory.cs\PlatformHandlerFactor

case IoTPlatformType.ThingsPanel:
return new ThingsPanelHandler(mqttClient, logger, onExcRpc);

12. 添加网关侧子设备

修改后,运行iotgateway项目,添加设备,注意设备名使用第8步子设备地址

13. 网关侧设备通讯配置

14. 网关侧设备变量添加

15. 网关侧传输配置

输出平台选择ThingsPanel用户名、ClientId,使用第6步MQTT UsernameMQTT ClientID,密码

16. 数据查看

17. 其他

关如果有其他平台接入需求可留言或加入社区交流