通道服务名:cloud-thingsboard-service
工程名称:fox-edge-server-thingsboard
说明:ThingsBoard 是一个著名的2C类开源物联网平台,用于数据收集、处理、可视化展示以及设备管理。
ThingsBoard 使用行业标准物联网协议(MQTT,CoAP 和 HTTP)实现设备连接,并支持云和本地部署。
ThingsBoard是国内很多2C类的开源物联网平台的技术源泉。
灵狐为了演示Fox-Edge的北向接入能力,同时也考虑到ThingsBoard在2C类开源物联网云平台的影响力,
所以,提供了cloud-thingsboard-service,将对接thingsboard,作为北向对接第三方物联网云平台的范例。
ThingsBoard 是一个2C类的物联网,2C类物联网的网络架构的业务特点,是一个云平台,透过公网,直接连接大量的智能设备。
也就是说,ThingsBoard直接管理的是一个个现场的智能设备。其实,这也是绝大多数2C类物联网的网络架构特点。 在这种架构下,每一个现场智能设备就是它的客户端。
在这种网络架构下,云平台跟下面的每个物联网设备之间,建立1:N的连接关系。也就是说,每一个设备,跟云平台建立一个独立连接。 每个设备,跟云平台之间都有一个独立账号或者认证Token。
所以MQTT对2C物联网来说,是一个很常用的方案。
但是MQTT在给2C物联网带来便利的同时,也同样带来的脚镣。如果是海量设备,通过边缘网关汇聚后,再连接上来,同一个边缘网关和云平台之间, 要重复建立几百上千个TCP连接。这将会是一场灾难。
灵狐在 《2C物联网云平台和2B/2B物联网云平台的差异》 中有详细解释。
幸运的是,ThingsBoard同样想往2B/2G领域发展,他们提供了无连接的HTTP/HTTPS和COAP接口,来解决边缘网关与云平台之间,建立大量重复连接的问题。
ThingsBoard的HTTP Restful接口格式为:
resource: http://demo.thingsboard.io/api/v1/{deviceToken}/telemetry
method: POST
body:{k1:v1,k2:v2,.....}
deviceToken是ThingsBoard手动注册设备后,ThingsBoard分配的一个标识为设备身份标识的静态身份Token,
可以在ThingsBoard的云平台管理界面上,该设备的属性页面上查询到。
范例:
curl -v -X POST http://demo.thingsboard.io/api/v1/iHtC96shxyCwa05jnOpi/telemetry --header Content-Type:application/json --data "{"系统输出功率":889,"逆变器01输出功率":304,"逆变器03输出功率":281}"
Fox-Edge上管理的设备成百上千个,所以可以通过HTTP/HTTPS接口和COAP接口的无连接特性,将数据推送给ThingsBoard的云平台。
同时,ThingsBoard还提供了通过CSV文件,批量导入设备的文档接口,减少了用户在云平台上手动注册大量设备的麻烦。
Fox-Edge 是一个2B/2G类的物联网边缘计算平台。Fox-Edge将现场大量的设备数据接入和管理之后,再将数据推送给云平台。
Fox-Edge 是一个高度可扩展的**边缘计算平台 ** ,它的架构允许它通过添加各种北向接入服务,实现跟各家云平台对接。
cloud-thingsboard-service 就是面向ThingsBoard的物联网云平台的北向对接服务。
1、在ThingsBoard官网开通测试账号,申请一个独立的ThingsBoard云平台测试环境。
2、在Fox-Edge上导出CSV文件格式的设备信息,作为在ThingsBoard批量注册设备的素材。
3、在ThingsBoard上导入Fox-Edge导出的CSV文件,ThingsBoard就注册了这些设备,ThingsBoard接下来可以管理这些设备了。
4、在Windows或者Linux工作台环境下,用ThingsBoard提供的HTTP Restful命令,测试一下你的本地环境是否能够把数据推送给到ThingsBoard。
5、在Fox-Edge的扩展信息页面,添加一个thingsboardHttpToken字段,此时Fox-Edge上的每一个设备都会自动具有该属性。
6、在ThingsBoard上的设备页面上,把每个设备的接入Token复制出来,粘贴到Fox-Edge的设备上的thingsboardHttpToken字段中。
7、启动cloud-thingsboard-service服务,此时会Fox-Edge会把设备采样数据推送到ThingsBoard
8、在ThingsBoard上,可以看到Fox-Edge的设备状态数据。
提醒 :
大多数2C物联网云平台的数据接入能力和带宽资源非常有限,通常有每天多少次的访问次数限制。
目前cloud-thingsboard-service的数据推送方式是哪个设备有数据变化,就推送该设备的数据。 而Fox-Edge管理的设备特别的多,数据变化也很剧烈,这可能意味着对ThingsBoard巨大的数据压力,小心被物联网云平台运营方封号、断网。
cloud-thingsboard-service过几天会增加定时发送数据的方式,来减少对ThingsBoard的压力。
ThingsBoard在他们的官网,提供了免费试用环境,可以作为测试环境。
注册账号
本地环境安装一套Fox-Edge,并安装cloud-thingsboard-service服务
参考Fox-Edge的 安装教程。
注册一个设备和并模拟推送该设备数据,检查是否可以正常使用云平台
安装好cloud-thingsboard-service服务
Fox-Edge是2B/2G领域的边缘计算平台,2B/2G的数据压力,对ThingsBoard这个2C物联网云平台来说,有些招架不住。
cloud-thingsboard-service,提供了定时推送和触发推送两种模式
触发推送,是一种实时性推送方式,Fox-Edge中的数据一发送变化,马上就推送数据。 这意味着Fox-Edge中的设备数量不能太多,变化也不能太频繁,否则会对ThingsBoard形成高频、大量的推送数据。
定时推送,这是一种周期性全量推送的方式,当Fox-Edge中的数据量比较大的时候,使用定期推送,可以大大减轻对ThingsBoard的压力。