This is an old revision of the document!
This project is a handheld Wi-Fi analyzer based on an ESP32 microcontroller. It scans nearby Wi-Fi networks, displays their signal strength, channel usage, and other technical details on a built-in screen. Users can interact with the device using physical controls to navigate and inspect network data.
Its purpose is to be a portable tool for users to understand the wireless environment: troubleshoot issues, find optimal channels, detect signal strength, monitor traffic.
The main component is the ESP32 microcontroller development board with built-in Wifi. The fast processor, low battery use and number of GPIOs make it a good choice for this project.
To show information to the user, this project uses a 2.8” TFT SPI LCD display based on the ST7789 driver. It has a resolution of 480×320 full color pixels. The decent size and resolution makes it a great for display text and graphics.
For user input, I chose a rotary encoder module along with 2 buttons. The encoder makes it faster to move around menus than traditional buttons (scrolling, for example), and thus the 2 buttons I use are for “enter” and “back”.
Since this is a handheld device, it uses a battery along with a charging module. The battery is a 750mAh 3.7V LiPo battery connected to a TP4056 charging module with protection. Since the 3.7V are not enough to power the ESP32 and display, I use a 5V 1A boost converter to raise the voltage. USB power is also an alternative to the battery.
On the software overview side, the code is organized into modules, each reporting to the Main module. The Wifi Scanner module handles scanning for networks, reading and parsing packets, storing network and channel info etc. The Battery Info Module is responsible for collecting information about the battery level. The Display Communication Module draws all the information provided by the Main Module to the screen. The Input module monitors changes to the encoder and buttons and reports to Main Module. Logging module just stores some information about the state of the entire application and can be turned off.
Hardware Used:
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.