• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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().
Если вы подключились к роутеру, то ничего сканировать не надо.
 
Сверху Снизу