• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

esp8266 + appwrite

sodlat

New member
Приветствую, нужна доработка скетча стандартной библиотеки "ESP8266HTTPClient" для esp8266, а именно требуется реализация отправки (авторизация и запись) данных с датчика (рандомное значение с аналогового пина для примера) на сервер appwrite (аналог firebase) по средствам HTTP (POST и PATCH) запросов REST API в базу данных реального времени, сервер уже развернут на vps, данные для подключения к серваку вышлю в личке, на данный момент реализовано чтение данных из базы и разбор json

Код:
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <ArduinoJson.h>

const char* ssid = "";
const char* password = "";

HTTPClient http;

WiFiClient client;

void setup()
{
  Serial.begin(115200);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED)
  {
    delay(1000);
    Serial.println("Connecting...");
  }
}

void loop()
{
  if (WiFi.status() == WL_CONNECTED)
  {
    HTTPClient http; //Object of class HTTPClient
    http.begin(client, "http://185.255.133.227/v1/databases/62fdeda7285ebec29a32/collections/62fdedc95e45df47985d/documents/62ff24876fb623d661df");
    http.addHeader("Content-type", "application/json");
    http.addHeader("X-Appwrite-Project", "62f4fe452ce19040b645");
    int httpCode = http.GET();

    if (httpCode > 0)
    {
      const size_t bufferSize = JSON_OBJECT_SIZE(2) + JSON_OBJECT_SIZE(3) + JSON_OBJECT_SIZE(5) + JSON_OBJECT_SIZE(8) + 370;
      DynamicJsonBuffer jsonBuffer(bufferSize);
      JsonObject& root = jsonBuffer.parseObject(http.getString());
 
      int id = root["id"];
      const char* data = root["data"];
      const char* lol = root["lol"];
      const char* test = root["test"];

      Serial.print("data:");
      Serial.println(data);
      Serial.print("lol:");
      Serial.println(lol);
      Serial.print("test:");
      Serial.println(test);
      Serial.print("-------------------------");
    }
    http.end(); //Close connection
  }
  delay(2000);
}
 
Сверху Снизу