I’ve done a few rounds of 100 Days of Code in the past, but never really made it past 2 weeks. Part of the reason for that failure is the weekend portion - I don’t like to computer on the weekend since I computer very hard during the week.

I decided it would be a really good use of my time to work on my Indoor Air Quality platform as a part of my attempt at 100 Days of Code. It’s the next step for me in my career, so I need a way to force my effort.

There are two parts to making my IAQ platform successful, the sensors themselves, and the backend system.

Previous Days

  • Day 1 - Getting the infrastructure setup for development
  • Day 2 - Getting basic data out of Temp/Hum sensor, figuring out scope for others
  • Day 3 - Publish data to InfluxDB
  • Day 4 - Handled some errors in the publisher, got CouchDB up adn running
  • Day 5 - Slack bot alerts!
  • Day 6 - Health Checks babay!
  • Day 7 - Ansible and other things for a friend’s project
  • Vacation - I’m on vacation so haven’t been coding much
  • Day 8 - Makefile to test, build, push multiple docker containers to Github registry
  • Day 9 - Large refactor to use Flask API instead of reading results from files.
  • Day 10 - Bug hunting and logging
  • Day 11 - Starting the IAQ-BADGE

Day 12

Completely re-soldered the IAQ-BADGE, was able to get the screen to light up and actually show real data. Pretty exciting! Figuring out partial screen refresh was difficult but I finally got there. The library I’m using didn’t implement all of the framebuf features like I would have liked, but I figured it out. Low level displays like this are a pain in the butt to work with.

Below you’ll find the boot screen and the main screen (Note the data is fake right now, since I don’t have the CO2 sensor yet). There will be more in the coming days as I get the sensor wired up and figure out how to store the data. Also need to figure out how many data points I can flush to storage on this small 16MB flash storage. Will have to figure out a way to check the size on disk of the json file I plan to flush to. I figure I’ll flush to disk every 5 minutes or something. Resolution of readings will be between 10-30 seconds, need to test that.

IAQ-BADGE Boot Screen

IAQ-BADGE Main Screen

Today’s Commit