Events

23.05.2022: Tiefpassfilter

:

Elektronik | Funk | Software

Der Technik-Blog

  • Social Media

    Werbung:


    Neue Artikel


    Events

    Der Technik-Blog

    ESP32 WiFi HTTP Webserver

    ESP32 WiFi Webserver

    Alex @ AEQ-WEB

    In diesem Beispielcode zeigen wir, wie mit dem ESP32 ein einfacher Webserver erstellt wird, der die verfügbaren WLAN-Netzwerke in der Umgebung in einer HTML-Tabelle anzeigt. In diesem Beispiel verwendet der ESP32 ein bereits verfügbares WLAN-Netzwerk und lässt sich vom DHCP-Server eine IP-Adresse zuweisen. Anfänger müssen zuerst den ESP32 im Arduino IDE installieren.

    ESP32 Webserver

    Dieses Codebeispiel benötigt lediglich die WiFi-Bibliothek, welche standardmäßig mit der Installation der Entwicklungsumgebung mitgeliefert wird. Im Serial Monitor vom Arduino IDE werden Informationen über den Status der Verbindung sowie die aktuelle IP-Adresse des Boards angezeigt. Damit mit dem Computer auf den ESP32 zugreifen werden kann, müssen sich beide Geräte im selben Netzwerk befinden.

    Werbung:

    Wird die IP-Adresse des Boards im Browser eingegeben, so zeigt das Board seine eigene MAC-Adresse an. Zusätzlich zeigt es die Signalstärke zum verbundenen Accesspoint in dBm an. In der Tabelle sind die WLAN-Netzwerke der Umgebung und dessen Signalstärke ersichtlich.

    ESP_Webserver.ino
    Download
    #include <WiFi.h>
    
    // Set your Network Name and Password
    const char* ssid = "YOURNETWORK";
    const char* password = "PASSWORD";
    
    WiFiServer server(80);
    
    char linebuf[80];
    int charcount = 0;
    
    void setup() {
    
    //Initialize serial and wait for port to open:
    Serial.begin(115200);
    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();
    }
    
    void loop() {
    // listen for incoming clients
    WiFiClient client = server.available();
    if (client) {
    Serial.println("New client");
    long rssi = WiFi.RSSI();
    memset(linebuf, 0, sizeof(linebuf));
    charcount = 0;
    boolean currentLineIsBlank = true;
    while (client.connected()) {
    if (client.available()) {
    char c = client.read();
    Serial.write(c);
    linebuf[charcount] = c;
    if (charcount < sizeof(linebuf) - 1) charcount++;
    if (c == '\n' && currentLineIsBlank) {
    // send a standard http response
    client.println("HTTP/1.1 200 OK");
    client.println("Content-Type: text/html");
    client.println("Connection: close");
    client.println();
    client.println("<!DOCTYPE HTML><html><head>");
    client.println("<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"></head>");
    client.println("<h1>ESP32 WiFi HTTP Server</h1>");
    client.print("<p>RSSI: ");
    client.print(rssi);
    client.println(" dBm</p>");
    client.print("<p>Local MAC: ");
    getMacAddress(client);
    client.println("</p>");
    client.print("<p>Neighborhood networks:</p>");
    getNetworks(client);
    client.println("");
    client.println("</html>");
    break;
    }
    if (c == '\n') {
    currentLineIsBlank = true;
    memset(linebuf, 0, sizeof(linebuf));
    charcount = 0;
    } else if (c != '\r') {
    // you've gotten a character on the current line
    currentLineIsBlank = false;
    }
    }
    }
    delay(1);
    client.stop();
    Serial.println("client disconnected");
    }
    }
    
    void getMacAddress(WiFiClient client) {
    byte mac[6];
    WiFi.macAddress(mac);
    client.print(mac[5], HEX);
    client.print(":");
    client.print(mac[4], HEX);
    client.print(":");
    client.print(mac[3], HEX);
    client.print(":");
    client.print(mac[2], HEX);
    client.print(":");
    client.print(mac[1], HEX);
    client.print(":");
    client.println(mac[0], HEX);
    }
    
    void getNetworks(WiFiClient client) {
    
    int numSsid = WiFi.scanNetworks(); client.println("<table border='1' style='width: 300px'>");
    client.println("<tr>");
    client.println("<th style='width: 15px'>NR</th>");
    client.println("<th style='width: 255px'>Name</th>");
    client.println("<th style='width: 20px'>dBm</th>");
    client.println("</tr>");
    for (int thisNet = 0; thisNet < numSsid; thisNet++) {
    client.println("<tr>");
    client.println("<td>");
    client.print(thisNet);
    client.println("</td>");
    client.println("<td>");
    client.print(WiFi.SSID(thisNet));
    client.println("</td>");
    client.println("<td>");
    client.print(WiFi.RSSI(thisNet));
    client.println("</td>");
    client.println("</tr>");
    }
    client.println("</table>");
    }


    122X122

    Über den Autor

    Alex, der Gründer von AEQ-WEB. Seit über 10 Jahren beschäftigt er sich mit Computern und elektronischen Bauteilen aller Art. Neben den Hardware-Projekten entwickelt er auch Webseiten, Apps und Software für Computer.

    Top Artikel in dieser Kategorie:

    Arduino ESP32 TTGO SIM800 GSM GPRS Modul Overview

    Arduino/ESP32 SIM800

    • Video
    • DE/EN

    Das SIM800 ist ein geniales GSM/GPRS Modul. In diesem Artikel geht es um die Inbetriebnahme und Verdrahtung vom SIM800 mit dem Arduino und dem ESP32 (TTGO)

    Weiterlesen
    Die große LoRa Wettertstation Software

    Die große LoRa Wetterstation

    • Video

    In diesem Artikel bauen wir eine autarke LoRa Wetterstation, die Temperatur, Luftdruck, Feuchtigkeit, Sonnenintensität und Windgeschwindigkeit messen kann

    Weiterlesen

    Social Media

    Werbung:


    Neue Artikel


    Events