- Wed Aug 05, 2015 8:42 pm#25135Thank you both for this thread, it got me going on my ESP12E
With a few changes
This is the wiring I had to do
Then I ran a lead from GPIO14 to a LED & Resistor to GND
In the code provided I replaced RELAY_PIN = 2 with RELAY_PIN = 14
I also had to do this each time I recompiled Leave GPIO0 to GND Pull the 3.3v from Power Supply and put it back in (I suppose this put the board back into flash mode)
Thank you again!
PS: Here is my ugly wiring on my desk. Orange Wire is from GPIO0 Yellow Wire is from GPIO14
Code: Select all/* * * Copyright (c) 2015. Mario Mikočević <mozgy> * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */
// Serial printing ON/OFF #include "Arduino.h" #define DEBUG false #define Serial if(DEBUG)Serial #define DEBUG_OUTPUT Serial
// if you use GPIO1 set Serial #define to false #define LED_PIN 1 // ESP-01 blue LED, GPIO1 // #define LED_PIN 16 // NodeMCU blue LED #define LED_ON digitalWrite( LED_PIN, LOW ) #define LED_OFF digitalWrite( LED_PIN, HIGH )
- Fri Aug 07, 2015 2:33 am#25255
I still think the below still falls under this topic, however it has an IFTTT hook for turning stuff on and off from the web. In this case, I added buttons which will control various items that I have connected on Wink's Genius power strips. So, I use the Maker channel (https://ifttt.com/maker) as my "THIS" and the Wink's Genius Power Strip (https://ifttt.com/pivot_power_genius) function as the "THAT".
Using Code which I got from Piotr Bagniewski's Channel on youtube (https://www.youtube.com/watch?v=gp6FN0A20qA) and just adding different things, this is what it looks like when running.
const char* ssid = "...YOURROUTERSSSID..."; // Our Wifi SSID const char* password = "...YOURROUTERSSISPASS..."; // Our Wifi Password const int buttonPin1 = 13; // GPIO13 which would be connected to a button const int buttonPin2 = 12; // GPIO12 which would be connected to a button const int buttonPin3 = 14; // GPIO14 which would be connected to a button const int buttonPin4 = 16; // GPIO16 which would be connected to a button const char* host = "maker.ifttt.com"; //IFTTT channel address const char* url = "ASTRING"; // Based on which button was pressed this would be the rest of the IFTTT URL Needed int buttonState1 = 0; int buttonState2 = 0; int buttonState3 = 0; int buttonState4 = 0; int led = 4; // LED to Signal that the command was sent to IFTTT int ledError = 5; // LED which would represent problem connecting to Router
if (buttonState1 == HIGH || buttonState2 == HIGH || buttonState3 == HIGH || buttonState4 == HIGH) { Serial.println("Button Press Detected"); if (value == 1){ // We now connect to local WIFI Serial.println("Attempting to connect to Router"); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { digitalWrite(ledError,1); // Turn the Error LED on to show there is a problem delay(250); digitalWrite(ledError,0); // Turn off the LED so it will have a flash effect, or least keep it off when loop ends delay(250); Serial.println("Trying Again"); } WiFiClient client; const int httpPort = 80; if (!client.connect(host, httpPort)) { return; } // We now create a URI for the request digitalWrite(led,1); // TURN ON LED Showing that we will send something to IFTTT Serial.println("Sending Command to IFTTT's Maker Channel"); if (buttonState1 == HIGH) { url = "/trigger/MAKERNAME1/with/key/MYREALLONGMAKERPRIVATEKEY"; //our link to trigger the event with special key and event name } if (buttonState2 == HIGH) { url = "/trigger/MAKERNAME2/with/key/MYREALLONGMAKERPRIVATEKEY"; //our link to trigger the event with special key and event name } if (buttonState3 == HIGH) { url = "/trigger/MAKERNAME3/with/key/MYREALLONGMAKERPRIVATEKEY"; //our link to trigger the event with special key and event name } if (buttonState4 == HIGH) { url = "/trigger/MAKERNAME3/with/key/MYREALLONGMAKERPRIVATEKEY"; //our link to trigger the event with special key and event name } // This will send the request to the server Serial.println(url); client.print(String("GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Connection: close\r\n\r\n"); value = 0; delay(1000); } digitalWrite(led,0); // TURN OFF LED to Show that we are done with IFTTT } else{ value = 1; delay(500); } }