Airthings Wave Plus and Raspberry Pi

Orjan Gengedal
December 17, 2018

How to read Airthings Wave Plus Sensor data using Raspberry Pi

RELEASE NOTES:

  • Release dated 14-Dec-2018
  • Added SAMPLE-PERIOD as an input argument.
  • Initial release 12-Dec-2018

View the full script on GitHub.


Due to popular demand, Wave Plus owners can now read sensor data using a Raspberry Pi. Our latest code is hosted at Github which has the most recent updates and HOW-TOs for using Raspberry Pi. Additionally, you can request new features, open issues or even contribute to the project by creating pull requests.

Airthings Wave Plus is a smart IAQ monitor with Radon detection, including sensors for temperature, air pressure, humidity, TVOCs and CO2.

In a previous post, we showed you how you could use a Raspberry Pi 3 Model B to read sensor data from the Airthings Wave over Bluetooth Low Energy (BLE).

Similarly, this guide explains how to read sensor data using the Raspberry Pi 3 Model B from the Airthings Wave Plus using the same approach.

To get started, follow the setup as explained in the previous Airthings Wave article and install the required packages/modules on the Raspberry Pi device.

Download the Python script:

 pi@raspberrypi:~$ wget https://raw.githubusercontent.com/Airthings/waveplus-reader/master/read_waveplus.py

The following python script “read_waveplus.py” is only compatible with python2.7. In this guide, we have used python version 2.7.13. In addition to the pre-requisites listed in the previous post, the following python module must also be installed:

 pi@raspberrypi:~$ sudo pip2 install tableprint==0.8.0

Read sensor data from the Airthings Wave Plus

The available sensor data are temperature, humidity, CO2 level, TVOC level, pressure, running average 24-hour radon concentration and running long-term average radon concentration.

To read the sensor data from the Airthings Wave Plus, you need the 10-digit serial number of the device. This can be found under the magnetic backplate of your Airthings Wave Plus. If your device is paired and connected to e.g. a phone, you may need to turn off bluetooth on your phone while using these scripts.

The general format for calling the “read_waveplus.py” script is as follows:

 read_waveplus.py SN SAMPLE-PERIOD [pipe > yourfilename.txt]

Where the input arguments are:

Input arguement Example Comments
SN 0123456789 10-digit number. Can be found under the magnetic backplate of your Airthings Wave Plus.
Sample period 60 Read sensor values every 60 seconds. Must be larger than zero.
Pipe pipe > yourfilename.txt Optional. Since tableprint is incompatible with piping, we use a third optional input argument “pipe”.


Except for the radon measurements, the Wave Plus updates its current sensor values once every 5 minutes. Radon measurements are updated once every hour. The radon measurements are given in Bq/m3 and the maximum value that can be read by the script is 16383 Bq/m3. Please note that the radon measurements are only available 1 hour after the batteries have been inserted.

Printing data to the terminal window

By default, the read_waveplus.py script will print the current sensor values to the Rasberry Pi terminal. Run the Python script in the following way:

pi@raspberrypi:~ $ sudo python2 read_waveplus.py SN SAMPLE-PERIOD

where you change SN with the 10-digit serial number, and change SAMPLE-PERIOD to a numerical value of your choice.

After a short delay, the script will print the current sensor values to the Raspberry Pi terminal window. Exit the script using Ctrl+C.

Piping data to a text-file

If you want to pipe the results to a text-file, you can run the script in the following way:

 pi@raspberrypi:~ $ sudo python2 read_waveplus.py SN SAMPLE-PERIOD pipe > yourfilename.txt

Change SN with the 10-digit serial number, and change SAMPLE-PERIOD to a numerical value of your choice. Exit the script using Ctrl+C.

Final notes

This guide has been tested with Raspberry Pi 3 Model B, Raspbian Stretch, bluepy 1.2.0, tableprint 0.8.0 and Python 2.7.13.

Let us know how it went and what you would like to see next on our facebook page.

Choose your region / country

region flag

Global

region flag

USA

region flag

Norway

region flag

Germany

region flag

Italy

region flag

UK

region flag

France

region flag

Spain