An ESP8266 RSS reader that shows news, weather and clock on a small LCD
Before smart speakers, my kitchen counter had this: an ESP-12 module driving a 128x64 LCD, cycling through English and Chinese news headlines from two RSS feeds, plus date/time and live indoor temperature and humidity. The repository is ESP12-RSSReader.
How RSS works on a microcontroller
RSS is just XML over HTTP. The sketch fetches the feed, pulls out
<title> elements with a streaming parser (the JsonStreamingParser
pattern applies to XML too — you never load the whole document in 80 KB of RAM), stores the
headlines, then renders them one screen at a time with a scrolling or paging animation.
The interesting part: 100 font headers
Look at the repository's data/ folder and you will find
001.h … 100.h: one hundred pre-generated Chinese font subsets. Full
CJK fonts are megabytes — impossible in flash alongside everything else. The workaround is to
subset: keep only the glyphs the headlines actually use, generate one header per batch, and
load the right ones. It is the same idea as webfont subsetting, done by hand at the bytecode
level.
Hardware and wiring
- ESP-12 (ESP8266) with a 128x64 SPI LCD — four panel variants supported, documented in
12864panels.txt. - A DHT11/DHT22 sensor for temperature and humidity.
- Every pin assignment is written out in
wiring.txt— I recommend this habit: when you revisit a project in three years, the wiring notes are the documentation that saves you.
Repository: github.com/bobhuang1/ESP12-RSSReader. If you want a simpler entry into ESP8266 displays, start with the I2C LCD article and work up.