#include "WiFi.h"
// Подключаем библиотеку для работы с LCD
#include <LiquidCrystal.h>
#include <Bounce2.h>
// Создаем объект
Bounce debouncer = Bounce();
int lastButton = LOW;
int curButton = LOW;
const int button = 3;
LiquidCrystal lcd(12, 14, 27, 26, 25, 33);
void setup() {
Serial.begin(115200);
lcd.begin(16, 2);
lcd.clear();
pinMode(button, INPUT_PULLUP);
// Даем бибилотеке знать, к какому пину мы подключили кнопку
debouncer.attach(button);
debouncer.interval(5); // Интервал, в течение которого мы не буем получать значения с пина
}
int networkNumber = 0;
bool isFirstScan = true;
int countNetworks = 0;
void loop()
{
if (isFirstScan)
{
Serial.println("Scanning networks...");
countNetworks = WiFi.scanNetworks();
if (countNetworks == 0) {
Serial.println("No networks found.");
}
else
{
Serial.print("Count networks: ");
Serial.println(countNetworks);
}
isFirstScan = !isFirstScan;
}
if (!isFirstScan)
{
Serial.println(WiFi.SSID(networkNumber));
Serial.println(WiFi.RSSI(networkNumber));
lcd.setCursor(0, 0);
lcd.print(WiFi.SSID(networkNumber));
lcd.setCursor(0, 1);
lcd.print(WiFi.RSSI(networkNumber));
debouncer.update();
// Получаем значение кнопки
int curButton = debouncer.read();
if (curButton == LOW && lastButton == HIGH)
{
++networkNumber;
if (networkNumber > countNetworks)
{
networkNumber = 0;
}
}
lastButton = curButton;
delay(200);
lcd.clear();
}
}