• This repository has been archived on 05/Apr/2024
  • Stars
    star
    284
  • Rank 145,616 (Top 3 %)
  • Language
    Shell
  • License
    MIT License
  • Created over 5 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Take readings from a BME680 or similar sensor on a Raspberry Pi, store with InfluxDB and view with Grafana

logo

Starter project that lets anyone start monitoring envrionmental sensor data from a beautiful, remotely accessible dashboard.

Highlights

  • Monitor temperature, humidity, and air quality: Supports a variety of I2C sensors to build your own monitoring system for your environment.
  • Visualize data from one remote dashboard: Access your customizable environmental data dashboard from anywhere.
  • Compatible with other automation tools: Integrate balenaSense with home automation tools, such as Home Assistant.

Setup and configuration

Run balenaSense quickly by deploying it to a balenaCloud application. Log in and deploy the application with just one click by using the button below:

Or add your device to the balenaSense Open Fleet to try the project out without a balenaCloud account.

Documentation

Head over to our docs for detailed installation and usage instructions, customization options and more!

Or, check out our detailed build guide on the balena blog.

Motivation

balenaSense is a Raspberry Pi balenaCloud starter project that takes readings from a supported sensor (such as the Bosch BME680), stores them using InfluxDB and generates a dashboard using Grafana. The Bosch BME680 is recommended as it includes sensors for temperature, humidity, pressure and gas content and is available on a breakout board from a few different places for around $10-$20.

We want to create a project that motivates users to build their own environmental sensor project whether for home or for professional use with privacy and customization in mind.

What changed?

Version 2 of balenaSense is built using blocks, which are intelligent, drop-in chunks of functionality. This is a major change from earlier versions of balenaSense which used a number of configuration files to tie together the InfluxDB database, Grafana dashboards and sensor readings. Blocks are designed to work together and use auto-discovery (which can be overridden) to pass data amongst themselves.

How it works

The task of reading data from the sensors is now handled by our new sensor block. Instead of installing separate drivers and using custom code for each type of sensor, the sensor block utilizes Industrial IO (IIO) and relies on the variety of sensor drivers already included in the Linux kernel itself. (You can learn more about the sensor block and its use of IIO in this recent blog post.) This means balenaSense now supports a wider variety of sensors as well as multiple connected sensors.

Currently, only I2C sensors that are not mounted on a HAT are supported by the sensor block. This means 1-wire sensors, the Raspberry Pi Sense-HAT, and Pimoroni Enviro+ Air Quality HAT are no longer supported by balenaSense.

The indoor air quality (IAQ) readings in previous versions of balenaSense were dependent on propriatery software that had recurring breaking changes. On multiple occasions, the entire project was broken while new changes were investigated and merged. In addition, to obtain accurate air quality readings on the BME680, specific burn in procedures are required that balenaSense did not support. For these reasons, air quality readings are no longer a part of balenaSense.

balenaBlocks and extensibility

balenaBlocks are open source and extendable! We're looking into non-proprietary ways to support air quality readings and sensors on HATs: PRs are welcome! We believe that this block-based balenaSense is a more flexible solution overall, and a better base for adding more features as time goes on. If there is a feature that you want to see reinstated, please add an issue on the repo.

Contributing

Do you want to help make balenaSense better? Take a look at our Contributing Guide. Hope to see you around!

Getting Help

If you're having any problem, please raise an issue on GitHub and we will be happy to help. You can also find help on the balenaForums, in a special section dedicated to balenaSense.

Setup guides

A full guide covering the initial setup of this project is available on our blog.

Become a balena poweruser

Want to learn more about what makes balena work? Try one of our masterclasses. Each lesson is a self-contained, deeply detailed walkthrough on core skills you need to be successful with your next edge project.

More Repositories

1

balena-dash

Build a Raspberry Pi based desktop dashboard for stats, photos, videos and more!
Shell
431
star
2

wifi-repeater

Easily create a WiFi Access Point or WiFi repeater with balenaOS
TypeScript
189
star
3

balena-cam

Network Camera with Raspberry Pi and WebRTC. Tutorial:
JavaScript
174
star
4

inkyshot

Get a daily random inspirational quote delivered direct to your desk with Inkyshot. Build multiple Inkyshots and share the inspiration with your friends, family and loved ones ❀️
Python
115
star
5

rosetta-at-home

EJS
80
star
6

balena-node-red

a node-red application with balena-supervisor support, can be managed remotely via balena publicURL
JavaScript
60
star
7

audio

Audio building block for balenaOS, based on pulseaudio.
Shell
31
star
8

bluetooth

Optimized bluetooth agent for balenaOS. Based on BlueZ 5.0.
Python
23
star
9

dashboard

Grafana dashboard block with auto-visualization of InfluxDB databases to get your data visualized instantly!
Python
23
star
10

connector

Auto-configured data connector block based on Telegraf
Python
15
star
11

xserver

A simple X11 server block
Shell
15
star
12

sensor

Auto-detects connected i2c sensors and published data on HTTP or MQTT.
Python
14
star
13

fbcp

fbcp driver for SPI based displays for Raspberry Pis via fbcp-ili9341
Dockerfile
14
star
14

multiroom

Set up multiroom audio for your fleet of devices. Uses the Snapcast audio player.
Shell
9
star
15

autohupr

Automatically keep your balenaOS host release up-to-date with this block!
TypeScript
8
star
16

plate-recognizer

Using balena to easily deploy Plate Recognizer to one or more Raspberry Pi 4 devices.
Shell
7
star
17

log2screen

Shell
7
star
18

project-template

Project template for new Balena projects
Dockerfile
7
star
19

dbus

Shell
6
star
20

pulse

A block for counting pulses on a Raspberry Pi GPIO pin.
Python
4
star
21

video-capture

Provide an RTSP stream for a connected video source.
C
3
star
22

browsercontrol

HTML
3
star
23

logwatcher

TypeScript
3
star
24

balena-openvino

experiments aimed at creating an openvino balena block
C
1
star
25

lockr-block

Create or remove application update locks with the return code of any command.
TypeScript
1
star