搭建thingsboard物联网云平台花了大量时间,从小白到最后搭建成功,折磨了好几天,也感谢网友的帮助,提供了思路最终成功搞定,特此记录。
一、thingsboard环境搭建(Ubuntu20.04LTS)
参考官方文档,按部就班操作即可
http://www.ithingsboard.com/docs/user-guide/install/ubuntu/
二、thingsboard-gateway环境搭建
也是参考官方文档,直接安装
Step 1. Download the deb file
|------------------------------------------------------------------------------------------------------------------|
| wget https://github.com/thingsboard/thingsboard-gateway/releases/latest/download/python3-thingsboard-gateway.deb |
Step 2. Install the gateway using apt
Install ThingsBoard IoT Gateway as package and run it as daemon use the following command:
|-------------------------------------------------------|
| sudo apt install ./python3-thingsboard-gateway.deb -y |
The deb package will automatically install the necessary libraries for the IOT Gateway to work:
- System libraries: libffi-dev, libglib2.0-dev, libxml2-dev, libxslt-dev, libssl-dev, zlib1g-dev, python3-dev, python3-pip.
- Python modules: importlib, importlib-metadata, jsonschema, pymodbus, lxml, jsonpath-rw, paho-mqtt, pyserial, PyYAML, simplejson, pyrsistent.
Step 3. Check gateway status
systemctl status thingsboard-gateway
修改配置文件:/etc/thingsboard-gateway/config/tb_gateway.json
bash
{
"thingsboard": {
"host": "127.0.0.1",
"port": 1883,
"remoteShell": false,
"remoteConfiguration": true,
"statistics": {
"enable": true,
"statsSendPeriodInSeconds": 3600,
"configuration": null
},
"deviceFiltering": {
"enable": false,
"filterFile": "list.json"
},
"maxPayloadSizeBytes": 1024,
"minPackSendDelayMS": 200,
"minPackSizeToSend": 500,
"checkConnectorsConfigurationInSeconds": 60,
"handleDeviceRenaming": true,
"security": {
"type": "accessToken",
"accessToken": "ke6h88w6f0fssjaq4s9e"
},
"qos": 1,
"checkingDeviceActivity": {
"checkDeviceInactivity": false,
"inactivityTimeoutSeconds": 200,
"inactivityCheckPeriodSeconds": 500
},
"ts": 1721138363329
},
"storage": {
"type": "memory",
"read_records_count": 100,
"max_records_count": 100000,
"data_folder_path": "./data/",
"max_file_count": 10,
"max_read_records_count": 10,
"max_records_per_file": 10000,
"data_file_path": "./data/data.db",
"messages_ttl_check_in_hours": 1,
"messages_ttl_in_days": 7,
"ts": 1721138363329
},
"grpc": {
"enabled": false,
"serverPort": 9595,
"keepaliveTimeMs": 10000,
"keepaliveTimeoutMs": 5000,
"keepalivePermitWithoutCalls": true,
"maxPingsWithoutData": 0,
"minTimeBetweenPingsMs": 10000,
"minPingIntervalWithoutDataMs": 5000,
"keepAliveTimeMs": 10000,
"keepAliveTimeoutMs": 5000
},
"connectors": [
{
"type": "modbus",
"name": "MODBUS CONNECT",
"configuration": "modbus_serial.json"
}
]
}
mqtt_modbus.json配置
bash
{
"master": {
"slaves": [
{
"type": "serial",
"method": "rtu",
"port": "/dev/ttyS1",
"baudrate": 9600,
"timeout": 35,
"stopbits": 1,
"bytesize": 8,
"byteOrder": "BIG",
"wordOrder": "BIG",
"retries": true,
"retryOnEmpty": true,
"retryOnInvalid": true,
"pollPeriod": 5000,
"unitId": 1,
"deviceName": "Modbus Temperature Sensor",
"sendDataOnlyOnChange": false,
"connectAttemptTimeMs": 5000,
"connectAttemptCount": 5,
"waitAfterFailedAttemptsMs": 300000,
"attributes": [
{
"tag": "16int",
"type": "16int",
"functionCode": 4,
"objectsCount": 2,
"address": 3
}
],
"timeseries": [
{
"tag": "temperature",
"type": "16uint",
"functionCode": 4,
"objectsCount": 1,
"address": 1
},
{
"tag": "humidity",
"type": "16uint",
"functionCode": 4,
"objectsCount": 1,
"address": 2
}
],
"attributeUpdates": [
{
"tag": "shared_attribute_write",
"type": "32int",
"functionCode": 6,
"objectsCount": 2,
"address": 29
}
],
"rpc": [
{
"tag": "setValue",
"type": "16int",
"functionCode": 6,
"objectsCount": 1,
"address": 1
},
{
"tag": "getValue",
"type": "16int",
"functionCode": 3,
"objectsCount": 1,
"address": 2
}
]
}
]
},
"id": "19c7e3fa-bfd8-4edb-9590-1fd570902b35"
}
三、modbus slave配置
在命令行重启网关:
sudo systemctl restart thingsboard-gateway.service
云平台就会出现Modbus Temperature Sensor这个设备
四、新建调试界面,对设备进行调试
终于通信成功!!!!!