ESP8266 - $5 Internet Connected Switch

87,015

628

42

Introduction: ESP8266 - $5 Internet Connected Switch

In this tutorial we will show how to build WiFi internet connected switch connected to EasyIoT Cloud. We will use ESP8266, solid state relay and Arduino IDE. Switch can be controlled by WEB application, native Android application or button.

Improved version of this switch can be found here:

https://www.instructables.com/id/ESP8266-5-Internet-Connected-Switch-Improved/

This internet switch is "plug and play" - it will automatically set all EasyIoT Cloud settings, so no configuration in EasyIoT Cloud is needed.

Material for switch cost about 5$.

WARNING!! You will play with LIVE MAINS!! Deadly zone!!
If you don't have any experience and are not qualified for working with MAINS power I will not ecourage you to play arround! Do NOT use it without proper Knowledge about MAINS circuits ! Do NOT use it without a proper FUSE on MAINS line! Max current for solid state in this tutorial is 2A - suitable for room light only.

Step 1: Material

Materials:

  • ESP8266 WiFi module
  • Solid State Relay 2A 240V
  • 3.3V 600mA AC-DC step down module
  • Push Button switch
  • NPN Transistor TO-92 2N2222
  • 1000uF electrolytic capacitor
  • resistor, 1K, 47K

Click to buying guide for ESP8266 internet connected swith.

Step 2: EasyIoT Cloud Registration

Register to EasyIoT Cloud. You will need username and password later in program. Also use username and password to access EasyIoT Cloud and control your device from computer or mobile phone. Also EasyIoT Cloud Android application is available.

Step 3: Program

Program is written in Arduino ESP8266 IDE. See Arduino ESP8266 IDE tutorial how to connect ESP8266 module to computer to upload program. Program can be downloaded from GitHub. You will also need MQTT client library. Add this library to library folder in Arduino IDE. Program uses EasyIoT Cloud MQTT API.

In program change following lines to set access point username and password and your EasyIoT Cloud username and password:

#define AP_SSID "xxx"
#define AP_PASSWORD "xxx"

#define EIOTCLOUD_USERNAME "xxx"

#define EIOTCLOUD_PASSWORD "xxx"

Step 4: Hardware

In our case we use ESP8266 01, but you can use any other type of ESP8266. GPIO2 is connected to NPN transistor to control SSR. Max current for our type of solid state relay is 2A - this is suitable for room light and not for applications which consume more power - for example heater.

For power supply we use 3.3V step down module. It's very important to add 1000uF capacitor to 3.3V power line - in our case switch didn't work if we skip this capacitor. GPIO0 is connected to push button for local control of internet switch.

After power on, switch will be automatically added to EasyIoT Cloud and it will be visible in WEB interface or Android application where you can control your device from remote locations.

