Saturday, June 24, 2017

ESP8266 BME280 Weather Station

One of our favorite new toys is the ESP8266 WiFi module. A very powerful microcontroller in it's own right, it's easily programmed with the Arduino IDE, and uses the same code we have come to know and love.

Now pushing data to web server!

So lets start:

We received a NodeMCU ESP8266 microcontroller and a BME280 Temperature / Humidity / Barometric Pressure module from IC Station.

Both the ESP8266 and the BME280 are 3.3v devices, so no level shifting required. The BME280 is an I2C device, so I connect SCL to D1 on the ESP8266, and SDA to D2. VCC goes to 3V3 and GND to GND. That's it for wiring.

I need to add the ESP8266 to the Arduino IDE, so head over to for a quick tutorial.

You will need two libraries from Adafruit, both the BME280 and the Sensor libraries -

I used their example sketch, but modified the metric outputs to American, and added calculations for Dew Point and Heat Index.

Once the board is installed, you are ready to upload the modified sketch:

The output of the serial monitor should look like this:

Our next step with this is to push the data to our new IOT web / database server, with live charts, gauges, and database storage. Stay tuned!

Check out all our videos on Youtube!


  1. Love this. Might try the wifi module with a water tank level monitor project.

  2. Thanks for your awesome project, looking forward to your further awesome projects.

  3. Do you find the BME280 over-reads temperature because of self-heating? I'm seeing about 2°C error consistently.

  4. No, but I'm seeing negative temperatures after a few days of running. Needs a reboot to clear.

  5. Hi, I have a question. Why I get the temperature and pressure (without humidity) values only while using BMP280 librabry?! Using BME280 always give me the check wiring message.

    1. Try changing the BME address to 0x76.
      Line 32 in Adafruit_BME280.h


Related Posts Plugin for WordPress, Blogger...