Google Cloud MQTT с ошибкой повторного использования Esp32 JWT - PullRequest
0 голосов
/ 05 мая 2020

Я пытаюсь отправить поддельные данные о температуре с ESP32 в Google Cloud с помощью Arduino IDE и с помощью этой библиотеки https://github.com/GoogleCloudPlatform/google-cloud-iot-arduino. Я создал реестр и устройство на ядре google iot. Со своей стороны, я вручную поместил сертификат csa на ESP32 и правильно установил все параметры и строку закрытого ключа в ciotc_config.h. Когда я пытаюсь подключиться, я получаю в Serial Monitor следующий повторяющийся вывод:

ho 0 tail 12 room 4
load:0x40080400,len:6352
entry 0x400806b8
Setup.....
Starting wifi
Connecting to WiFi
Connected
Waiting on time sync...

Esp32-mqtt:

void setupWifi() {
Serial.println("Starting wifi");

WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
Serial.println("Connecting to WiFi");
while (WiFi.status() != WL_CONNECTED) {
delay(100);
}
Serial.println("Connected");
configTime(0, 0, ntp_primary, ntp_secondary);
Serial.println("Waiting on time sync...");
while (time(nullptr) < 1510644967) {
delay(10);
}
}

void connectWifi() {
Serial.print("checking wifi...");
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(1000);
}
} 

Я внес изменения в основной файл. cpp просто потому, что я не буду работать с этими датчиками:

unsigned long lastMillis = 0;

void loop() {
mqtt->loop();
delay(10);  // <- fixes some issues with WiFi stability

if (!mqttClient->connected()) {
connect();
}

if (millis() - lastMillis > 60000) {
Serial.println("Publishing value");
lastMillis = millis();
float temp = 33;
float hum = 50;
StaticJsonDocument<100> doc;
doc["temp"] = temp;
doc["humidity"] = hum;
serializeJson(doc, buffer);
//publishTelemetry(mqttClient, "/sensors", getDefaultSensor());
publishTelemetry( buffer);
}
}

Изображение из PUB: Pub image

Ответы [ 2 ]

1 голос
/ 05 мая 2020

Думаю, это всего лишь отладочная информация. Это может быть строка, в которой вы пишете информацию тега JWT.

Я написал руководство о том, как подключить ESP32 к Google Cloud IoT с полным исходным кодом, который очень похож на ваш код, но не повторить эту информацию. Вы можете посмотреть https://www.survivingwithandroid.com/cloud-iot-core-esp32/ и использовать код повторно. Дай мне знать, смогу ли я чем-нибудь тебе помочь.

0 голосов
/ 05 мая 2020

Не похоже, что вы когда-либо успешно подключались.

В вашем выводе я вижу connecting..., поэтому он находится в вызове mqttConnect(), но он никогда не выводит connected!, поэтому он застрял в то время как l oop, где он вызывает getJwt()

Теперь, почему он не выводит ошибки mqtt, может означать, что ваши ошибки связаны с чем-то другим, и клиент mqtt полностью в порядке, поэтому вы не вижу другого вывода. В качестве проверки отладки я бы поместил Serial.println("fubar") в вызов mqttConnect() над delay(1000) и посмотрел, получите ли вы там другой результат, указывающий на какую-то другую ошибку подключения, отличную от проблемы подключения mqtt.

...