LoRaWAN Packet Coder
26.01.2025
Elektronik | Funk | Software
Der Technik-Blog
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.
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.
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.
#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>"); }
Mit dem Flash Download Tool können fertig exportierte Programme (.BIN Datei) auf den ESP32/ESP8266 ohne Arduino IDE geladen werden
WeiterlesenDas 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)
WeiterlesenAEQ-WEB © 2015-2025 All Right Reserved