Be the First to Share

    Recommendations

    • Microcontroller Contest

      Microcontroller Contest
    • Automation Contest

      Automation Contest
    • Make it Glow Contest

      Make it Glow Contest

    42 Comments

    0
    batvanio
    batvanio

    6 days ago

    Това много се съмнявам да струва 5 долара. Има готово подобно с повече възможности за около 9 долара в моята страна и управлява до 2200W или 10A при 220В. Да не говорим, че трябва и да се програмира. Sonoff BASICR2 струва малко под 5 долара в момента иначе е 6 долара.
    --------------------------------------------------------------------
    This I very much doubt costs $ 5. There is a similar one with more options for about $ 9 in my country and it runs up to 2200W or 10A at 220V. Not to mention that it needs to be programmed. Sonoff BASICR2 costs just under $ 5 at the moment otherwise it's $ 6

    0
    juaalta
    juaalta

    3 years ago

    Where can I get the enclosure? It's not listed in your buying guide.

    0
    djelincic
    djelincic

    5 years ago

    How can 3.3V output from ESP8266 trigger 5V relay?

    0
    BallscrewBob
    BallscrewBob

    Reply 5 years ago

    In my mock up the 3.3 triggers an opto switch that is part of a chinese relay module which allows the 5V to actually operate the relay.

    In this instance it is triggering a transistor as a switch to allow a larger load to operate the relay.

    Sort of like a relay to operate a bigger relay / larger load

    See the link for a little more explanation.

    http://www.hobbytronics.co.uk/arduino-tutorial9-po...

    0
    djelincic
    djelincic

    Reply 5 years ago

    Great, that makes sense! Thank you for explanation.

    0
    MarkS654
    MarkS654

    Reply 4 years ago

    It doesn't make sense, I'm afraid - there are traces of a couple of misunderstandings there. The ESP cannot supply enough current to drive a relay, and that's what you need a driver (e.g. the transistor) for, but in this circuit that does NOT increase the voltage - in fact (again, in THIS circuit) it decreases it. In the circuit as drawn, the relay is going to see a voltage of about 2.7v: it's being powered by a 3.3v supply, and you're going to lose about 0.6v of that across the transistor. Now, perhaps the relay will still work at 2.7v - I haven't tried - though it's not guaranteed. Really you either need a lower voltage relay, or a higher voltage supply for the relay. A supply giving 5v for the relay and 3.3v for the ESP would do nicely.

    0
    darcicidade
    darcicidade

    4 years ago

    Is it possible not to use the automatic registration of parameters?

    and, register manually the parameters!

    // Create Sensor.Parameter1

    #ifdef DEBUG

    Serial.println ( "/" + String (storage.moduleId) + "/Sensor.Parameter1/NewParameter");

    #endif

    myMqtt.subscribe ( "/" + String (storage.moduleId) + "/Sensor.Parameter1/NewParameter");

    waitOk ();

    0
    NikkiS8
    NikkiS8

    5 years ago

    Thanks for nice tutorial. How can I use it behind the proxy server ( my institute have proxy server with id and user name)

    0
    IshuJ1
    IshuJ1

    Reply 4 years ago

    Did you solve the proxy problem ? The same condition is in my institute also , I have also contacted various forums but they couldn't solve the problem.

    0
    JasonG123
    JasonG123

    4 years ago

    follow instructions and you will solve your error

    0
    JasonG123
    JasonG123

    4 years ago

    I receive this error .... seems im not the only one?

    ESP MQTT\mqtt\mqtt.c.o:(.bss.default_private_key_len+0x0): multiple definition of `default_private_key_len'

    ESP8266WiFi\WiFiClientSecure.cpp.o:(.bss.default_private_key_len+0x0): first defined here

    ESP MQTT\mqtt\mqtt.c.o:(.bss.default_certificate_len+0x0): multiple definition of `default_certificate_len'

    ESP8266WiFi\WiFiClientSecure.cpp.o:(.bss.default_certificate_len+0x0): first defined here

    collect2.exe: error: ld returned 1 exit status

    Error compiling

    0
    ChứcN
    ChứcN

    Reply 4 years ago

    https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=0ahUKEwiY5cPPwZTMAhUG5aYKHRCeBvsQtwIIIzAB&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DC1XSj9YvZtA&usg=AFQjCNG2YpTCfuuqjAY4yPFkmhzMrVZfxA&sig2=4Uhsl1oD2lu2ZBpp1PFAdw

    0
    zikzak1
    zikzak1

    5 years ago

    I just use my firewall/router. Log into it from anywhere. Added bonus, I can shut a single LAN IP address down, or all, or check traffic, or redirect, etc. Your device could come in handy for a few other things I can think of though!

    0
    iftikhar1
    iftikhar1

    Reply 4 years ago

    can you please shear your work.?i want to control esp8266 pins from global network.

    0
    ChứcN
    ChứcN

    4 years ago

    thank you very much your share

    0
    aegis21
    aegis21

    5 years ago

    Any help on the enclosure would be appreciated, great work!

    0
    Solominator
    Solominator

    5 years ago

    ...Aehm... It look like that you have voltage on the lamp even when it's not on...

    this can be dangerous.

    I think it would be better, when you connect the relais first to the power line and then the lamp... then you don't have voltage on the lamp, when the relais is off.

    0
    Arty Marty
    Arty Marty

    5 years ago

    Just wondering if this relay would also work or be better.
    http://pages.ebay.com/link/?nav=item.view&id=351542314917&alt=web
    It can be triggered by 3v and looks like it can handle 240v+ at 20A+ so could be used to operate Hi-Fi amp etc.
    I want to be able to turn my Stereo on/off with my phone to control music through the house.
    Would this work with this relay?

    0
    adillbeck
    adillbeck

    5 years ago

    What I'd really love would be to be able to make a 3 pole switch, so I could put it in line with a normal 3 pole wall switch in order to control lights remotely while still being able to control them locally too...