First let me say that I have no relationship to Espressif/ESP32 or the seller of that ESP32 OLED module or Raspberry. I am just thrilled of the inhouse Wifi working distance between ESP32 and Pi ZeroW, that is why I document what I found here. Find the new Arduino sketch for the new youtube video below:
As with a previous video where I walked the 55m youth hostel corridor and recorded ESP32 OLED display
the new OLED screen has an action indicator that shows each update in the sketch loop(). New is bottom right continuous display of clients connected to ESP32 AP (I tested with laptop connecting to the AP and 2 got displayed).
In Böblingen/Germany IBM lab we have >20 connected buildings, and I used the longest straight line basement corridor I could find. To my surprise the 170m (again measured with Gmaps pedometer) of that corridor were not enough to see any Wifi connectivity issues!
Link quality was in 30-33/70 range, and signal level was in -(77-80)dBm range!

(I always had the plan to use the very long straight basement corridors of IBM Böblingen lab, but the plan was to do so for max. speed measurements of my fast driving autonomous robots)
Hermann.
/*
* Based on BasicHTTPClient.ino
* Instead of connecting ESP32 to AP, be one itself (softAP)
* Use SSD1306 lib for Lolin32 OLED display output
* https://www.banggood.com/search/lolin-esp32.html
*/
#include <Arduino.h>
#include <WiFi.h>
#include <WiFiMulti.h>
#include <HTTPClient.h>
#include "SSD1306.h"
WiFiMulti wifiMulti;
SSD1306 display(0x3c, 5, 4);
int pos1=0,pos0=0;
#define LINE(i) \
display.setColor(INVERSE); \
display.drawVerticalLine(pos##i, DISPLAY_HEIGHT-8-10*i, 8); \
pos##i = (++pos##i % 100); \
display.setColor(WHITE); \
display.display()
#define DRAW1(s) \
display.setColor(BLACK); \
display.fillRect(112,48,16,16); \
display.setTextAlignment(TEXT_ALIGN_LEFT); \
display.setColor(WHITE); \
display.drawString(112, 48, s); \
display.display()
#define DRAW(s) \
display.clear(); \
display.setTextAlignment(TEXT_ALIGN_CENTER_BOTH); \
display.drawString(DISPLAY_WIDTH/2, DISPLAY_HEIGHT/2, s); \
display.display()
void setup() {
//wifiMulti.addAP("ssid", "password");
WiFi.softAP("MyESP32AP", "testpassword");
display.init();
display.flipScreenVertically();
display.setContrast(255);
display.setFont(ArialMT_Plain_16);
display.setTextAlignment(TEXT_ALIGN_CENTER_BOTH);
DRAW("waiting");
while (!WiFi.softAPgetStationNum()) delay(1000);
DRAW(String(WiFi.softAPgetStationNum()));
}
void loop() {
if (WiFi.softAPgetStationNum()) {
HTTPClient http;
http.setTimeout(800);
http.begin("http://192.168.4.2/wifi"); //HTTP
LINE(1);
int httpCode = http.GET();
if(httpCode == HTTP_CODE_OK) {
String payload = http.getString();
DRAW(payload);
} else {
LINE(0);
}
http.end();
}
DRAW1(String(WiFi.softAPgetStationNum()));
delay(200);
}