#include "WiFi.h"
#include "DHTesp.h"
#include "Wire.h"
#include "Adafruit_GFX.h"
#include "Adafruit_SSD1306.h"
#define espConectado 14
#define wifiConectado 12
#define serverAtivo 13
#define DHTPIN 15
DHTesp dhtSensor;
#define Largura 128
#define Comprimento 64
Adafruit_SSD1306 display (Largura,Comprimento, &Wire, -1);
#define ssid "Wokwi-GUEST"
#define password ""
int status = WL_IDLE_STATUS;
WiFiServer server (80);
int estadoServidor;
String mensagem;
WiFiClient client;
void setup() {
Serial.begin(115200);
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.print("Conectando na rede WiFi");
Serial.println (ssid);
WiFi.begin(ssid,password);
while (WiFi.status () !=WL_CONNECTED)
{
delay (500);
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());
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, 2)+"ºC");
Serial.println("Humidade: "+ String(data.humidity, 1)+"%");
Serial.println("---");
delay(500);
display.clearDisplay();
display.setCursor(0,2);
display.println("Rede: ");
display.setCursor(33,2);
display.print(ssid);
display.setCursor(0,10);
display.println("IP: ");
display.setCursor(35,10);
display.print(WiFi.localIP());
display.setCursor(0,17);
display.println("---------------------");
display.setCursor(0,23);
display.println("Temp: ");
display.setCursor(32,23);
display.print(data.temperature);
display.setCursor(63,23);
display.print("ºC");
display.setCursor(0,32);
display.println("Umidade: ");
display.setCursor(50,32);
display.print(data.humidity);
display.setCursor(88,32);
display.print("%");
display.display();
delay(5000);
Serial.println("Conectado");
digitalWrite(serverAtivo,HIGH);
}