What if monitoring your wireless signal quality could be as fun as a classic arcade game? Meet the Silly Space Invaders Dashboard (SSID), an IoT device that helps you defend your wireless galaxy from the aliens! On this weird dashboard, you'll see a fleet of cosmic invaders, each symbolizing an access point. The closer they are to the bottom of the display, the stronger their signal is.
You can use it as an IoT desktop gadget or turn it into a quirky smartwatch to explore the cosmic frontiers of connectivity.
ComponentsThe visual design is inspired by retro games, like Space Invaders,Galaxian,Galaga and other cosmic shooters. Initially, I was wondering whether one could freely use the original assets, but apparently, Taito Corporation does not want us to use their monsters in our fun projects without their permission (correct me if I am wrong). So I designed a custom set of monochrome sprites and movement patterns.
ImplementationThere are two key subroutines that handle all the logic.
The scanResults() function processes the revealed wireless networks. It divides them into groups by their signal strength (RSSI). Each group corresponds to a row of invaders. For each access point, it creates an instance of the Invader class, which stores the SSID, character appearance, and coordinates. If an access point is not encrypted, it has a unique appearance regardless of signal strength.
The update_oled() function renders one frame of animation. It draws the signal indicator to the left and the AP names at the upper edge of the display. They are usually shortened due to limited space. The characters move randomly in the center, and sometimes you will notice a laser cannon at the bottom, which points to a free Wi-Fi access point. There is also a "radar" circle animation, just for fun.
Preparing the EnvironmentGo to https://platformio.org/platformio-ide and follow the installation instructions.
In PlatformIO IDE click "Clone GIT repository" and paste the following URL:
https://github.com/arduinocelentano/ssid
PlatformIO should automatically download the project and the libraries it depends on.
Tuning the CodeOpen the config.h file and set up the settings if needed. In particular, you should change OLED_SDA and OLED_SCL according to your board. I have provided detailed comments on the other options you might want to tune.
Building and Uploading the FirmwarePress 🗸Platformio:Build and then →Platformio:Upload button to upload the code.
Comments
Please log in or sign up to comment.