本文意在阐述:
A设备采集温度数据,传到B设备的网关,由B设备的网关上传至搭建在C服务器上的TB平台的流程。
注:
本文所提及的设备指4B版本的树莓派

步骤大致可以分为以下几点:
1 C服务器上搭建平台
2 A设备的传感器收集温度数据
3 B设备上搭建网关
4 配置B设备上的网关上连C服务器的平台,下联A设备的mqtt broker
5 mqtt broker和温度传感器在A设备上,传感器收集到数据通过mqtt broker发送到B设备的网关,B设备的网关在上传到C服务器上的平台

具体实现:
1 在C服务器上搭建平台
centos服务器上搭建的平台
本人关于安装指南里postgresql的处理方法是,用docker起了一个,然后根据安装指南里面的方法配置到了TB平台。
注:
其他操作系统安装TB平台请点击此处查看具体的方法
修改TB UI启动的默认8080端口
2 A设备的传感器收集温度数据
采用树莓派自带的温度的传感器和温度传感器的python代码,采集到温度数据,A设备还需要安装和配置mosquitto,安装和配置mosquitto后续会在文章后面的相应部分提及。
注:
采集温度的python具体代码会由附录给出

3 B设备上搭建网关
搭建网关的步骤
搭建完网关后,需要配置两点(本文以mqtt connector为例):
因为网关上连TB平台,下接MQTT Connector,所以在网关的配置文件中配置①TB平台和MQTT Connector中②mqtt broker信息。
<1>配置tb平台(点此查看官方步骤):

root@raspberrypi:/etc/thingsboard-gateway/config# pwd
/etc/thingsboard-gateway/config
root@raspberrypi:/etc/thingsboard-gateway/config# sudo nano tb_gateway.yaml
thingsboard:host: 主机地址或者域名(即使换了UI的端口号,也只写ip即可)port: 1883 #默认为1883,在thingsboard.yml中mqtt的bind_portremoteShell: falseremoteConfiguration: falsesecurity:accessToken: gSOxmt6cRDUmT29DDv6w#在TB平台上建立的getway的accesstokenqos: 1

<2>配置mqtt connector信息
此处为配置mqtt connector的步骤
我们需要配置的为broker部分,其余部分如无特殊的需要,默认即可:

