Невозможно отправить данные на шлюз ThingsBoard через MQTT - PullRequest
0 голосов
/ 16 января 2020

Я установил сервер ThingsBoard на одном P C (UBUNTU16.04) и шлюз ThingsBoard на другом P C (UBUNTU18.04). Чтобы отправить данные на ThingsBoard Gateway, я установил брокер Mosquitto MQTT на другом P C. Я следовал инструкциям по настройке, чтобы подключить посредника к шлюзу, а также к серверу (используя токен доступа и IP-адрес узла).

Я подключил датчик температуры к ESP32. Пока я пытаюсь отправить данные на шлюз через MQTT, данные не попадают на шлюз. Топи c, которую я здесь использовал, это «v1 / gateway / telemetry» для публикации sh данных.

Можем ли мы использовать идентификатор шлюза для отправки данных? Как я могу отправить данные либо с помощью topi c, либо с помощью идентификатора устройства, либо с помощью токена доступа к устройству? (С устройства)

Все P C подключены к одной сети (Private сеть).

Я сталкиваюсь с этой проблемой, Может кто-то, пожалуйста, разберись ...

1 Ответ

0 голосов
/ 16 января 2020

Вам необходимо создать прокси-слой между MQTT Broker и вашим сервером.

var mqtt = require('mqtt'), url = require('url');
var client = mqtt.connect('mqtt://localhost:1883',
{
username: '<username>',
password: '<password>'
});

console.log("Connected to MQTT Broker:- localhost” + client.toString());
var awsIot = require('aws-iot-device-sdk');
var device = awsIot.device({

keyPath:  Certificate key file path,
certPath: Certificate file path,
caPath:   Certificate root file path,
clientId: AWS Thing Name,
region:   AWS IoT Broker region,
});

device.on('connect', function ()
{
console.log("Connected to AWS IoT Broker:- " + device.toString());
});

client.on('connect', function()
{
//subscribe to a topic (#)
client.subscribe('#', function ()
{
client.on('message', function (topic, message, packet) {
console.log("Received :-" + message + " on " + topic);
device.publish(topic, message);
console.log("Sent :-" + message + " on " + topic);
});
});
});

Что-то подобное может вам помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...