Maker.io main logo

ESP8266 IoT Development Board Weather Station Using DHT11 Sensor & OLED

2026-06-01 | By Ron Cutts

License: GNU Lesser General Public License Displays Microcontrollers Wifi Arduino ESP32

In this tutorial, you will learn how to make a simple weather station using an ESP8266 IoT development board with a DHT11 sensor & OLED display. We are going to make all this using the Visuino program.

You will also learn how to set the I2C pins for any board in Visuino. This is very useful when you have a board with different I2C pins than the supported ones.

Learn more about Visuino: What is Visuino

What You Will Need

What You Will Need

What You Will Need photo 2

The Circuit

  • Connect the DHT11 sensor pin [VCC] to the Development Board pin [VCC] (see attached picture).

  • Connect the OLED display pin [VCC] to the Development Board pin [VCC] (see attached picture).

The Circuit

Start Visuino, and Select the Generic ESP8266 Board Type

The Visuino: https://www.visuino.eu also needs to be installed. Download the free version or register for a free trial.

Start Visuino as shown in the first picture. Click on the "Tools" button on the Arduino component (Picture 1) in Visuino. When the dialog appears, select "Generic ESP8266" as shown in Picture 2

Start Visuino, and Select the Generic ESP8266 Board Type

Start Visuino, and Select the Generic ESP8266 Board Type photo 2

In Visuino, set I2C pins

Select the Generic ESP8266 Board and in the Properties window expand "I2C Channels" > "I2C" and set "SCL" to 14 and "SDA" to 2

Note: Your ESP8266 IoT Development Board might have different SCL & SDA pins, so check your board specification

In Visuino Set I2C Pins

In Visuino, Add Components

  • Add "OLED I2C" component

  • Add "DHT11" component

Note: in case you have any other DHT sensor, select the "HumidityThermometer1" component and in the properties window, select the type of your DHT sensor, either DHT11, DHT22, etc.

In Visuino Add Components

In Visuino Add Components photo 2

In Visuino Set Components

Double-click on the "DisplayOLED1" component and in the "Elements" window

  • Drag "Draw Text" to the left side & in the properties window set size to 2, "Text" to TEMP

  • Drag another "Draw Text" to the left side & in the properties window set size to 2, "Text" to HUM & "Y" to 40

  • Drag "Text Field" to the left side & in the properties window set size to 2, and "X" to 60

  • Drag another "Text Field" to the left side & in the properties window set size to 2, and "X" to 60 and "Y" to 40

  • Close the "Elements" window

In Visuino Set Components

In Visuino Set Components photo 2

In Visuino Set Components photo 3

In Visuino Set Components photo 4

In Visuino Set Components photo 5

In Visuino Connect Components

  • Connect "HumidityThermometer1" pin [Temperature] to "DisplayOLED1" > "TextField1" pin [In]

  • Connect "HumidityThermometer1" pin [Humidity] to "DisplayOLED1" > "TextField2" pin [In]

  • Connect "HumidityThermometer1" pin [Sensor] to "Generic ESP8266 Board" GPIO pin [5]

  • Connect "DisplayOLED1" pin I2C [Out] to "Generic ESP8266 Board" I2C pin [In]

In Visuino Connect Components

In Visuino Connect Components photo 2

Generate, Compile, and Upload the Arduino Code

In Visuino, at the bottom, click on the "Build" tab, make sure the correct port is selected, then click on the "Compile/Build and Upload" button.

Generate, Compile, and Upload the Arduino Code

Play

If you power the ESP8266 IoT Development Board, the display will start to show the current temperature and humidity.

Congratulations! You have completed your project with Visuino. Also attached is the Visuino project that I created for this tutorial. You can download it and open it in Visuino: https://www.visuino.eu

Downloads

Have questions or comments? Continue the conversation on TechForum, DigiKey's online community and technical resource.