Search code examples
esp32

ESP 32 as an Access Point and a Local server: How can I capture the RSSI and MAC address?


I am trying to capture the RSSI and MAC address of connected peers. I am getting IP at the moment when a request is sent from a connected ESP 32. But the MAC address code which I picked up off the net is showing blank and the RSSI is showing 0. How can I get these values?

#include <WiFi.h>

String  ClientRequest;

WiFiServer server(80);

WiFiClient client;

String myresultat;

String ReadIncomingRequest(){
while(client.available()) {
ClientRequest = (client.readStringUntil('\r'));
 if ((ClientRequest.indexOf("HTTP/1.1")>0)&&(ClientRequest.indexOf("/favicon.ico")<0)){
myresultat = ClientRequest;
}
}
return myresultat;
}

void setup()
{
ClientRequest = "";

Serial.begin(9600);

WiFi.disconnect();
delay(3000);
Serial.println("START");

WiFi.softAP("TREADSAFE-TRAFFIC-CONTROL","#123459876!");



Serial.println("THE IP OF THE ACCESS POINT IS:");
Serial.println((WiFi.softAPIP()));

Serial.println("Your IP is");
Serial.println((WiFi.localIP()));
Serial.println("..........................................");
server.begin();

}


void loop()
{

 
    Serial.println("THE NUMBER OF CONNECTED STATIONS IS:");
    Serial.println((WiFi.softAPgetStationNum()));
    delay(5000);
    client = server.available();
    if (!client) { return; }
    while(!client.available()){  delay(1); }
    ClientRequest = (ReadIncomingRequest());
    client.flush();
     
    Serial.println("HTTP Request from :");
    Serial.println((client.remoteIP()));
    Serial.println((WiFi.RSSI()));
    Serial.println((WiFi.BSSIDstr()));
    Serial.println("Original Request:");
    Serial.println(ClientRequest);
    ClientRequest.remove(0, 5);
    ClientRequest.remove(ClientRequest.length()-9,9);
    Serial.println("Request after clearing:");
    Serial.println(ClientRequest);
   

}

Solution

  • Figured it out, implemented this code from the client end.

    void loop() {

    Serial.println((WiFi.RSSI())); Serial.println((WiFi.macAddress()));

    }