Всем привет! У меня проблема следующего характера : необходимо отправлять данные с датчика DHT22 именно в формате JSON на CloudMQTT брокер. Хоть убей, не понимаю как это сделать. Вот мой код. В нём выводятсz данные в формате JSON просто в окно компиляции, но как это отправить на брокер - я не знаю. Помогите пожалуйста! Код (C++): #include "ArduinoJson.h" #include <PubSubClient.h> #include <Wire.h> #include <ETH.h> #include <WiFi.h> #include <WiFiAP.h> #include <WiFiClient.h> #include <WiFiGeneric.h> #include <WiFiMulti.h> #include <WiFiScan.h> #include <WiFiServer.h> #include <WiFiSTA.h> #include <WiFiType.h> #include <WiFiUdp.h> #include "DHT.h" #define SensorPin 16 #define SensorType DHT22 DHT Sensor(SensorPin, SensorType); const char* ssid = "prorab"; const char* password = "oQ9frEU8"; const char* Mosquitto_Server = ""; const int Mosquitto_port = ; const char* user_mqtt = ""; const char* pass_mqtt = ""; WiFiServer server(80); WiFiClient espClient; PubSubClient client(espClient); void setup() { Serial.begin(115200); delay(100); Sensor.begin(); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(500); Serial.println(); } Serial.println("Connected to :"); Serial.println(ssid); client.setServer(Mosquitto_Server, Mosquitto_port); while (!client.connected()) { Serial.println("Connecting to CloudMQTT..."); if (client.connect("ESP32Client", user_mqtt, pass_mqtt)) { Serial.println("Connected"); } else { Serial.print("failed with state "); Serial.print(client.state()); delay(2000); } } Serial.println("Датчик снимает показания..."); } void loop() { float Tep = Sensor.readTemperature(); float Vlh = Sensor.readHumidity(); StaticJsonBuffer<200> jsonBuffer; JsonObject& root = jsonBuffer.createObject(); root ["Humidity"] = Vlh; if (isnan(Tep) || isnan(Vlh) ) { Serial.println(F("Ошибка датчика!")); return; } else { client.publish ("esp/hum" , root); root.printTo(Serial); delay(9000); } }
Код (C++): void loop() { float Tep = Sensor.readTemperature(); float Vlh = Sensor.readHumidity(); StaticJsonBuffer<200> jsonBuffer; JsonObject& root = jsonBuffer.createObject(); root ["Humidity"] = Vlh; if (isnan(Tep) || isnan(Vlh) ) { Serial.println(F("Ошибка датчика!")); return; } else { //client.publish ("esp/hum" , root); char JSONmessageBuffer[100]; root.printTo(JSONmessageBuffer, sizeof(JSONmessageBuffer)); client.publish("esp/hum", JSONmessageBuffer); root.printTo(Serial); delay(9000); } }