Promiscuous Leds
Ever wonder about all the WiFi around you ? This simple display will graphically show you the surrounding WiFi users. This device continuously scans the local area WiFi channels in promiscuous mode, looks at the headers & tosses the payloads( a bit like reading the envelope but not opening it). We can then grab a list of who is sending & display some information.
Since we don't want to creep people out too much we only display the lower three bytes of the senders MAC (which is a six byte number) the top bytes are used for manufacture information so the lower 3 tend to be random enough to get a pretty colors(the program further reduces this to 5-6-5 color code) . There are 13channels in N.A. WiFi this is mapped across 16 columns and we make the row signal strength mapped from -30db to -100db. Having the color mapped against the channel & signal would make the display static & we couldn't know when a signal was moving in or out, decreasing or increasing so we set the display to do a lossy blur so any signal fades to black before being scanned again.
Supplies
- ESP32 -Wrover-B
- 16x16 led array ws2812b
- level shifter
- 220uf 16V
- 2.1mm female jack
- 5v 1-3A supply
- Optional: header strip, Dupont female wires , translucent plastic
Componant Choices & Putting It Together
The level shifter i used was convenient - & the first one my hand hit / almost any 3->5 volt upshifter or bidirectional level shifter could be used. In retrospect, I used one wire less with this one since it had its own regulator.
I used a ESP 32-Wrover-b because I've had better luck integrating with external libraries ( I did try esp8266 but wouldn't compile ).
I utilized the LED outgoing connector to attach the level shifter to LED input.
Power must be a regulated 5v going to the panel with the capacitor on the input to prevent surges
- USB power on the ESP could not handle the current-
So with only 8wires it can be up & functional *(9wires if level shifter needs +3.3 v)
- ESP pin 4 -> level shifter input (3.3v side)
- ESP Gnd -> level shifter Gnd
ESP 5v -> level shifter 5Vdc
- level shifter output (5v side) to LED panel Data IN
level shifter Gnd to LED panel Gnd
level shifter 5V to LED panel 5v
LED panel 5v & Capacitor & 2.1mm jack
LED panel Gnd & Capacitor & 2.1mm jack
Software
The code is based on ESP32-WiFi-Sniffer which in turn is based on the work of Ćukasz Podkalicki -
with further inspiration from FastLED examples from Kriegsman
I placed it all in a 3d printed case with a small piece of 1/8" translucent acrylic. IMO it worked best when the LEDs were ~40mm from the plastic
Code & case source:
https://github.com/ralphnev/promiscuousLeds