-->
Page 1 of 2

ESP8266-01 not starting correct with LED attached.

PostPosted: Fri Mar 03, 2017 5:51 am
by henkoegema
I have an ESP8266-1 as webserver.
Connected to GPIO2 is a LED which I can switch on and off via web.

When I power off the ESP it will not start correct as long as the LED is connected. :roll:
When I restart without the LED connected to GPIO2 and connect the LED after power is restored than it works ok. :)

Re: ESP8266-01 not starting correct with LED attached.

PostPosted: Fri Mar 03, 2017 5:58 am
by schufti
let me guess !! .... you connected the led between gpio2 and gnd !!

connect it between Vcc and gpio2 and .... experience another miracle !!

(don't forget the resistor and to invert your logic)

Re: ESP8266-01 not starting correct with LED attached.

PostPosted: Fri Mar 03, 2017 7:25 am
by henkoegema
schufti wrote:let me guess !! .... you connected the led between gpio2 and gnd !!

You guessed correct.
schufti wrote:connect it between Vcc and gpio2 and .... experience another miracle !!

I'm going to try.
But what could be the reason that the way I did it is not working? (b.t.w. On the ESP8266-12E I don't have this problem.)
schufti wrote:(don't forget the resistor and to invert your logic)

:)

Re: ESP8266-01 not starting correct with LED attached.

PostPosted: Fri Mar 03, 2017 8:55 am
by henkoegema
schufti wrote:......................................
.....................................
(don't forget the resistor and to invert your logic)

I have reversed the LED. ( GPIO2 -> resistor -> LED -> VCC)
Changed pinMode(2, OUTPUT) to pinmode(2, INPUT)

But after that I'm not sure what to do. :?:


    /*
    * This sketch demonstrates how to set up a simple HTTP-like server.
    * The server will set a GPIO pin depending on the request
    * http://server_ip/gpio/0 will set the GPIO2 low,
    * http://server_ip/gpio/1 will set the GPIO2 high
    * server_ip is the IP address of the ESP8266 module, will be
    * printed to Serial when the module is connected.
    */

    #include <ESP8266WiFi.h>

    const char* ssid = "Sitecom438xxx";
    const char* password = "ABCDEFGH";

    // Create an instance of the server
    // specify the port to listen on as an argument
    WiFiServer server(80);

    void setup() {
    Serial.begin(115200);
    delay(10);


    // prepare GPIO2
    // pinMode(2, OUTPUT); <---Commented out by me !!
    // digitalWrite(2, 0); <---Commented out by me !!

    // prepare GPIO2
    pinMode(2, INPUT); <----Changed this value from OUTPUT to INPUT

    // Connect to WiFi network
    Serial.println();
    Serial.println();
    Serial.print("Connecting to ");
    Serial.println(ssid);

    WiFi.begin(ssid, password);

    while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
    }
    Serial.println("");
    Serial.println("WiFi connected");

    // Start the server
    server.begin();
    Serial.println("Server started");

    // Print the IP address
    Serial.println(WiFi.localIP());

    }

    void loop() {
    // Check if a client has connected
    WiFiClient client = server.available();
    if (!client) {
    return;
    }

    // Wait until the client sends some data
    //Serial.println("new client");
    while(!client.available()){
    delay(1);
    }

    // Read the first line of the request
    String req = client.readStringUntil('\r');
    Serial.println(req);
    client.flush();

    // Match the request
    int val;
    if (req.indexOf("/gpio/0") != -1)
    val = 0;
    else if (req.indexOf("/gpio/1") != -1)
    val = 1;
    else {
    //Serial.println("invalid request");
    client.stop();
    return;
    }

    // Set GPIO2 according to the request
    digitalWrite(2,0 ); <----- How to handle this here ?

    client.flush();

    // Prepare the response
    //String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\nGPIO is now ";
    //s += (val)?"high":"low";
    //s += "</html>\n";

    // Send the response to the client
    //client.print(s);
    delay(1);
    //Serial.println("Client disonnected");

    // The client will actually be disconnected
    // when the function returns and 'client' object is detroyed
    }