{"broker": {"name":"Default Local Broker","host":"192.168.93.135",#这是安装mqtt broker的设备ip"port": 1883,#安装mqtt broker的设备的mqtt协议端口"clientId": "ThingsBoard_gateway","security": {"type": "basic","username": "username",#mosquitto配置的username"password": "password"#mosquitto配置的password}}

上述配置提及的host,port,username和password均为已经安装配置好的设备上的mqtt broker的信息。这就要求我们需要在A设备上安装和配置mqtt broker–mosquitto,用来发送我们采集到的温度数据。
安装mosquitto步骤:
树莓派安装mosquitto及配置账号密码及pub、sub测试

username和password:安装mosquitto步骤中设置的账号密码。
port:port如果在安装mosquitto时候不修改,为默认的1883。
host:即为安装mosquitto的设备的ip,即A设备的ip(A broker设备和B 网关设备需要在一个网络内,最简单的办法为A和B设备同连一个手机热点)。
注:
修改mqtt.json文件和tb_gateway.yaml文件后,需要重启一下tb网关:

#重启tb网关
sudo systemctl  restart thingsboard-gateway.service
#查看网关状态,是否连接成功,如果不成功,根据报错解决问题
sudo systemctl  status thingsboard-gateway.service
root@raspberrypi:/etc/thingsboard-gateway/config# sudo systemctl  status thingsboard-gateway.service
● thingsboard-gateway.service - ThingsBoard GatewayLoaded: loaded (/etc/systemd/system/thingsboard-gateway.service; enabled; vendor preset: enabled)Active: active (running) since Mon 2021-08-16 18:11:14 CST; 1s agoMain PID: 2122 (python3)Tasks: 8 (limit: 4915)CGroup: /system.slice/thingsboard-gateway.service└─2122 /usr/bin/python3 -c from thingsboard_gateway.tb_gateway import daemon; daemon()8月 16 18:11:15 raspberrypi python3[2122]: ""2021-08-16 18:11:15" - INFO - [mqtt_connector.py] - mqtt_connector - 274 - Connector "MQTT Broker Connector" subscribe to /sen
8月 16 18:11:15 raspberrypi python3[2122]: ""2021-08-16 18:11:15" - INFO - [tb_utility.py] - tb_utility - 111 - Import CustomMqttUplinkConverter from /var/lib/thingsboard_
8月 16 18:11:15 raspberrypi python3[2122]: ""2021-08-16 18:11:15" - INFO - [mqtt_connector.py] - mqtt_connector - 274 - Connector "MQTT Broker Connector" subscribe to /cus
8月 16 18:11:15 raspberrypi python3[2122]: ""2021-08-16 18:11:15" - INFO - [mqtt_connector.py] - mqtt_connector - 322 - "MQTT Broker Connector" subscription success to top
8月 16 18:11:15 raspberrypi python3[2122]: ""2021-08-16 18:11:15" - INFO - [mqtt_connector.py] - mqtt_connector - 322 - "MQTT Broker Connector" subscription success to top
8月 16 18:11:15 raspberrypi python3[2122]: ""2021-08-16 18:11:15" - INFO - [mqtt_connector.py] - mqtt_connector - 322 - "MQTT Broker Connector" subscription success to top
8月 16 18:11:15 raspberrypi python3[2122]: ""2021-08-16 18:11:15" - INFO - [mqtt_connector.py] - mqtt_connector - 322 - "MQTT Broker Connector" subscription success to top
8月 16 18:11:15 raspberrypi python3[2122]: ""2021-08-16 18:11:15" - INFO - [mqtt_connector.py] - mqtt_connector - 322 - "MQTT Broker Connector" subscription success to top
8月 16 18:11:15 raspberrypi python3[2122]: ""2021-08-16 18:11:15" - INFO - [mqtt_connector.py] - mqtt_connector - 322 - "MQTT Broker Connector" subscription success to top
8月 16 18:11:15 raspberrypi python3[2122]: ""2021-08-16 18:11:15" - INFO - [mqtt_connector.py] - mqtt_connector - 322 - "MQTT Broker Connector" subscription success to top
lines 1-18/18 (END)

<3>查看网关的log,mqtt connector配置成功以后,我们可以在A设备上用mosquitto手动的发布消息,看平台是否可以接收到。

mosquitto_pub  -t /sensor/data -m '{"serialNumber":"SN-014","sensorType":"Thermometer","sensorModel":"T1000","temp":26.75,"hum":2222}' -u username -P password

注:
-m 发送的消息体,需要用单引号括住,用双引号括住会报错,传不上去。

此时平台正确的反应应该是,多了一个SN-014设备,并且会有对应的温度和湿度遥测数据。

附录:

(1)Thingsboard 3.0 通过 tb-gateway 网关接入 MQTT 设备教程
Thingsboard 3.0 通过 tb-gateway 网关接入 MQTT 设备教程
(2)python推送实时温度的代码(带有client字样的为python发送mqtt数据代码,其余的为测量温度代码)(树莓派设备需要配合温度传感器和正确的插线才可以运行成功,为树莓派板子自带的代码和设备相关配套):

# !/usr/bin/env python3
# -*- coding: utf-8 -*-
# ----湖南创乐博智能科技有限公司----
#  文件名:25_ds18b20.py
#  版本:V2.0
#  author: zhulin
# 说明: DS18B20数字温度传感器实验
# 注意事项:DS18B20有唯一的地址,一般为28-XXXXXX
#####################################################
import os
import requests
import paho.mqtt.client as mqtt
import time
import sysmakerobo_ds18b20 = ''  # ds18b20 设备
client = mqtt.Client(protocol=3)
client.username_pw_set("username", "password")client.connect(host="192.168.93.135", port = 1883, keepalive=60)def makerobo_setup():global makerobo_ds18b20  # 全局变量# 获取 ds18b20 地址for i in os.listdir('/sys/bus/w1/devices'):if i != 'w1_bus_master1':makerobo_ds18b20 = i  # ds18b20存放在ds18b20地址# 读取ds18b20地址数据
def makerobo_read():makerobo_location = '/sys/bus/w1/devices/' + makerobo_ds18b20 + '/w1_slave'  # 保存ds18b20地址信息makerobo_tfile = open(makerobo_location)  # 打开ds18b20makerobo_text = makerobo_tfile.read()  # 读取到温度值makerobo_tfile.close()  # 关闭读取secondline = makerobo_text.split("\n")[1]  # 格式化处理temperaturedata = secondline.split(" ")[9]  # 获取温度数据temperature = float(temperaturedata[2:])  # 去掉前两位temperature = temperature / 1000  # 去掉小数点return temperature  # 返回温度值# 循环函数
def makerobo_loop():while True:if makerobo_read() != None:  # 调用读取温度值,如果读到到温度值不为空data = '{"key1":%0.3f}'% makerobo_read()sensor_data = '{"serialNumber":"SN-014","sensorType":"Thermometer","sensorModel":"T1000","temp":'+str(makerobo_read())+'}'client.publish(topic="/sensor/data", payload=sensor_data, qos=0)print ("Current temperature : %0.3f C" % makerobo_read()) #打印温度值print(sensor_data)# 释放资源
def destroy():pass# 程序入口
if __name__ == '__main__':try:makerobo_setup()  # 调用初始化程序makerobo_loop()  # 调用循环函数except KeyboardInterrupt:  # 当按下Ctrl+C时,将执行destroy()子程序。destroy()  # 释放资源

温度传感器采集温度数据通过网关上传至ThingsBoard平台相关推荐

  1. Esp32读取温湿度数据通过mqtt上传阿里云平台

    目录 前言 一.esp32刷MicroPython固件库 二.创建阿里云产品 1.注册阿里云账号并登录控制台 2.找到物联网平台中的公共实例进入 3.创建产品及设备 4.编辑物模型并发布 5.最后找到 ...

  2. GSM模块联网 GPRS上传物联网云平台调试笔记

    <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255) ...

  3. 正点原子STM32f103ZE精英开发板实现基于ESP8266 WIFI模块温湿度数据上传至乐联网平台

    文章目录 一.准备工作 二.实现流程 1.AT指令 2.接入乐联网平台 3.代码实现 三.数据可视化分析 一.准备工作 1.准备一块正点原子STM32f103ZE精英开发板 2.在某宝上购买好正点原子 ...

  4. Burp Post、Get数据包转为上传multipart/form-data格式数据包

    方法一: 新建一个网页进行上传,代码代码如下: <html> <head></head> <body> <form method="po ...

  5. C#DataGridView导入Excel数据,并上传数据

    好久没来写文章了,今天和大家分享一个小操作! 因项目需要需要将财务数据导入流程数据中.项目需要解决的几个问题:1.将数据导入和上传:2.由于财务用的系统导出的数据无法阅览难读大,对账不方便,因此需要对 ...

  6. 接口查询的数据生成excel上传到七牛云

    接口查询的数据生成excel上传到七牛云 一.注册七牛云并新建一个存储空间 我们公司已经有一个七牛云的账号,登录进去之后创建一个新的对象存储空间.命名为eval_mobile.酒会有一个默认的融合 C ...

  7. dtu无线 服务器端,4G DTU将数据无线方式上传上位机软件。服务器PC端扩展功能

    原标题:4G DTU将数据无线方式上传上位机软件.服务器PC端扩展功能 方案需求 工业生产很多生产商喜欢利用颜色检测工具来完成颜色评定和分析,一定要对色灯箱和测色仪这些颜色检测分析仪器才能正确的得到颜 ...

  8. 用ECSHOP增强工具把淘宝数据包批量上传到自己的ECSHOP独立网店

    www.shopfw.net 用ECSHOP增强工具把淘宝数据包批量上传到自己的ECSHOP独立网店.完整保留商品的颜色.尺码.库存.货号.重量.首页图.详情图.商品描述.扩展属性等信息.对于网店中缺 ...

  9. 用SHOPEX增强工具把淘宝数据包批量上传到自己的ShopEX独立网店

    用SHOPEX增强工具把淘宝数据包批量上传到自己的ShopEX独立网店.完整保留商品的颜色.尺码.库存.货号.重量.首页图.详情图.商品描述.扩展属性等信息.对于网店中缺少的规格,软件会自动添加,无需 ...

最新文章

  1. poj2112 二分最大流+Floyd
  2. 全球首个自适应机械臂:精准抗干扰,斯坦福华人团队打造
  3. linux scull 的内存使用
  4. ubuntu16.04无法连接WiFi搜索不到网络网卡驱动
  5. 小程序获取StorageSync时候的坑
  6. 下采样downsample代码
  7. mysql event 日志_MySQL Event计划任务刷慢日志
  8. 不属于python的数据类型_下列________不是Python的数据类型。
  9. 动态规划问题之背包模型(18题)
  10. 当规模到亿级,MySQL是一个更好的NoSQL!
  11. ZeroBrane Studio远程调试Lua程序(转)
  12. 【校招VIP】前端js语言考点之事件冒泡与捕捉
  13. ajax中GET和POST区别
  14. kiriki模拟器Android9,Kirikiroid2模拟器
  15. 如何压缩word文档的大小?
  16. LaTeX 旁注 边注 Marigin Note
  17. HaaS学习笔记 | 阿里云物联网平台的产品和设备创建明细教程
  18. pythondjangoweb典型模块开发实战 pdf下载_胡阳《Django企业开发实战高效Python Web框架指南》PDF及代码...
  19. CMake 基础用法,掌握 CMake 诀窍
  20. 蓝桥杯 — IAP15F2K61S2-89C52 转换板说明文件

热门文章

  1. 《自律100天,穿越人生盲点》读书笔记
  2. 经典算法之直接插入排序法
  3. ValueError: decision_function_shape must be either ‘ovr‘ or ‘ovo‘, got None.
  4. pythonapi是什么意思_API是什么意思?API文档又是什么意思?
  5. stm32在官网下载标准库
  6. 微信小程序中使用腾讯地图,导航到目的地
  7. icloud备份微信聊天记录怎么恢复
  8. ICP备案和ICP许可证区别
  9. iOS8.0 使用Photos.framework对相册的常用操作
  10. css3基础知识总结