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 Rasperry Pi or a NanoPi Neo. The default backend is sqlite3, so no heavy database application is needed.

meteo is free sofware. It's a ongoing project where I'm constantly tinkering. If you like it, check it's GitHub repository.

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.

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.

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

meteo CLI client shows you everything is just fine