rpi-mh-z19c-exporter

Export CO₂ readings from a Winsen MH-Z19C CO₂ sensor connected to a Raspberry Pi to Prometheus. The sensor needs to be connected via the UART interface.

The following metrics will be provided at the http://localhost:1202/metrics endpoint:

Mnemonic for the port: 12 is C in hexadecimal and 0 = O, thus 1202 = CO2.

Implementation

The exporter is implemented with asynchronously Tokio using a single thread. A request to the /metrics endpoint will trigger reading a new measurement from the sensor. Multiple concurrent requests will only trigger a single measurement wait for that one to complete.

Installation

  1. Download the binary from GitHub or compile one yourself.
  2. Place it on your Raspberry Pi, e.g. in /usr/local/bin/rpi-mh-z19c-exporter and ensure the the executable permission is set.
  3. Use the Ansible role provided in the roles directory to setup a service user and add a systemd service. (Or do this manually if you prefer.)

Configuration

The exporter is configured with environment variables: