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 https://github.com/marcoschwartz/aREST_UI/ git clone https://github.com/marcoschwartz/aREST
For relay control from a web-page download the esp8266-relay sketch into your sketch folder.
git clone https://github.com/openhomeautomation/esp8266-relay
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.
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.