Introduction: IoT Weather Station With VOCs Monitoring

About: I am a principal investigator in analytical chemistry (mass spectrometry). My main interests are the development of novel devices and open software.

In this instructable, I show how to build an Internet-of-Things (IoT) weather station with monitoring of Volatile Organic Compounds (VOCs). For this project, I developed a Do-It-Yourself (DIY) kit. Hardware and software are open-source.

Step 1: MeteoMex Aeria Kit

The MeteoMex aeria kit ( costs about 25 USD and contains

  • 1 Printed Circuit Board (PCB).
  • 1 BME280 climate sensor.
  • 1 CCS811 VOCs sensor
  • 1 Wemos D1 R1 mini ESP8266 microprocessor with WiFi.
  • header pins.
  • 1 Jumper (J1).

Further, you will need a solder station and a suitable power supply for the finished device (USB or 3 x AA batteries), and a USB cable for programming.

Step 2: Solder the Components

You have to solder the headers and the sensors on the PCB and the Wemos D1 mini. Please be careful with the correct orientation of the sensors on the board. For ensuring a clean mounting, I use a breadboard for assembling the parts.

Step 3: Register or Install ThingsBoard Server

For using ThingsBoard as IoT platform, you need to register at, or install your own ThingsBoard server. There are different ways of installing the ThingsBoard Community Edition, e.g. on a Linux Server, Windows, Raspberry Pi etc. I chose the installation on an Ubuntu 18.04 LTS virtual personal server:

On your ThingsBoard instance, you have to login as a tenant and register a new device for sending the telemetry data. Your device will be identified with its access token.

In the next step, you need the server:port URL and the access token of your device.

Step 4: Programming the Wemos D1 Mini

The Wemos D1 mini can be programmed with the Arduino IDE.

Install the ESP32 additional boards from in the Arduino IDE and choose the correct device: LOLIN/Wemos D1 R1. Otherwise, you might "brick" it forever (happened to me..)!

Different code examples are available from

For this instructable, we use the program MeteoMex_USB_ThingsBoard_aeria_VOCs.

Important: In the program, you have to use the correct URL of your ThingsBoard server, and the access token of your device!

Further, you need to define your WiFi SSID and password.

You also should decide on the sampling rate, posting data every 10 minutes (for real-time monitoring you can send data every 500 ms).

Step 5: Housing of Weather Station

The location of your weather station is important: It should be protected from direct sun and rain. At the same time, you need sufficient ventilation to measure VOC and atmospheric conditions. Ideally, you can mount the MeteoMex close to a socket and in range of your WiFi network.

For housing, you can consider different options. A suitable 'professional' box will cost you ~10 USD, and you need more plastics ... I also decided against a 3D-printed box because of time, cost and environmental reasons (I got a 3D-printer in my lab for prototyping analytical devices). Instead, I re-used a plastic yoghurt beaker. Of course, a very fancy one. Up to now, I am quite happy with this solution: Low environmental footprint, low-cost (~1.5 USD, including 1L of yoghurt) and functional.

Step 6: Online Monitoring

Ready. If you like, you can share the public dashboard of your weather station:

IoT weather station with VOCs, Irapuato, MX, 1,990 m.a.s.l.