// bibliotecas
#include <WiFi.h>
#include <DHTesp.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
//Leds
#define espConectado 19
#define wifiConectado 18
#define serverAtivo 5
//DHT
#define DHTPIN 17
DHTesp dhtSensor;
//Wifi
#define ssid "Wokwi-GUEST"
#define password""
#define channel 6
int status = WL_IDLE_STATUS;
//oled
#define Largura 128
#define Comprimento 64
Adafruit_SSD1306 display(Largura,Comprimento,&Wire, -1);
WiFiServer server(80);
int estadoServidor;
String mensagem;
WiFiClient client;
void setup(){
// inicializa terminal
Serial.begin(115200);
// inicializa dispositivos
dhtSensor.setup(DHTPIN,DHTesp::DHT22);
pinMode(espConectado, OUTPUT);
pinMode(wifiConectado, OUTPUT);
pinMode(serverAtivo, OUTPUT);
digitalWrite(espConectado, LOW);
digitalWrite(wifiConectado, LOW);
digitalWrite(serverAtivo, LOW);
delay(100);
Serial.println("Configuração Pronta. ");
digitalWrite(espConectado, HIGH);
WiFi.mode(WIFI_STA);
WiFi.disconnect();
Serial.println("Conectando na rede Wifi");
Serial.println(ssid);
WiFi.begin(ssid, password);
while(WiFi.status() != WL_CONNECTED){
delay(100);
Serial.print(".");
}
Serial.println("");
Serial.println("Wifi conectado");
digitalWrite(wifiConectado, HIGH);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
Serial.print("Mac address: ");
Serial.println(WiFi.macAddress());
Serial.print("Subnet: ");
Serial.println(WiFi.subnetMask());
Serial.print("Gateway IP: ");
Serial.println(WiFi.gatewayIP());
Serial.print("DNS: ");
Serial.println(WiFi.dnsIP());
server.begin();
delay(1000);
digitalWrite(serverAtivo, HIGH);
mensagem = "";
Serial.println("Server conectado");
// inicializa OLED
display.begin(SSD1306_SWITCHCAPVCC,0x3c);
display.setTextSize(1);
display.setTextColor(WHITE);
delay(10);
}
void loop(){
TempAndHumidity data = dhtSensor.getTempAndHumidity();
Serial.println("Temp: " +String(data.temperature, 1)+ "ºC");
Serial.println("Humdity: "+ String(data.humidity,0)+"%");
Serial.println("----");
delay(1000);
display.clearDisplay();
display.setCursor(0,23);
display.print("Temp: "+ String(data.temperature,1)+ "ºC");
display.setCursor(0,32);
display.print("Humidity: " + String(data.humidity, 0)+ "%");
display.setCursor(0,2);
display.print("Rede: " + String(ssid));
display.setCursor(0,10);
display.print("IP: ");
display.setCursor(35,10);
display.print(WiFi.localIP());
display.setCursor(0,17);
display.print("-----------------------");
display.display();
delay(250); Serial.println("Temp: " + String(data.temperature,1)+ "°C");
Serial.println("Humidity: " + String(data.humidity, 0)+ "%");
Serial.println(("----"));
delay(1000);
display.clearDisplay();
display.setCursor(0,23);
display.print("Temp: " + String(data.temperature,1)+"°C");
display.setCursor(0,32);
}