R15Cookie Blog

A DevOps practitioner with an appreciation for robust architectures.

Weather Station Overview

The goal is to build an Internet connection weather station. Besides the standard tempurature, pressure, and humidity it should also collect snowfall information (the trickiest part of the project)

Equipment

As of 12-31-2019, the equipment list of items being used:

  • An Onion Omega2+ The board is fairly powerful from an embedded standpoint, and has built-in Wifi connectivity. It's very well that just an Onion Omega2 would probably have plenty of space
  • An Onion Arduino Dock: The other parts of the Weatherstation kit are Arduino base, so using this dock makes sense. Can operate on 3.3V, which I'm planning to leverage.
  • A Sparkfun Weathershield: Slightly pricy, but has the appropriate hookups for rain and wind sensors.
    • Above is the modern verion of the shield, but I own the discontinued version based on the HTU21D. Instructions will probably need some modification to use with the newer shield, but hopefully I can make it generic enough for both.
  • Sparkfun Weather Sensors: Pre-build weather sensors for the Weathershield. Also a bit pricy, but I already have (a birthday present from my wife…and I *really- need to use it!)

Software

Current architecture. Trying to leverage a Microservice architecture for custom code, versus extending external projects.

  • Source Data
  • Core: WeeWX: An open source core that supports a *lot- of hardware and aggrator targets such as Wunderground.
  • Other
    • Prometheus/Grafana: Hosted outside of Omega2. Would like some local dashboarding as well, although will be secondary to Wunderground/other aggregator
    • Pull Prometheus metrics directly for custom code collector on Omega2
    • Potential alternative is an adapter that reads messages from MQTT and provides scrape endpoint.
  • Reference (not directly used at the moment)
    • Arduino-PWS: Potential inspiration to hook up WeeWX to the Arudino/Weathershild. Ideally would run on the Onion Omega2 directly.