Shows the weather – pressure (and trend), humidity and temperature on a small round dial.
An Arduino project using a GC9a01 circular 1.28inch LCD, a BME280 pressure/temperature/humidity sensor and a Leonardo Tiny Atmega32U4 Main Board.
The dial was created with Inksnek Python code running as an Extension in Inkscape v1.3.2 and exported as a PNG with +1 anti-alias. A second Python script run-length-encoded the image as a PROGMEM array of bytes in the sketch. The needles are drawn over the decompressed dial image using a fixed-point (uint16_t) anti-aliased line algorithm (with optional thickness). All the graphics are done from scratch, pocketBME280 is the only library.
Measurements of pressure, humidity and temperature come from a BME280 using the pocketBME280 Library. Readings are taken every 5 minutes, the pressure trend needle shows the pressure 3 hours ago.
On the back is a small push-button, an LDR to dim the display at night and the pressure sensor. The sensor fits in a void in the PCB to reduce the profile.
On the front side of the PCB, in a larger space, the Leo sits under the LCD.
The enclosure is a sandwich of 9 layers of transparent acrylic, also created in Python with my Inksnek class, plus the PCB.
There's a schematic in PINS.h. The resources subdirectory includes python scripts etc and Gerber files.
Link to Hackaday project.
Link to more photos at Flickr
