ThingsBoard 源码编译
通过传感器实时采集现实世界的的物理信息,进而利用计算机实现系统的全局优化。国内互联网巨头、运行商都发布有自己物联网平台(腾讯云、阿里云、百度云、天翼云以及ONENET等)。)以及迁移性差(物联网平台之前无法互通,ThingsBoard作为一款功能强大、扩展性强、使用方便以及几乎不花钱的开源物联网平台,能够通过打包、启动服务实现平台的运行。背景
近年来,物联网技术在工业、农业、环境、交通、物流以及安保等领域具有广泛的应用,其核心框架为:通过传感器实时采集现实世界的的物理信息,进而利用计算机实现系统的全局优化,提高社会加工生产的效率。调研发现,国内互联网巨头、运行商都发布有自己物联网平台(腾讯云、阿里云、百度云、天翼云以及ONENET等),极大的降低了物联网行业的准入门槛。然而通用的物联网平台一般具有收费高,定制化需求较难实现(掏钱另说,?)以及迁移性差(物联网平台之前无法互通,企业在软件资产方面较难沉淀)等弊端。
调研发现,ThingsBoard作为一款功能强大、扩展性强、使用方便以及几乎不花钱的开源物联网平台,受到业内的广泛好评,因此,近来花时间部署调试了ThingsBoard,具体过程如下所示:
图1 thingsboard官方页面 图2 ThingsBoard物联网平台的架构 安装ThingsBoard可以安装到win10系统上,通过搭建必要的依赖环境(Java,node.js,Postgresql数据库,IntelliJ IDEA,maven等等),进而实现软件的二次开发。网上具有很多安装教程,在此不再进行赘述,具体结果如下所示:
图3 ThingsBoard编译页面:重新修改代码后,能够通过打包、启动服务实现平台的运行 图4 ThingsBoard 安装成功后的显示页面 测试我们通过编写python程序,模拟mqtt客户端,实现了数据的发送,具体程序代码为:
import paho.mqtt.client as mqtt
import random
import time
token = "x3kz8HB8Z4dZFthDF4Eg"
client = mqtt.Client()
client.username_pw_set(token)
client.connect("127.0.0.1", 1883)
while True:
data = '{"hum" : %.1f}' % (random.randint(0, 2000)/20)
client.publish("v1/devices/me/telemetry", data)
time.sleep(10)
最终在thingsboard物联网云平台上实现了数据的接收及可视化,具体为:
图5 数据接收页面 修改后续为了满足实际项目需求,ThingsBoard需要进行的更改有:
1.图标更改;
2.链接到现有网站主页;
3.页面修改:针对实际项目需求, 界面优化这一块儿还是需要花费大量精力,目前主要的方法有:1. 基于ThingBoard部件库魔改:基本的思路是依然使用ThingBoard本身的可视化系统,通过修改ThingBoard部件库来达成该界面的优化;2. 使用三方UI库对接ThingsBoard:如果已经有第三方的UI大屏,只需要数据对接ThingBoard就可以h把设备数据传到你的大屏上,同时还能实现设备遥测数据的实时更新。
4. 设备接入协议:目前,ThingBoard 3.4.1版本默认支持 MQTT / COAP / LWM2M /SNMP 四种数据传输协议,后续有精力的话可以把物模型相关代码移植过来。应用场景:科学实验;
原文地址:https://cloud.tencent.com/developer/article/2130252