meteo is a small software project for environmental monitoring. During my time as system administrator I used it successfully for over a year to monitor the temperature/humidity of our server rooms.

The project consists of the meteod server with a web frontend, the software for sensor nodes and a terminal client. The readings of the node are pushed to the server over MQTT or http. The server itself provides a simple web interface for data display and a simple API for automate access. The server application is written in go and has a minimal footprint. It is easily deployable on a small micro-computer like a Raspberry Pi or a NanoPi Neo. The default backend is sqlite3, so no heavy database application is needed.

meteo is free sofware and a ongoing project where I’m constantly tinkering.

Meteo server

The server daemon is called meteod. It is written in go with the idea in mind, that is should be capable to run on relative simple hardware. meteod provides a simple yet user-friendly webserver and has a sqlite3 database as backend. The server collects readings via MQTT or via http POST requests from the sensor nodes.

Web interface showing multiple meteo stations Single station showing the temperature and humidity graph

Meteo Node

A meteo node is a sensor node, that pushed readings to the server. The currently suggested node is based on an ESP32 with a BME280 sensor as minimal configuration. Both are inexpensive, available and work reliable once configured properly. The sensors need to be wired and soldered by hand to the ESP32 microcontroller.

Soldered ESP32 in a small box Soldered ESP32 and loosely hanging BME280 chip

Meteo CLI Client

For someone who lives in the black terminal, a CLI is a must-have. That’s why meteo comes with this beautiful CLI client. Configurable that all you need to do is to run meteo and it will display the current readings, colored so you have everything at once in view

Terminal window showing multiple nodes and their current readings

Licensed under CC BY-NC-SA 4.0