#include <WiFi.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd = LiquidCrystal_I2C(0x27, 16, 2);
const char* ssid = "Wokwi-GUEST";
const char* password = "";
int currButton = LOW;
int lastButton = LOW;
byte count = 0;
void setup() {
Serial.begin(115200);
lcd.init();
lcd.backlight();
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(1000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Connecting...");
}
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Connected!!!");
pinMode(2, INPUT);
digitalWrite(2, HIGH);
}
int Debounce(int last){
int current = digitalRead(2);
if(last != current){
delay(5);
current = digitalRead(2);
}
return current;
}
void Print(){
lcd.clear();
switch (count){
case 0:
lcd.setCursor(0, 0); lcd.print("IP address: ");
lcd.setCursor(0, 1); lcd.print(WiFi.localIP());
Serial.print("IP address: "); Serial.println(WiFi.localIP());
break;
case 1:
lcd.setCursor(0, 0); lcd.print("Hostname: ");
lcd.setCursor(0, 1); lcd.print(WiFi.getHostname());
Serial.print("Hostname: "); Serial.println(WiFi.getHostname());
break;
case 2:
lcd.setCursor(0, 0); lcd.print("ESP Mac Address: ");
lcd.setCursor(0, 1); lcd.print(WiFi.macAddress());
Serial.print("ESP Mac Address: "); Serial.println(WiFi.macAddress());
break;
case 3:
lcd.setCursor(0, 0); lcd.print("Gateway IP: ");
lcd.setCursor(0, 1); lcd.print(WiFi.gatewayIP());
Serial.print("Gateway IP: "); Serial.println(WiFi.gatewayIP());
break;
case 4:
lcd.setCursor(0, 0); lcd.print("DNS: ");
lcd.setCursor(0, 1); lcd.print(WiFi.dnsIP());
Serial.print("DNS: "); Serial.println(WiFi.dnsIP());
count = -1;
break;
default:
break;
}
count++;
}
void Exec(){
currButton = Debounce(lastButton);
if(lastButton == HIGH && currButton == LOW){
Print();
}
lastButton = currButton;
}
void loop() {
Exec();
}