ESP32 Simple Web Server Question



  • I built simple web server using the WIFI Code in the Arduino IDE just to open and close my garage door. I used MIT APP inventer2 to make an app to control the ESP32 server.
    It works great for about 24 hours then it seems to log off my network and I have to reboot the ESP32 to get it working again. Any ideas would be helpful?


  • Mod

    Are you using Mysensors code in your ESP32?



  • Yes I am


  • Mod

    @mbalzano the faq at https://forum.mysensors.org/topic/666/debug-faq-and-how-ask-for-help should be a good place to start. Debug logs are usually very helpful.


  • Mod

    @mbalzano I think more details are needed about your setup and your code


  • Hardware Contributor

    I don't know about your code, but this may need tweaks to run your projects without bug, in mysensors.
    with tekka, we'll release a project like this, we are using async, not the regular arduino wifi code. don't ask plz 🙂 even if it's working so far, there is no eta for the moment (maybe for v3 or sooner, depends).



  • This is what my code looks like.
    It works great for about 24 hours then it seems like it logs off my network and I have to reboot the ESP32 to get it back online.

    */

    #include <WiFi.h>

    const char* ssid = "My SSID";
    const char* password = "My Password";

    WiFiServer server(80);

    void setup()
    {
    Serial.begin(115200);
    pinMode(2, OUTPUT); // set pin mode
    delay(10);

    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.");
    Serial.println("IP address: ");
    Serial.println(WiFi.localIP());
    
    server.begin();
    

    }

    int value = 0;

    void loop(){
    WiFiClient client = server.available(); // listen for incoming clients

    if (client) { // if you get a client,
    Serial.println("New Client."); // print a message out the serial port
    String currentLine = ""; // make a String to hold incoming data from the client
    while (client.connected()) { // loop while the client's connected
    if (client.available()) { // if there's bytes to read from the client,
    char c = client.read(); // read a byte, then
    Serial.write(c); // print it out the serial monitor
    if (c == '\n') { // if the byte is a newline character

          // if the current line is blank, you got two newline characters in a row.
          // that's the end of the client HTTP request, so send a response:
          if (currentLine.length() == 0) {
            // HTTP headers always start with a response code (e.g. HTTP/1.1 200 OK)
            // and a content-type so the client knows what's coming, then a blank line:
            client.println("HTTP/1.1 200 OK");
            client.println("Content-type:text/html");
            client.println();
    
            // the content of the HTTP response follows the header:
            
            client.print("Click <a href=\"/L1\">HERE</a> to open the garage door on.<br>");
    
            // The HTTP response ends with another blank line:
            client.println();
            // break out of the while loop:
            break;
          } else {    // if you got a newline, then clear currentLine:
            currentLine = "";
          }
        } else if (c != '\r') {  // if you got anything else but a carriage return character,
          currentLine += c;      // add it to the end of the currentLine
        }
    
        // Check to see if the client request was "GET /H" or "GET /L":
        if (currentLine.endsWith("GET /L1")) {
          digitalWrite(2, LOW);               // GET /L turns Zone 1 on
          delay(1000);
          digitalWrite(2, HIGH);
        }  
      }
    }
    

    }
    }


  • Mod

    I don't see any mysensors code


  • Hardware Contributor

    so you're not using MySensors lib ?? I don't see any reference to it in your code..

    If you're trying to get the simple arduino webserver example running to actuate your garage, you may get more luck asking in espressif forum/arduino section or on their git.
    you might also find a bunch of ESP32 howtos on web for this.

    Edit: @gohan you beat me 🙂


 

322
Online

8.0k
Users

8.8k
Topics

94.4k
Posts