/*
   Código demonstrativo para a aula de Sistemas Embarcados,
   Curso de Ciência da Computação e Engenharia da Computação
   EEP.
*/

#include <WiFi.h>
#include <HTTPClient.h>

const String url = "http://things.ubidots.com/api/v1.6/data/raw/series";

HTTPClient cliente;

void setup() {

  Serial.begin(115200);
  while (!Serial)    {     }

  WiFi.begin("Wokwi-GUEST", "");

  while (WiFi.status() != WL_CONNECTED) {
    delay(250);
  }

  Serial.println("-----------------------------------------------");
  Serial.print("Endereco IP: ");
  Serial.println(WiFi.localIP());
  Serial.println("-----------------------------------------------");

  delay(1000);

}

void loop() {

  Serial.println("Requisicao: POST");

  // Substituir sua_variavel pelo id que identifica a variável desejada - ID.
  // String payload = "{\"variables\": [\"sua_variavel\",\"sua_variavel\",\"sua_variavel\",\"sua_variavel\"],\"columns\": [\"value.value\"], \"limit\": 1 }";

  String payload = "{\"variables\": [\"sua_variavel\",\"sua_variavel\",\"sua_variavel\",\"sua_variavel\"],\"columns\": [\"value.value\"], \"limit\": 1 }";

  int data = payload.length();

  cliente.begin(url);

  cliente.addHeader("Content-Type", "application/json");
  cliente.addHeader("Content-Length", String(data));

  // Substituir seu_token_default pela chave que identifica o seu token - TOKEN default.
  // cliente.addHeader("X-Auth-Token","seu_token_default");

  cliente.addHeader("X-Auth-Token","seu_token_default");

  int statusCode = cliente.POST(payload);
  String response = cliente.getString();

  Serial.print("Status: ");
  Serial.println(statusCode);
  Serial.print("Retorno: ");
  Serial.println(response);
  Serial.println();

  delay(15000);

}