Next TTC displays when the next TTC vehicles will be arriving at a given stop. 2 x twelve MAX7219 LED displays are attached to a wifi-enabled ESP8266 microcontroller.
- 24 MAX7219 LED Displays (2xCAD$16)
- Right angled header pins (CAD$10)
- ESP8266 Microcontroller (CAD$12)
- KeeYees breakout board (CAD$15)
- Jumper wires (CAD$13)
- MicroUSB to electrical outlet
The MAX7219 displays have to be soldered together with the help of the header pins. See this video for more information. Instead of buying male-to-male header pins like in the video, you could buy male-to-female right angled pins. Not only does this require less soldering, but it also lets you more easily take the pieces apart.
If you'd prefer not to solder, I'd look into a display like the P10. It has benefit of different colours but note that it's also considerably more expensive.
Additionally, for the Canadians, the KeeYee microcontroller I've linked is too wide to fit on a traditional breadboard. You could look into breaking one into two or buy the breakout development board I've linked above to make things easy. From pictures from reviews, the American one does not seem to have this problem.
This circuit uses 2 x twelve MAX7219 display set up in parallel. Display 1 is the first row of twelve and shows the route title, Display 2 is the second row of twelve and shows the predictions.
| Display | LED Connection | Microcontroller Label |
|---|---|---|
| Display 1 | DIN | D7 (GPIO13) |
| Display 1 | CLK | D5 (GPIO14) |
| Display 1 | CS | D8 (GPIO15) |
| Display 2 | DIN | D2 (GPIO4) |
| Display 2 | CLK | D1 (GPIO5) |
| Display 2 | CS | D3 (GPIO0) |
The displays could share the same VCC, GND, DIN and CLK. You would need to strip the wires and solder them together to form a Y-shaped jumper wire.
I would recommend watching this video, which walks you through:
- Installing the appropriate driver for the microcontroller
- Adding the following URL to Additional Boards Manager for the board to be recognized by the IDE: http://arduino.esp8266.com/stable/package_esp8266com_index.json
const char* ssid = "";
const char* password = "";
String stopsUrlString = "&stops=504|1159&stops=501|10272";
int delayBetweenPredictions = 20000;
- Add your wifi credentials
- Add the stops in format
&stops=<routeTag>|<stopTag>. See command forpredictionsForMultiStopsin TTC API documentation for more info. - Change the amount of time before displaying the next route prediction (optional)
