In Dev
DES :: 1h13m
DES :: 1h6m
DES :: 0h26m
RES :: 0h42m DES :: 0h39m
RES :: 1h48m
DES :: 1h26m
RES :: 0h53m
DEV :: 4h22m
DEV :: 1h27m DES :: 1h23m RES :: 0h32m
DEV :: 1h29m
Regn is a WiFi enabled weather station and visualisation dashboard.

56h27m (55 logs) from 12 Sǽd 226 to 15 Forst 227.

This project consists of 2 main components - a custom weather station and a data ingestion, API and dashboard server.

The weather station is a WiFi enabled IoT device built with an Adafruit HUZZAH ESP8266, a DHT22 temperature + humidity sensor, a BMP180 barometric pressure sensor and a TSL2561 luminosity/lux/light sensor to read various environmental properties.

Upon start-up, the weather station exposes a WiFi access point with the name Regn and a predefined password. Connecting to this AP and navigating to lets me set various internal settings, such as the MQTT endpoint and sensor read frequency, after which the station will reboot, connect to the defined WiFi point and begin to submit sensor data. It does this by connecting to an MQTT endpoint with it's Client ID being the station's name and publishing it's sensor values to a Regn topic.

Regn's first time boot configuration

As part of the hardware side of this project, I also used EAGLE to design a PCB which was then fabricated by OSH Park. At the moment it is only a basic PCB that links together the various prototype boards, but future versions will embed the sensors, voltage regulators, LEDs and other things directly.

Version 0.1 PCB of Regn

The server side is relatively independent of the station. It serves a dashboard and an API for querying weather station data. It is a Flask service, and subscribes to the aforementioned Regn MQTT topic and stores the sensor data in a database.

The dashboard serves a real time graph of temperature, humidity, pressure and luminosity values over a chosen timespan of day, week, month or year.

Temperature over day dashboard

On 6 Hát 226 I gave a talk at the Kafka, KSQL & IoT meetup in Berlin on this project and my speculative work with multiple sensors, scalable ingestion frameworks, CrateDB and Apache Kafka.