In a previous article we looked at the Heltek WiFi Kit 32 – A look at an ESP32 board with a built in OLED display
The example would scan for networks and display them via the serial port, a better example would be to use the oled display on the board and display any detected networks on it
Parts List
You can pick one of these up for under $9 using the link below, a very good price for a board with these features
Name | Link |
ESP32 WiFi Kit | ESP32 WiFi Kit CP2012 Development Board with 0.96″ OLED Display |
Code
You need to install the u8g2 library, the easiest way is using the library manager
Open Arduino IDE, then Select Sketch
->Include Library
->Manage Libraries...
Search u8g2
and install it
Enter the following into the IDE
// Heltech WiFi Kit 32 Wifi Scanner
#include "WiFi.h"
#include <U8g2lib.h>
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, 16, 15, 4);
void setup()
{
WiFi.mode(WIFI_STA);
// Initialize the graphics library.
u8g2.begin();
u8g2.setFont(u8g2_font_6x10_tf);
u8g2.setFontRefHeightExtendedText();
u8g2.setDrawColor(1);
u8g2.setFontPosTop();
u8g2.setFontDirection(0);
}
void loop()
{
int nNetworkCount = WiFi.scanNetworks();
u8g2.clearBuffer();
// Display networks.
if(nNetworkCount == 0)
{
// No networks found.
u8g2.drawStr(0, 0, "0 networks found.");
}
else
{
char chBuffer[128];
char chEncryption[64];
char chRSSI[64];
char chSSID[64];
sprintf(chBuffer, "%d networks found:", nNetworkCount);
u8g2.drawStr(0, 0, chBuffer);
for(int nNetwork = 0; nNetwork < nNetworkCount; nNetwork ++)
{
// Obtain ssid for this network.
WiFi.SSID(nNetwork).toCharArray(chSSID, 64);
sprintf(chRSSI, "(%d)", WiFi.RSSI(nNetwork));
sprintf(chEncryption, "%s", WiFi.encryptionType(nNetwork) == WIFI_AUTH_OPEN ? " ": "*");
sprintf(chBuffer, "%d: %s %s %s", nNetwork + 1, chSSID, chRSSI, chEncryption);
u8g2.drawStr(0, 8 + ((nNetwork + 1) * 8), chBuffer);
}
}
u8g2.sendBuffer();
delay(2000);
}
Once this uploaded you should see any networks listed on the OLED