Using the ESP8266 module for the Internet of Things

Controlling a relay with the WeMos D1 Mini

The WeMos D1 Mini is very useful for home automation projects. The following tutorial shows how to connect a two channel relay board in order to build a web-controlled power switch.

For the project you will need:

  • WeMos D1
  • a half size breadboard
  • M/M and M/F jumper wires
  • a breadboard power supply
  • a darlington array, such as ULN2003
  • a 2 – 8 channel relay board

To get started, you need to download the aREST and aREST_UI library which allows to build a simple web-interface containing buttons, switches or sliders to control modules connected to the GPIO pins. Both must be cloned into the Arduino-IDE library folder.

git clone
git clone

For relay control from a web-page download the esp8266-relay sketch into your sketch folder.

git clone


The relay board is powered by 5 Volts, whereas the WeMos D1 Mini GPIO pins provide only 3.3 V. Therefore, the WeMos D1′ GPIO pins cannot be wired directly  to the relays’ input pins. Instead a transistor circuit should be used. If your relay board has multiple channels, a darlington array is even more convenient for this purpose, because it includes the resistors necessary for connecting the transistor base.

IMG_7663 WeMos_D1_Relay

The WeMos Mini is connected to the +3.3 Volt power rail of the breadboard and the D1 is wired to pin 1 of the ULN2003. The relay board resides on the 5 Volt side of the breadboard and shares only the common ground of the circuit. The input pin of the relay board connects to pin 16 of the ULN2003. Pin 9 connects to +5 Volt.

Notify of
Inline Feedbacks
View all comments
8 years ago

Here is better Fritzing part for WeMos D1 mini:

8 years ago

Yep Fritzing is a nice software but UI is not so clear… (and also it’s not really stable). However it’s the only one I know that can make breadboard/stripboard schematic…

I manage to create some parts following the Sparkfun tutorial :
Using inkscape for svg creation.

8 years ago

Thanks for this post !

I’m looking for a fritzing part for Wemos D1. I guess your schema is made with fritzing.

Can you indicate me where do you find the WeMos D1 part ? or if you made it, can you share it ?

Thanks !

8 years ago
Reply to  luetzel

Ok thanks for your answer,
I also ask here:

I think I will open inkscape and try to build it. I’ll post a link to github as soon as it is done.

8 years ago
Reply to  Emmanuel N.

I just create a quick&dirty part.
It is here :

For my use (== stripboard design and documentation) it should do the job… However feel free to improve it ! there is to do 😉