An ESP8266 will control a neopixel ring (metro line), 7-segment LED (arrival time), and 20x4 LCD screen (station updates).
An Adafruit Huzzah programmed with the Arduino Software using and FTDI cable will attempt to connect to the wifi network specified in the code. If for some reason it does not connect, the ESP8266 CPU will restart and continue trying. Once it connects to the wifi network, it will attempt to connect to WMATA's API "api.wmata.com" using a subscription key. If successful, it will look for the station information and then based on what if available, display the train arrival time and station information.
To see the most recent code update visit, https://github.com/Bleschke/WMATA-ESP8266-Metro-Status
Project Breakdown:
- Neopixel Ring
- Displays Metro Line
- RD - RED
- OR - ORANGE
- YL - YELLOW
- GR - GREEN
- BL - BLUE
- SV - SILVER
- Fades in-out upon arrival (1-3 min)
- Sparkle flash upon boarding (0-1 min)
- Displays Metro Line
- 7-Segment LED
- Displays arrival time (minutes)
- arr - arriving
- brd - boarding
- oos - out of service
- no - no passenger
- na - metro has no data (null return from api call)
- 20x4 LCD
- Displays station updates
- LN - Line
- CAR - Number of cars on train
- DEST - Destination station
- MIN - Minutes until arrival
- Displays station updates