ESP32S/DHT22/ отправка данных в формате JSON на CloudMQTT

Тема в разделе "Закажу проект", создана пользователем Mactelive, 2 май 2019.

Метки:
  1. Mactelive

    Mactelive Нуб

    Всем привет!
    У меня проблема следующего характера : необходимо отправлять данные с датчика 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);
      }
    }
     
  2. harus

    harus Нерд

    Готов оплатить помощь?
     
  3. Mactelive

    Mactelive Нуб

    Готов, главное адекватные расценки )
     
  4. harus

    harus Нерд

    Код (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);
      }
    }
     
  5. harus

    harus Нерд

    100 рублей за добавленную строку - адекватно?
     
  6. harus

    harus Нерд

    ТС пропал и даже спасибо не сказал. Вполне себе адекватно.