• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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);
}
 
Сверху Снизу