• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Индикация уровня wifi

Доброго времени друзья
Не могу найти в гугле ничего связанного с измерением уровня принимаемого сигнала wifi от точки доступа на esp8266.
Возможно ли это вычислить программно?
Картина такова: самоделка цепляется к роутеру, для отправки данных, но так же имеет экранчик, на котором бы и хотелось в числе прочего мониторить уровень сигнала wifi в виде заветных палочек, как на экране смартфона.
Сильно не бить, только учусь. =)
 

alexlaw

Member
Не могу найти в гугле ничего связанного с измерением уровня принимаемого сигнала wifi от точки доступа на esp8266.
Есть в примере "ScanNetworks".
Сканирует сеть и выводит все сети с уровнем сигнала в "dBm".
Ну а в палочки переводить, тут только дело техники.
Я у себя вывожу на LCD так
Код:
void listNetworks() {
// scan for nearby networks:
  lcd.clear();
  lcd.clear();
  lcd.print("Scan Networks **");
int numSsid = WiFi.scanNetworks();
if (numSsid == -1) {
   lcd.setCursor(0, 1);
   lcd.print("Couldn't wifi");
   while (true);
}

// print the list of networks seen:
  lcd.clear();
  lcd.clear();
  lcd.print("available net:");
  lcd.print(numSsid);
delay(2000);
// print the network number and name for each network found:
for (int thisNet = 0; thisNet < numSsid; thisNet++) {
  lcd.clear();
  lcd.clear();
  lcd.print(thisNet);
  lcd.setCursor(0, 1);
  lcd.print(WiFi.SSID(thisNet));
  delay(1000);
   if (WiFi.SSID(thisNet)==ssid) {
  lcd.clear();
  lcd.clear();
  lcd.print(WiFi.SSID(thisNet));
  lcd.print("-OK");
  lcd.setCursor(0, 1);
  lcd.print("Signal: ");
  lcd.print(WiFi.RSSI(thisNet));
  lcd.print(" dBm");
  //return;
  ESP.restart();  
   }
   if (thisNet==numSsid-1)
   {
  lcd.clear();
  lcd.clear();
  lcd.print("-");
  lcd.print(ssid);
  lcd.print("-");
  lcd.setCursor(0, 1);
  lcd.print("FAIL!!!");   
   }

}
}
Ищу свою сеть ssid и если она есть, то на дисплей вывожу уровень сигнала, ну а если нет, то FAIL
 

pvvx

Активный участник сообщества
Для Arduino стандарта команда WiFi.RSSI().
Если вы подключились к роутеру, то ничего сканировать не надо.
 
Сверху Снизу