A MicroPython-based firmware to collect MAC addresses of access points at specific locations, so you can generate your personal wifi location database.
You need some kind of mobile access point (iPhone/Android, VoCore, 4G router, etc.) to start a scan and an active internet uplink to get the current time via NTP (it will work without NTP but won't include correct timestamps).
This has been tested with ESP8266 board Tinchen
made by @ubahnverleih, but it should work with any ESP8266 or ESP32 board, maybe even other MCUs. Please try and submit PRs ;-)
- flash your ESP with MicroPython
- edit
config.py
to your needs- set
AP_NAME
/AP_PASS
to the SSID and password of your hotspot - if your hotspot is slow to connect, increase the
WIFI_CONNECT_TIMEOUT
- set
- copy
main.py
andconfig.py
to your ESP, for example with rshell
- enable your hotspot
- power on the ESP
- connect your phone or notebook to the hotspot
- figure out the IP address of your ESP
- with a router: there is probably a webinterface which lists all connected devices and their IP addresses
- with an iOS or Android Device: use HE Network Tools, under
ARP / NDP
- with a notebook:
- query your ARP table (Google:
show arp table $yourOperatingSystem
) - scan the network with nmap:
nmap -sP ip.of.your.notebook/24
- query your ARP table (Google:
- open
http://ip.of.your.esp/SomeNameForYourScan
in a browser/with curl/etc. - instructions how to stop are shown - the ESP will wake up every 3 seconds, scan for wifis and save them in a file - Caution: this requires a lot of power!
- copy the files from your ESP, for example with rshell