#include <WiFi.h>
#include "ThingSpeak.h"
#define LED 4 // Sinal digital
#define POT 34 // Sinal analógico
#define SECRET_SSID "Wokwi-GUEST"
#define SECRET_PASS ""
#define SECRET_CH_ID // Preencha o número do seu canal do ThingSpeak
#define SECRET_WRITE_APIKEY "" // Preencha a API Key do seu canal
char ssid[] = SECRET_SSID;
char pass[] = SECRET_PASS;
int keyIndex = 0;
WiFiClient client;
unsigned long myChannelNumber = SECRET_CH_ID;
const char * myWriteAPIKey = SECRET_WRITE_APIKEY;
/*
No Arduino UNO o ADC é de 10 bits (1.024)
0.00V ----> 0
5.00V ----> 1.023
No ESP32 os ADCs são de 12 bits (4.096)
0.00V ----> 0
3.30V ----> 4.095
Tensão de operação do ESP32 é 3.3V (3V3)
*/
int valorPOT;
void setup() {
Serial.begin(115200);
pinMode(LED, OUTPUT);
WiFi.mode(WIFI_STA);
ThingSpeak.begin(client);
}
void loop() {
conectaWiFi();
leituraSensor();
enviaThing();
delay(20000); // Aguarda 20 segundos para atualizar o canal.
}
void leituraSensor(){
valorPOT = analogRead(POT);
delay(10);
//Serial.println(valorPOT);
Serial.println("Valor do ADC: " + String(valorPOT));
}
void enviaThing(){
int x = ThingSpeak.writeField(myChannelNumber, 1, valorPOT, myWriteAPIKey);
if(x == 200){
Serial.println("Canal atualizado com sucesso.");
}
else{
Serial.println("Erro ao atualizar o canal. HTTP error code: " + String(x));
}
}
void conectaWiFi(){
if(WiFi.status() != WL_CONNECTED){
Serial.print("Tentando conectar ao SSID: ");
Serial.println(SECRET_SSID);
while(WiFi.status() != WL_CONNECTED){
WiFi.begin(ssid, pass);
Serial.print(".");
delay(1000);
}
Serial.println("\nConectado.");
}
}