Whiffy
Whiffy is a portable Wifi signal strength indicator. The strength of wifi signal(s) are displayed by an external array of LEDs (Red to Green) while additional access point information is displayed on the uLCD. The device scans access points and has two modes of operation - "connected" access point mode and "all" access point mode. Connected mode only shows signal strength pertaining to the access point which the module is currently connected. All mode displays an average of all detected access point strengths.
Hardware
Components:
- mbed LPC1768
- uLCD-144-G2
- ESP8266 Wi-Fi Chip
- 3x RGB LEDs
- Push Button
- Switch
Connections:
mbed | uLCD | RGB LED 1 | RGB LED 2 | Pushbutton | Switch | ESP8266 | External Power Supply | |
---|---|---|---|---|---|---|---|---|
gnd | gnd (7) | 2 | 2 | 3 | gnd | gnd | ||
VOUT | Vcc | 1 | ||||||
VU | +5V (1) | |||||||
p8 | RES (9) | |||||||
p9 | RX (3) | |||||||
p10 | TX (5) | |||||||
p15 | X | |||||||
p16 | 2 | |||||||
p21 | 1 | |||||||
p22 | 3 | |||||||
p23 | 1 | |||||||
p24 | 3 | |||||||
p26 | RESET | |||||||
p27 | TX | |||||||
p28 | RX | |||||||
VCC | 3.3V | |||||||
CH_PD | 3.3V |
The mbed during testing was shown to not have enough of a supply to power the wifi chip. Because of this we used an external power supply where a down-stepper or something else with the 5V VU on the mbed might have worked.
Classes & Code Structure
Whiffy
Top level controller object with single member function update() which should only be run once. This function interfaces data between classes WifiControl, APVectorBuilder, and Reporter.
WifiControl & APVectorBuilder
WifiControl is the top level class that is responsible for scanning and returning an unparsed string containing SSIDs, signal strengths, and other unused information. This string is then passed (by Whiffy object) to APVectorBuilder whose function is to parse the string of raw access point data and return a C++ vector containing AccessPoint objects. This list is then given to the Reporter object as a parameter in a call to Reporter's update(vector<AccessPoint>, bool mode) function. The "mode" switch is also read at this level and passed as a parameter.
Reporter
Reporter is responsible for controlling the LCD and LEDs with strength and mode information. LCD and LEDs are initialized on instantiation and await a call to Reporter's update function. When update is called, Reporter uses LCDControl and LEDControl objects to output signal and mode information.
LCDControl & LEDControl
These classes contain functions to update the mode & strength LEDs as well as display mode & strength information on the LCD display.
Import programWhiffy
portable wifi info displayer
Configuration Mode
Connected Mode
Average Mode
Team Members
Please log in to post comments.