Environment - BMx280¶
Temperature and pressure for the BME280 and BMP280 sensors.
Plugin details¶
Type: Environment
Name: BMx280
Status: NORMAL CLIMATE
GitHub: P028_BME280.ino
Maintainer: .
Used libraries: .
Supported hardware¶
Introduction¶
- Specifications:
Temperature (-40C to +85C)
Relative humidity (0-100 %RH) (Only available from BME280 sensor)
Barometric pressure (300-1100 hPa)
Warning
The BME280 is easily mistaken for its sibling the BMP280. Sometimes the PCB have both BME and BMP280 written on it, it’s probably because the footprint is the same for BME and BMP = the same PCB board is used by both. Luckily, this plugin supports both types of sensors.
Wiring¶
ESP BMx280
GPIO (4) <--> SDA
GPIO (5) <--> SCL
Power
3.3V <--> VIN
GND <--> GND
Note
If you have changed the I2C settings in the hardware setup you need to connect to those instead of GPIO 4 and 5.
Configuration¶
Name A unique name should be entered here.
Enabled The device can be disabled or enabled. When not enabled the device should not use any resources.
I2C Options¶
The available settings here depend on the build used. At least the Force Slow I2C speed option is available, but selections for the I2C Multiplexer can also be shown. For details see the Hardware page
I2C Address: The address the device is using. Depending on the board used, when available a SDO pin, or soldering a 0 ohm resistor on a different location, can be used to select the used address. If that address selection is not available, then an I2C multiplexer (in a matching ESPEasy build) can be used to use multiple sensors on a single ESPEasy unit. Below are instructions for selecting the alternate address.
Device Settings¶
Altitude When not at sea-level, the plugin can apply an altitude compensation on the Pressure value.
Temperature offset Depending on the sensor and the location of the sensor, it may be required to apply some temperature compensation. This can be set in steps of 0.1 degree. When using a BME280 sensor, this also applies a compensation to the Humidity reading.
Data Acquisition¶
Temperature Error Value If no sensor is connected, or the sensor suffers from read errors for some reason, the Temperature value to report in that situation can be set here. Both Humidity and Pressure will be set to -1 when such read errors occur.
Ignore : Do not return any value (does log the error once per second at INFO level).
Min -1 (-41C°) : Set to the out-of-range value, below sensor minimum, of -41°C.
0 : Set to an unknown value of 0.
max +1 (+85°C) : Set to the out-of-range value, above sensor maximum, of 86°C.
NaN : Set to the error value
NaN
(Not a number).-1°K (-274°C) : Set to the impossible temperature value of -1° Kelvin.
The Temperature range of the sensor, according to the datasheet, is -40 to +85 °C, so the out of range values of -41 and +86 can be selected as error state values.
Single event with all values, Send to Controller and Interval settings are standard available configuration items. Send to Controller only when one or more Controllers are configured.
Interval By default, Interval will be set to 60 sec. The minimum value allowed is 1 sec.
Data Source¶
Note
The Data Source section is only available when the task is configured to receive data from a remote node!
When using Controller - ESPEasy P2P Networking and having multiple ESP nodes using the same ESPEasy p2p UDP port
(see the Tools/Advanced page, default: 8266, IANA registered), you can receive values from a remote node with the same plugin active. How to configure this is documented in the P2P Controller page.
In a regular configuration, having the sensor connected locally, the plugin auto-detects what type of sensor is used, either BME280 or BMP280, and auto-adjusts the values supported. When receiving data from the P2P network, this ‘setting’ is verified and must match on the receiving end of the P2P connection. This information is not included in the P2P protocol data, so a configuration option is available, only shown if the task is configured to receive remote data.
Remote Unit: Shows the unit number and name the data is received from.
Output values mode: Allows selection of the sensor that is installed on the sending unit (node).
Available options:
BME280: Sending node has a BME280 sensor, will provide the Temperature, Humidity and Pressure values.
BMP280: Sending node has a BMP280 sensor, will provide the Temperature and Pressure values.
Values¶
The measured values are available in Temperature
, Humidity
and Pressure
. A formula can be set to recalculate. The number of decimals is by default set to 2, and can be set to 0 for Humidity
and Pressure
, as no decimals are provided from the measurement.
Note
When a BMP280 sensor, that provides only Temperature
and Pressure
data, is connected, the Humidity
value will still be visible, but show 0.
Rules examples¶
on BME#Pressure do
if %eventvalue1%>999
Publish,%sysname%/pressure,Is normal
endif
endon
Change I2C address¶
You may change the i2c address from the default 0x76 to 0x77 by cutting the line between the two left pads (as seen in the pictures below) and solder a bridge between the two right pads.
Default i2c address 0x76.
Changed i2c address 0x77.
Cut Solder/bridge
Change log¶
Changed in version 2.0: …
added 2022-05-10 Added Error State Value option, documentation overhaul.
added Major overhaul for 2.0 release.
Added in version 1.0: …
added Initial release version.