Wednesday 5 February 2020

ESP8266 Weather Station with BMP180, DHT11 and SSD1306 OLED Display

A breadboard weather station based on the ESP8266 NodeMCU




On a cold day I decided to put together this useful project to gather the weather data in my house. The weather station is based on a NodeMCU ESP8266 Amica board. It uses a generic BMP180 temperature and pressure sensor, a DHT11 just for humidity, and outputs all the data to a SSD1306 128x64 OLED display. The whole project runs off usb power supplied to the main board, and 3.3V power taken from the board via the 3V3 pin.

The open source libraries used in this project are:
- Sparkfun BMP180
- Adafruit GFX and SSD1306

The display outputs the following information:




The Fritzing layout for the breadboard is below:



The code is available on my Github repo at https://github.com/matthew-au/

Some code notes:
-The 'maxHum' value for the DHT11 is set at 80 (percent) due to the relative inaccuracy of this sensor, so it won't measure above this value
-There is some serial output via the console for debugging purposes only
-The update frequency of the whole display is set at 5000 (5 seconds)