a fast, cheap, and out of control IoT environmental sensor node.
ECLSS (the NASA acronym for "Environmental Control and Life Support Systems") is an ESP32-based implementation of a WiFi-enabled environmental & air quality sensor node that reads data from a variety of I2C sensors and exposes data in the prometheus metrics format.
microcontroller: ESP32-C3. i'm using the QT Py ESP32-C3 from Adafruit.
the software could easily be tweaked to work with any ESP32-C3 board with a few source changes (e.g. which pins are I2C). i picked the QT Py board because it's small and cute and has a Stemma QT connector.
sensors:
Note note that any given sensor is optional; the software gracefully handles missing sensors and will continue to collect data from other sensors if one isn't present on the I2C bus. of course, if you're missing a particular sensor, you won't be collecting the data it measures :)
runs a WiFi access point (SSID: eclss
) for configuration. connect to eclss
and open http://192.168.71.1
(or eclss.local
, if your browser/device
resolves mDNS hostnames) to configure the SSID and password of a WiFi
access point to connect to.
exposes an HTTP server on port 80 with a (mobile-friendly, reactive) web UI at
/
and prometheus metrics at /metrics
:
advertises the following mDNS services with the hostname eclss.local
:
_http._tcp
_https._tcp
_prometheus-http._tcp
_prometheus-https._tcp
the _prometheus-http
/_prometheus-https
mDNS services would allow something
like msiebuhr/prometheus-mdns-sd
to automatically discover ECLSS scrape
targets.
grafana dashboard you can add to a Grafana instance to display ECLSS prometheus metrics:
see BUILD.md for details.