// Learn about the ESP32 WiFi simulation in
// https://docs.wokwi.com/guides/esp32-wifi
#include <OneWire.h>
#include <DallasTemperature.h>
#include <WiFi.h>
#include <LiquidCrystal_I2C.h>
#define tempsensor 33
#define led 19
const int oneWireBus = tempsensor;
const char* ssid = "Wokwi-GUEST";
const char* password = "";
const char* host = "api.thingspeak.com";
const char* APIkeyWrite = "";
OneWire oneWire(oneWireBus);
LiquidCrystal_I2C lcd(0x27, 16, 2);
DallasTemperature sensors(&oneWire);
void setup()
{
sensors.begin();
lcd.init();
lcd.backlight();
lcd.setCursor(1,0);
lcd.print("Sensor de Temp.");
pinMode(led, OUTPUT);
pinMode(tempsensor, INPUT);
digitalWrite(led, LOW);
Serial.begin(115200);
WiFi.begin(ssid, password);
Serial.print("Conectando-se ao WiFi...");
while(WiFi.status() != WL_CONNECTED)
{
delay(100);
Serial.print(".");
}
Serial.print("Ok. IP = ");
Serial.println(WiFi.localIP());
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Conectou-se ao WiFi");
delay(1000);
lcd.clear();
}
void loop()
{
sensors.requestTemperatures();
float tempC = sensors.getTempCByIndex(0);
lcd.setCursor(0,0);
lcd.print("temp:");
lcd.setCursor(6,0);
lcd.print(tempC);
if(WiFi.status() == WL_CONNECTED)
digitalWrite(led, HIGH);
else
digitalWrite(led, LOW);
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort))
{
return;
}
bool tempthreshold;
lcd.setCursor(0,1);
lcd.print("bom?:");
lcd.setCursor(7,1);
if(tempC <= 32.5 && tempC >= 20)
{
tempthreshold = true;
lcd.print("Sim.");
}
else
{
tempthreshold = false;
lcd.print("Nao.");
}
String url = "/update?api_key=";
url += APIkeyWrite;
url += "&field1=";
url += String(tempC);
url += "&field2=";
url += String(tempthreshold);
url += "\r\n";
Serial.println(url);
String endereco = String("GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Connection: close\r\n\r\n";
Serial.println(endereco);
client.print(endereco);
delay(15000);
lcd.clear();
}