#include <LiquidCrystal_I2C.h>
#include "WiFi.h"
#include "button.h"
#define pin_btn 12
LiquidCrystal_I2C LCD = LiquidCrystal_I2C(0x27, 20, 4);
Button btn_button(pin_btn);
int8_t networks_num = 0;
int8_t network_ptr = 0;
void setup()
{
Serial.begin(115200);
LCD.init();
LCD.backlight();
LCD.setCursor(0, 0);
LCD.print("Scan networks...");
networks_num = WiFi.scanNetworks();
LCD.clear();
LCD.setCursor(0, 0);
if (networks_num == 0)
{
LCD.print("No networks found");
}
else if (networks_num == 1)
{
LCD.print(networks_num);
LCD.print(" network found");
}
else
{
LCD.print(networks_num);
LCD.print(" networks found");
}
}
void loop()
{
check_button();
}
void check_button()
{
if (btn_button.readButton())
{
if (networks_num == 0)
{
return;
}
LCD.clear();
LCD.setCursor(0, 0);
LCD.print(WiFi.SSID(network_ptr));
Serial.print(WiFi.SSID(network_ptr));
Serial.print(" ");
LCD.setCursor(0, 1);
LCD.print(WiFi.RSSI(network_ptr));
Serial.println(WiFi.RSSI(network_ptr));
++network_ptr;
if (network_ptr >= networks_num)
{
network_ptr = 0;
}
}
}