Запрос PUT с ESP8266 + NodeMCUv3 с данными JSON на сервер NodeJS (локальная сеть)

Я пытаюсь отправить данные со своего датчика освещенности с помощью ESP8266 и обновить "значение" датчика на моем сервере. К сожалению, я работал столько часов, но у меня ничего не работает...

Считывание данных с датчика и подключение к сети выполнено и работает.

Интересующий нас код:

#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include "ArduinoJsonv6.cpp"
#include <WiFiClient.h>

// Server parameters
const char* Server_ID = "192.168.1.32";
const int port = 8080;
String URL = "/pi/Rooms/LivingRoom/sensors/Light/5dec517737d254014be8f766"; //ID of the sensor

void loop() {

  // Reading data from the sensor
  unsigned long Lux;
  String Lux_string = "";

  tsl.TSL2581_Read_Channel();
  Lux = tsl.calculateLux(2, NOM_INTEG_CYCLE);

  Read_gpio_interrupt(2000, 50000);
  delay(50);

  StaticJsonDocument<200> doc;
  doc["value"] = Lux;
  serializeJson(doc, Serial);

  if(WiFi.status()== WL_CONNECTED){
    WiFiClient client;
    HTTPClient http;
    http.begin(Server_ID + ":" + port + URL);  // (1) How can I pass here my parameters?
    http.addHeader("Content-Type", "application/json");

    int httpResponseCode = http.PUT(HOW CAN I PASS HERE MY JSON - DOC???); // (2) Passing here the json is like black magic...
    String response = http.getString();   

    Serial.println(httpResponseCode);
    Serial.println(response); 
    http.end();

    delay(5000);
  }
}

Основные проблемы:

(1) - как перейти на http.begin параметры моего сервера?

(2) - передача моего json в запрос PUT - это кажется очень простым, но это не так.

если кто-то может решить эту проблему с другой библиотекой, это тоже хорошее решение для меня. К сожалению, на каждом веб-сайте есть решение, использующее разные библиотеки, что очень сбивает с толку. Спасибо за любую помощь

0 ответов

Другие вопросы по тегам