Affordable indoor sensor

1 minute read


Some months ago, I installed Home Assistant with the main purpose of getting a better insight in the indoor climate of my house. One thing I would like to do is control the heating system in my house individually per room. Since I mostly have underfloor heating, different zones in the house can be controlled using valves on the underfloor dividers. But to control it properly, the temperature in each zone has to be measured accurately as well. And last but not least, some OpenTherm interface to the central heater is needed. Interesting topic, but food for another post. In this post, I want to show a PCB I designed that allows measuring not only the temperature, but also the CO2 level, humidity and pressure in each room: first of all to get insight in the indoor environment and later to control it as well.


  • MH-Z19 sensor for measuring CO2 ppm
  • BME280 sensor for measuring temperature, humidity and pressure
  • Wemos Mini D1 ESP8266 module to easily integrate with WIFI in the smart home
  • red/green dual LED for level indication
    • Green, PPM < 800
    • Yellow/Orange, 800 < PPM < 1400
    • Red, PPM > 1400
  • Connectors for optional 0.91 inch or 0.96 inch SSD1306 display
  • Total price around 25 euros


I designed a small pcb of about 5x5 cm to easily mount the Wemos, MH-Z19 and BME290 sensor modules. Supply voltage is received using a USB-c connector in the Wemos Mini D1. Optionally, a small OLED display can be mounted on top to show the measured values.

Prototypes of printed circuit board and assembled versions

Next steps

The software integration will be the subject of another post. But I can already mention that using ESPhome it was pretty straightforward to get it all working. And it confirmed that the PCB prototype is correct.

Designing a nice housing is also on the TODO list.

If there is enough interest for this design, I will probably make PCBs or Kits available. Please let me know if you are interested.


Indoor sensor sources