This is an old revision of the document!


Handheld Wifi Analyzer

Introduction

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.

General description

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 Design

Hardware Used:

  • ESP32 with built-in WiFi
  • ST7789 2.8” TFT SPI LCD 240xRGBx320
  • 750mAh 3.7V LiPo battery
  • TP4056 Charging Module
  • Miniature 5V 1A boost converter
  • KY-40 Encoder Module with button
  • 1 push button
  • x3 breadboards
  • Jumper wires

Software Design

Descrierea codului aplicaţiei (firmware):

  • mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR)
  • librării şi surse 3rd-party (e.g. Procyon AVRlib)
  • algoritmi şi structuri pe care plănuiţi să le implementaţi
  • (etapa 3) surse şi funcţii implementate

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

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.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2025/avaduva/vlad_andrei.chira.1748106478.txt.gz · Last modified: 2025/05/24 20:07 by vlad_andrei.chira
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0