Court Screens
The squash club has 5 courts and were looking for a way to display the court booking information outside each court.
Court booking information is completed on-line using myCourts.
MyCourts does not provide an API or other way to cleanly access the days court booking information so it was necessary to grab the webpage and parse it for the data.
We wrote a very small web service which connected to MyCourts on a regular timeframe and collects the data. It then processes it and caches it as a single JSON file ready for the court displays to pull.
This method has many advantages
reduce load on MyCourts (only one system is pulling the data every 5 minutes or so)
All the data processing to get the data is completed once.
Client screens can poll for the static JSON file very quickly with little overhead.
The screens are 7" LCDs with a ESP32 microprocessor and WiFi in them. They join the club WiFi to reach out to the server hosting the JSON file for updates.
All the screens run the same code, on boot they look for and SD card with a configuration file.
This configuration file contains
WIFI credentials
URL for the JSON file
court number
Display on and Off times
On boot this config file is saved to the ESP32 after which the SD card at then be removed.