ESP8266 как перевести RSSI сигнал в проценты.

Изначально функция WiFi.RSSI() возвращает сигнал в dBm. В данном посте расскажу способ перевода dBm в проценты для удобного восприятия. Автор данного способа Ahmad Shamshiri из Ajax, Ontario, Canada.

https://robojax.com/learn/arduino/?vid=robojax_ESP8266_wifi_scan_LCD
https://youtu.be/HYMnCUtNMnw

Итак, добавляем две переменных и функцию. Результатом вызова функции dBmtoPercentage(WiFi.RSSI()) будет значение int (проценты)

const int RSSI_MAX =-50;// define maximum strength of signal in dBmconst int 
RSSI_MIN =-100;// define minimum strength of signal in dBm 

int dBmtoPercentage(int dBm)
{
  int quality;
    if(dBm <= RSSI_MIN)
    {
        quality = 0;
    }
    else if(dBm >= RSSI_MAX)
    {  
        quality = 100;
    }
    else
    {
        quality = 2 * (dBm + 100);
   }

     return quality;
}//dBmtoPercentage

p.s. случайно нашел интересный труд под названием Estimate distance measurement using NodeMCU ESP8266 based on RSSI technique
Выложил в файловый архив (Books\IT Books\IEEECAMApaper.pdf), кому интересно почитайте ребята неслабо так поковыряли этот вопрос.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *