/* 
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃   Código demonstrativo para a aula de Bancos de Dados aplicados à Internet das Coisas, ┃
┃   Curso de Engenharia e Administração de Sistemas de Banco de Dados,                   ┃
┃   Faculdade de Tecnologia - UNICAMP.                                                   ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
*/


#include <WiFi.h>
#include <ArduinoHttpClient.h>

char payload[80];

int v1 = 0;  
int v2 = 0;  
int v3 = 0;  
int v4 = 0; 

WiFiClient client;
HttpClient cliente = HttpClient(client,"api.thingspeak.com",80);

void setup() {

   Serial.begin(9600);
   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(2000);
}

void loop() {
  
    v1 = analogRead(32);  
    v2 = analogRead(33);  
    v3 = analogRead(34);  
    v4 = analogRead(35);  

    Serial.println();   
    Serial.print("A0: ");
    Serial.println(v1);    
    Serial.print("A1: ");
    Serial.println(v2);    
    Serial.print("A2: ");
    Serial.println(v3);    
    Serial.print("A3: ");
    Serial.println(v4);    
    Serial.println();  

    // Substituir sua_chave_escrita pela chave de escrita do canal - Write API Key.
    // sprintf(payload,"/update?api_key=sua_chave_escrita&field1=%d&field2=%d&field3=%d&field4=%d",v1,v2,v3,v4);
    sprintf(payload,"/update?api_key=AQZXI1RHA3ZJ9IO4&field1=%d&field2=%d&field3=%d&field4=%d",v1,v2,v3,v4);
    
    Serial.println("Requisicao: GET");
    cliente.get(payload);

    int statusCode = cliente.responseStatusCode();
    String response = cliente.responseBody();

    Serial.print("Codigo de Status: ");
    Serial.println(statusCode);
    Serial.print("Retorno: ");
    Serial.println(response);
    Serial.println();
      
    delay(15000);

}