diff options
Diffstat (limited to '_projects/etlas')
| -rw-r--r-- | _projects/etlas/index.md | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/_projects/etlas/index.md b/_projects/etlas/index.md deleted file mode 100644 index 3729d5d..0000000 --- a/_projects/etlas/index.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: "Etlas: e-paper display for news, stocks, and the weather" -date: 2024-09-05T00:00:00+08:00 -author: W. D. Sadeep Madurange -thumbnail: dash.jpg ---- - -Etlas is a news, stock market, and weather tracker powered by an ESP32 NodeMCU -D1, featuring a 7.5-inch {{< link src="https://www.waveshare.com/" -class="external" target="_blank" rel="noopener noreferrer">}}Waveshare{{< -/link>}} e-paper display and a DHT22 sensor module. - -<table style="border: none;"> - <tr style="border: none;"> - <td style="border: none;"><img src="dash.jpg" alt="front" style="width: 100%"></td> - <td style="border: none;"><img src="pcb.jpg" alt="back" style="width: 100%"></td> - </tr> -</table> - -The top left panel displays the end-of-day stock prices from the {{< link -src="https://polygon.io/" class="external" target="_blank" -rel="noopener noreferrer" >}}Polygon.io{{</link >}} API, relayed through my own -FastCGI-wrapped Flask app hosted on a VPS. The stock symbols can be configured -through the Flask app's application settings. The server.fcgi script enclosed -in the tarball at the end of the page contains the Flask app. - -The following diagram outlines this system architecture. - - - -Unlike my [e-reader](/projects/e-reader), which worked with raster images, -Etlas downloads time series data as CSV and computes the price curves on the -ESP32. - -The more prominent panel on the right of the e-paper display shows local -(Singapore) and world news from the {{< link -src="https://www.channelnewsasia.com/" class="external" target="_blank" -rel="noopener noreferrer" >}}Channel News Asia{{< /link>}} RSS feed. The MCU -downloads and parses XML data from the RSS feed directly before rendering it to -the display. Although I did it this way to avoid writing server code, it limits -the feeds from which Etlas can receive data. In a future version, I will relay -the RSS feed through a server (like the stock prices) to make it more flexible. - -The bottom panels (middle and right) display the temperature and relative -humidity from a DHT22 sensor. The DHT22 driver, arguably the most interesting -part of the software, reads real-time sensor data by comparing relative pulse -widths. The pulses themselves are too quick for the ESP32 to reliably measure -directly. I ported {{< link src="https://github.com/Fonger/ESP8266-RTOS-DHT" -class="external" target="_blank" rel="noopener noreferrer" >}}this{{< /link>}} -implementation for ESP8266 modules to my ESP32. All credit for the algorithm -belongs to them. - -Much of the heavy lifting of acquiring, interpreting, and rendering data from -different data sources is performed on the microcontroller using less than 512 -KB of memory. The embedded software that makes that possible is written in C -using the ESP-IDF v5.2.1. My e-paper display driver is a port of Waveshare {{< -link src="https://github.com/waveshareteam/e-Paper" class="external" -target="_blank" rel="noopener noreferrer" >}}examples{{< /link>}} for Arduino -and STM32 platforms. - -I've been using Etlas daily (for a couple of hours on weekdays and all day on -weekends) since August 2024. As of October 2025, it's been running reliably for -over a year. If you are interested in an e-paper display like this, drop me an -email at the address on my home page. - -Files: [source.tar.gz](source.tar.gz) |
