widapro / wledPixel

Dot matrix panel management
MIT License
66 stars 12 forks source link

WiFi RSSI for giggles #55

Closed Grey-Lancaster closed 7 months ago

Grey-Lancaster commented 8 months ago

I finally found a board that REQUIRES an external antenna instead of trying to move that silly little resistor.

I stuck some code in that does seem to serial print the RSSI I just stuck it in the NTP thing

`void ntpUpdateTime() {
  if (timeClient.update()) {
    previousNTPsyncMillis = currentMillis;
    Serial.print(F("\nNTP time synchronized successfully\n"));
    int wifiRSSI = WiFi.RSSI(); // add wifi rsi
    Serial.print("Signal Strength:");
    Serial.println(String(wifiRSSI) + " dBm");
  } else {
    previousNTPsyncMillis = -10000000;
    timeClient.forceUpdate();
    delay(1000);
    Serial.print(F("\nERROR: NTP time synchronization failed"));`

NTP time synchronized successfully Signal Strength:-52 dBm

and I added it to the settings page

`                <li class="list-group-item d-flex justify-content-between lh-sm">
                    <div>
                      <h6 class="my-0">ds18b20 Temperature:</h6>
                    </div>
                    <span class="text-muted">%ds18b20Temp%</span>
                </li>
                <li class="list-group-item d-flex justify-content-between lh-sm">
                    <div>
                      <h6 class="my-0">ESP RSSI:</h6>
                    </div>
                    <span class="text-muted">%wifiRSSI%</span>
                </li>  `

But I a missing

` Return values for variables in html page
String processor(const String& var){
  char buffer [10];`

image

Grey-Lancaster commented 7 months ago
// Return values for variables in html page
String processor(const String& var){
  char buffer [10];
  if(var == "wifiRSSI")                        return String(WiFi.RSSI()); //added
  if(var == F("workModeZone0"))                return zones[0].workMode;
  if(var == F("workModeZone1"))                return zones[1].workMode;

image

Grey-Lancaster commented 7 months ago

Thanks again for the great work here ! @widapro

Grey-Lancaster commented 7 months ago
/// GLOBAL ///
const char* firmwareVer = "2.7.1";
int nLoop = 0;
bool restartESP         = false;
bool allTestsFinish     = false;
bool initConfig = false;
char const *wifiAPpassword  = "12345678";
unsigned long currentMillis;
unsigned long previousMillis = 0;
int wifiRSSI = WiFi.RSSI(); // add wifi rsi
    Serial.println(WiFi.subnetMask().toString().c_str());
    Serial.print(F("DNS: "));
    Serial.println(WiFi.dnsIP().toString().c_str());
    Serial.print("Signal Strength:");
    Serial.println(String(wifiRSSI) + " dBm");
    Serial.print(F("HostName: "));
    Serial.println(MQTTGlobalPrefix.c_str());
    Serial.print(F("MQTT Device Prefix: "));
    Serial.println(MQTTGlobalPrefix.c_str());
  }

// Return values for variables in html page
String processor(const String& var){
  char buffer [10];
  if(var == "wifiRSSI")                        return String(WiFi.RSSI()); //added
  if(var == F("workModeZone0"))                return zones[0].workMode;
  if(var == F("workModeZone1"))                return zones[1].workMode;
  if(var == F("workModeZone2"))                return zones[2].workMode;

settingspage.h

                </li>
                <li class="list-group-item d-flex justify-content-between lh-sm">
                    <div>
                      <h6 class="my-0">ds18b20 Temperature:</h6>
                    </div>
                    <span class="text-muted">%ds18b20Temp%</span>
                </li>
                <li class="list-group-item d-flex justify-content-between lh-sm">
                    <div>
                      <h6 class="my-0">Wi-Fi RSSI:</h6>
                    </div>
                    <span class="text-muted">%wifiRSSI%</span>
                </li>                

              </ul>