Temperature, Humidity Sensor Tutorial for BME280 Sensor
In this section we’ll walk through creating a Temperature Sensor using ESP32, ESP8266 and then view the temperature via Alexa, Google Home or SmartThings.
Prerequisites :
- ESP32, ESP8266 x 1.
- BME280 x 1.
- Jumper Wires.
Quick introduction to BME280 Temperature Sensor
The BME280 uses a temperature sensor based on the principle of thermal resistance. As the temperature changes, the resistance of the sensor changes. The BME280 measures this change in resistance and uses it to calculate the temperature.
The BME280 communicates with other devices using the I2C or SPI communication protocol to exchange data with a microcontroller.
Please note that this tutorial is for BME280 not BMP280. BME280 can measure air pressure, temperature, and humidity, while else; BMP280 can only measure air pressure and temperatures.
In this tutorial, we are going to use I2C communication protocol
Wiring for BME280 with ESP8266
ESP8266 | BME280 Pin |
3.3V | Vin |
GND | GND |
SCL | 5 (D1) |
SDA | 4 (D2) |
Please note that you must use I2C pins in ESP8266.
Wiring for BME280 with ESP32
ESP32 | BME280 Pin |
---|---|
3.3V | Vin |
GND | GND |
SCL | 22 |
SDA | 21 |
Please note that you must use I2C pins in ESP32.
Let’s verify that temperature is wired correctly and working.
Step 1 : Install supporting libraries
- Install the BME280 library
- Install the Adafruit_Sensor library
- Install Sinric Pro Library
Step 1 : Create a new device in Sinric Pro
- Login to your Sinric Pro account, go to Devices menu on your left and click Add Device button (On top left).
- Enter the device name Temperature Sensor, description My Temperature Sensor and select the device type as Temperature Sensor.
- Click Next the in the Notifications tab
You can set the threshold here to receive a push notification via the Sinric Pro app when the temperature goes below or above a certain temperature. Use the Retrigger Time to set the delay between notifications.
-
Click Others tab and Click Save
-
Next screen will show the credentials required to connect the device you just created.
- Copy the Device Id, App Key and App Secret Keep these values secure. DO NOT SHARE THEM ON PUBLIC FORUMS !
Step 2 : Connect to Sinric Pro
You can generate the code using Zero Code feature or write it by your self. If you do not have programming experice, we recommend to use Zero Code feature in the Portal to generate the code, download and flash.
2.1 Complete Code
Now you should be able to view the temperature via Sinric Pro App
Please note that Google Home App shows the temperature sensor as a Thermostat due to Google Home limitations.
Troubleshooting
-
This tutorial is for BME280. Make sure it’s not BMP280 module.
-
Error: Could not find BME280 sensor!. It’s likely you have not wired correctly. You can run the I2C scanner sketch to check whether the sensor is wired correctly.
-
BME280 by default is in auto mode for taking continuous readings. This will warm up the chip and affect the read temperature. Change to Weather Station Scenario for more accurate readings when running for a long period.
Refer: https://github.com/adafruit/Adafruit_BME280_Library/blob/master/examples/advancedsettings/advancedsettings.ino
- Please refer to our common Troubleshooting page for more details.
This document is open source. See a typo? Please create an issue