Simple script that sends your BME680 temp, pressure, humidity and gas sensor data to InfluxDB.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
LICENSE
README.md
config.ini
grafana_dashboard.json
requirements.txt
senddata.py

README.md

bme680_to_influxdb - BME680 Monitoring with InfluxDB

This script sends the data from the RaspberryPI Bosch BME680 module to a InfluxDB. The script itself and the documentation is work-in-progress. However, feel free to open issues for your questions and ideas.

Feel free to read the full story on how to send BME680 sensor logs with a RaspberryPi to InfluxDB and into Grafana on ayeks.de.

Installation

InfluxDB on a RaspberryPI

Download and install the InfluxDB ARM package:

wget http://ftp.us.debian.org/debian/pool/main/i/influxdb/influxdb_1.1.1+dfsg1-4+b2_armhf.deb
sudo dpkg -i influxdb_1.1.1+dfsg1-4+b2_armhf.deb 

Modify influxdb.conf to enable admin GUI and restart the database.

sudo nano /etc/influxdb/influxdb.conf 
sudo service influxdb restart

Go to the admin GUI of the InfluxDB and create a new database with the name logger:

# goto: http://localhost:8083/
CREATE DATABASE "logger"

BME680_to_InfluxDB on a RaspberryPI

You need the bme680 python lib, the InfluxDB client and the bme680_to_influx script.

pip3 install -r requirements.txt 
git clone https://github.com/ayeks/bme680_to_influxdb

Go to the config.ini file and change the values to match your environment. You should change at least host, user and the password.

Execution

Simply call: python3 senddata.py "./config.ini" .

Often you want your Raspberry to execute the senddata script automatically after it started. Use the following to do so:

# automated startup:
sudo nano /etc/rc.local
python3 /home/pi/senddata.py "/home/pi/config.ini" &

Analysis

Collecting data is just half the fun without proper analyzing. To crawl through your data just use the InfluxDB admin GUI:

# select the "logger" database first!
# show all available measurements
SHOW MEASUREMENTS

# show available tags for measurement
SHOW TAG KEYS FROM "dev"

# get results by measurement
select * from dev

In this repo is the JSON included that generates the following Grafana Dashboard:

Grafana BME680 Dashboard

Credits

Thanks to John Whittington who wrote an awesome tutorial for InfluxDB on a RaspberryPI, to Sandy Macdonald who wrote the Pimoroni tutorial Getting Started with BME680 Breakout and all the contributors on the bme680 python lib.