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.
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