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);
}
Figured it out, implemented this code from the client end.
void loop() {
Serial.println((WiFi.RSSI())); Serial.println((WiFi.macAddress()));
}