#include "WiFi.h"
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd = LiquidCrystal_I2C(0x27, 16, 2);
const int button = 15;
int selected = 0;
int n = 2;
//char* Example_SSID[3] = {"Test NET", "WOKWEB", "ERR"};
//char* Example_RSSI[3] = {"000", "111", "ERR"};
bool updated = true;
boolean lBut = LOW;
boolean cBut = LOW;
boolean Debounce(boolean last){
boolean current = digitalRead(button);
if(last != current){
delay(5);
current = digitalRead(button);
//return current;
}
return current;
}
void ButtonHandler(){
cBut = Debounce(lBut);
if(lBut == LOW && cBut == HIGH){
updated = true;
selected++;
if(selected == n){
selected = 0;
}
}
lBut = cBut;
}
void setup() {
Serial.begin(115200);
Serial.println("Initializing WiFi...");
WiFi.mode(WIFI_STA);
Serial.println("Setup done!");
lcd.init();
lcd.backlight();
lcd.print("Scanning...");
n = WiFi.scanNetworks();
pinMode(button, INPUT);
}
void loop() {
ButtonHandler();
if (n == 0) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("No networks");
lcd.setCursor(0, 1);
lcd.print("found!");
}
else {
if(updated){
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(n); lcd.print(" networks found");
lcd.setCursor(0, 1);
//lcd.print(Example_SSID[selected]); lcd.print(", "); lcd.print(Example_RSSI[selected]);
lcd.print(WiFi.SSID(selected)); lcd.print(", "); lcd.print(WiFi.RSSI(selected));
updated = false;
}
}
}