mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-07-16 05:46:52 +00:00
Refactor bme280, add SPI support (#17314)
Co-authored-by: Franck Nijhof <git@frenck.dev>
This commit is contained in:
parent
799bcc523b
commit
a7b95eaf04
@ -10,11 +10,7 @@ ha_platforms:
|
||||
- sensor
|
||||
---
|
||||
|
||||
The `bme280` sensor platform allows you to read temperature, humidity and pressure values of a [Bosch BME280 Environmental sensor](https://cdn-shop.adafruit.com/datasheets/BST-BME280_DS001-10.pdf) connected via [I2c](https://en.wikipedia.org/wiki/I²C) bus (SDA, SCL pins). It allows you to use all the operation modes of the sensor described in its datasheet.
|
||||
|
||||
Tested devices:
|
||||
|
||||
- [Raspberry Pi](https://www.raspberrypi.org/)
|
||||
The Bosch BME280 integration allows you to read temperature, humidity and pressure values of a [Bosch BME280 Environmental sensor](https://cdn-shop.adafruit.com/datasheets/BST-BME280_DS001-10.pdf) connected via [I2c](https://en.wikipedia.org/wiki/I²C) bus (SDA, SCL pins) or connected via SPI. It allows you to use all the operation modes of the sensor described in its datasheet.
|
||||
|
||||
## Configuration
|
||||
|
||||
@ -22,8 +18,8 @@ To use your BME280 sensor in your installation, add the following to your `confi
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
sensor:
|
||||
- platform: bme280
|
||||
bme280:
|
||||
- name: Ambient
|
||||
```
|
||||
|
||||
{% configuration %}
|
||||
@ -82,6 +78,14 @@ monitored_conditions:
|
||||
required: false
|
||||
default: All three conditions
|
||||
type: list
|
||||
spi_bus:
|
||||
description: sensor SPI bus number.
|
||||
required: false
|
||||
type: integer
|
||||
spi_dev:
|
||||
description: sensor SPI device number.
|
||||
required: false
|
||||
type: integer
|
||||
{% endconfiguration %}
|
||||
|
||||
## Full Examples
|
||||
@ -90,9 +94,8 @@ If you want to specify the working mode of the digital sensor or need to change
|
||||
|
||||
```yaml
|
||||
# Example of customized configuration.yaml entry
|
||||
sensor:
|
||||
- platform: bme280
|
||||
name: Ambient
|
||||
bme280:
|
||||
- name: Ambient
|
||||
i2c_address: 0x77
|
||||
operation_mode: 2 # forced mode
|
||||
time_standby: 5
|
||||
@ -142,6 +145,10 @@ group:
|
||||
|
||||
## Directions for installing smbus support on Raspberry Pi
|
||||
|
||||
<div class="note">
|
||||
This section only applies to devices running the Home Assistant Core installation method.
|
||||
</div>
|
||||
|
||||
Enable I2c interface with the Raspberry Pi configuration utility:
|
||||
|
||||
```bash
|
||||
@ -187,3 +194,81 @@ It will output a table like this:
|
||||
```
|
||||
|
||||
So you can see the sensor address what you are looking for is **0x77** (there are more i2c sensors in that Raspberry Pi).
|
||||
|
||||
## SPI Support
|
||||
|
||||
Alternatively, this integration can also be used with SPI.
|
||||
|
||||
### Config example
|
||||
|
||||
```yaml
|
||||
# Example of customized configuration.yaml entry
|
||||
bme280:
|
||||
- name: Stary_Oskol
|
||||
spi_bus: 0
|
||||
spi_dev: 1
|
||||
time_standby: 5
|
||||
oversampling_temperature: 4
|
||||
oversampling_pressure: 4
|
||||
oversampling_humidity: 4
|
||||
monitored_conditions:
|
||||
- temperature
|
||||
- humidity
|
||||
- pressure
|
||||
scan_interval: 40
|
||||
```
|
||||
|
||||
## Directions for installing SPI support on Raspberry Pi
|
||||
|
||||
<div class="note">
|
||||
This section only applies to devices running the Home Assistant Core installation method.
|
||||
</div>
|
||||
|
||||
Enable SPI interface with the Raspberry Pi:
|
||||
|
||||
```bash
|
||||
sudo groupadd spi
|
||||
# Add homeassistant user to the spi group
|
||||
sudo usermod -a -G spi user
|
||||
# Add udev rules
|
||||
sudo echo 'SUBSYSTEM=="spidev", GROUP="spi", MODE="0660"' > /etc/udev/rules.d/77-spi.rules
|
||||
# apply changes without logout
|
||||
newgrp spi
|
||||
sudo udevadm control --reload-rules && udevadm trigger
|
||||
```
|
||||
|
||||
```bash
|
||||
sudo echo 'dtparam=spi=on' >> /boot/firmware/config.txt
|
||||
sudo echo 'dtoverlay=spi1-3cs' >> /boot/firmware/config.txt
|
||||
sudo reboot
|
||||
```
|
||||
|
||||
### Check the spi devices
|
||||
|
||||
```bash
|
||||
ls /dev/spidev*
|
||||
/dev/spidev0.0 /dev/spidev0.1 /dev/spidev1.0 /dev/spidev1.1 /dev/spidev1.2
|
||||
```
|
||||
|
||||
## Connect sensors
|
||||
|
||||
### SPI0 (available on J8/P1 headers on all Raspberry Pi versions)
|
||||
|
||||
|SPI Function|Header Pin|Broadcom Pin Name|Broadcom Pin Function|
|
||||
|------------|----------|-----------------|---------------------|
|
||||
|MOSI |19 |GPIO10 |SPI0_MOSI
|
||||
|MISO |21 |GPIO09 |SPI0_MISO
|
||||
|SCLK |23 |GPIO11 |SPI0_SCLK
|
||||
|CE0 |24 |GPIO08 |SPI0_CE0_N
|
||||
|CE1 |26 |GPIO07 |SPI0_CE1_N
|
||||
|
||||
### SPI1 (available only on 40-pin J8 header)
|
||||
|
||||
|SPI Function|Header Pin|Broadcom Pin Name|Broadcom Pin Function|
|
||||
|------------|----------|-----------------|---------------------|
|
||||
|MOSI |38 |GPIO20 |SPI1_MOSI
|
||||
|MISO |35 |GPIO19 |SPI1_MISO
|
||||
|SCLK |40 |GPIO21 |SPI1_SCLK
|
||||
|CE0 |12 |GPIO18 |SPI1_CE0_N
|
||||
|CE1 |11 |GPIO17 |SPI1_CE1_N
|
||||
|CE2 |36 |GPIO16 |SPI1_CE2_N
|
||||
|
Loading…
x
Reference in New Issue
Block a user