Skip to content

Latest commit

 

History

History
109 lines (79 loc) · 2.53 KB

File metadata and controls

109 lines (79 loc) · 2.53 KB

ESP32-Mapper WiFi

CI Platform License

ESP32-Mapper WiFi is the companion firmware for IOS-Mapper WiFi.

It provides command-driven nearby Wi-Fi scan collection over a local HTTP API exposed from the ESP32 access point.

This project is intended to be free to use for research, education, diagnostics, and integration testing.

Related Project

Companion mobile app:

Features

  • AP+STA startup mode for local client connectivity.
  • Command-driven scan lifecycle (start / stop).
  • Configurable scan constraints (interval_ms, min_rssi, max_results).
  • JSON API with CORS support.
  • Device metadata in API responses (device ID, firmware, scan network types).
  • In-memory cache of latest filtered scan results.

Default Access Point Settings

  • SSID: WIFI-MAPPER-SCANNER
  • Password: 12345678
  • Host/IP: 192.168.4.1
  • Port: 80

HTTP API

GET /status

Returns scanner health and metadata.

Key fields:

  • ok
  • device_id
  • firmware
  • scan_network_types
  • in_progress
  • last_command
  • last_command_at_ms
  • last_scan_finished_ms
  • last_scan_count
  • uptime_ms
  • ip

POST /configure

Applies scan configuration.

Body:

{
  "interval_ms": 5000,
  "min_rssi": -88,
  "max_results": 80
}

POST /scan/start

Starts asynchronous scan execution.

POST /scan/stop

Stops active scan execution.

GET /scan/results

Returns latest scan payload with network records:

  • ssid
  • bssid
  • rssi
  • channel
  • frequency_mhz
  • security
  • encryption

Build and Flash

  1. Install PlatformIO.
  2. Build:
    • pio run
  3. Flash:
    • pio run -t upload
  4. Monitor:
    • pio device monitor

Refactored Code Layout

  • src/main.cpp - minimal firmware entrypoint.
  • include/scanner_server.h - scanner server declarations and state model.
  • src/scanner_server.cpp - HTTP routes, scan loop integration, JSON responses.

Additional docs:

Free Use Notice

This project is intended to be freely usable. If redistributed, include a clear license and attribution policy.