// Breno Correia Lociks
// Exercício 4
#include <WiFi.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal_I2C.h>
#include "ThingSpeak.h"
#include "secrets.h"
const int OneWireBus = 4;
OneWire oneWire(OneWireBus);
DallasTemperature sensors(&oneWire);
LiquidCrystal_I2C lcd(0x27,16,2);
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
int keyIndex = 0;
WiFiClient client;
unsigned long myChannelNumber = CHANNEL_ID;
const char * myWriteAPIKey = WRITE_API_KEY;
void setup() {
Serial.begin(115200);
sensors.begin();
lcd.init();
lcd.setBacklight(HIGH);
while (!Serial) {
;
}
WiFi.mode(WIFI_STA);
ThingSpeak.begin(client);
}
void loop() {
if(WiFi.status() != WL_CONNECTED) {
Serial.print("Attempting to connect to SSID: ");
Serial.println("Wokwi-CLIENT");
while(WiFi.status() != WL_CONNECTED) {
WiFi.begin(ssid, pass);
Serial.print(".");
delay(5000);
}
Serial.println("\nConnected.");
}
sensors.requestTemperatures();
float temperaturaC = sensors.getTempCByIndex(0);
lcd.setCursor(0,0);
lcd.print(temperaturaC);
lcd.print(" C ");
int x = ThingSpeak.writeField(myChannelNumber, 1, temperaturaC, myWriteAPIKey);
if(x == 200) {
Serial.println("Channel update successful.");
}
else {
Serial.println("Problem updating channel. HTTP error code " + String(x));
}
delay(20000);
}