Der Wlan Repeater
Da der ESP8266 gleichzeitig als Wlan Client in einem bestehenden Wlan Netwerk und als Wlan Router verwendet werden kann, kann er auch als Repeater verwendet werden, also Informationen über das "fremde" Wlan Netzwerk aus dem Internet holen, und im "eigenen" Wlan Netzwerk verteilen.
Nichtsdestotrotz kann man den ESP 8266 nicht als konventionellen Wlan Repeater zum Surfen im Internet und Filme streamen verwenden, da er hierfür viel zu schwach ist. Zum weiterleiten von konkreten Informationen oder Websites, kann man den ESP jedoch verwenden.
Der Sketch
Der Sketch ist dabei im Prinzip nur die Mischung des Sketches zum Herunterladen einer Website aus dem Internet und des Sketches für den ESP zum gleichzeitigen Betrieb als Wlan Router und Client.
Als Beispiel habe ich einen Sketch geschrieben, welcher, sobald in seinem Wlan Netzwerk seine IP Adresse (192.168.4.1) aufgerufen wird, die Yahoo Wetterseite an den Client weiterleitet, also in einer Variable speichert und diese dann erneut "verschickt".
Wie man einen Sketch auf den ESP 8266 hochlädt, habe ich bereits hier erklärt. Außerdem sollte man vor dem Hochladen noch im Sketch die Daten des bestehenden Wlan Netzwerkes eingeben.
Hier der gesamte Code:
Hier der gesamte Code:
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <ESP8266WiFi.h> | |
#include <WiFiClient.h> | |
#include <WiFiServer.h> | |
#include <WiFiUdp.h> | |
#include <ESP8266mDNS.h> | |
#include <ESP8266WebServer.h> | |
const char* ssid = "*********"; //Name des bestehenden Wlan Netzwerkes | |
const char* password = "**********"; //Passwort des bestehenden Wlan Netzwerkes | |
char serverw[] = "weather.yahooapis.com"; //Webserver | |
WiFiClient client; | |
String website; | |
ESP8266WebServer server(80); | |
MDNSResponder mdns; | |
void setup() { | |
Serial.begin(115200); | |
delay(10); | |
WiFi.softAP("esp8266_ap", "michaelsarduino"); //Name und Passwort des neuen Wlan Netzwerks | |
// 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("."); | |
} | |
if (mdns.begin("esp8266", WiFi.localIP())) { | |
Serial.println("MDNS responder started"); | |
} | |
server.begin(); | |
server.on("/", handleRoot); | |
} | |
void loop() { | |
server.handleClient(); | |
mdns.update(); | |
} | |
void handleRoot() { | |
if (client.connect(serverw, 80)) { | |
//Serial.println("connected to server"); | |
client.println("GET /forecastrss?w=676757&u=c HTTP/1.1"); // /index.html durch gewuenschte Unterseite ersetzen (index.html = Startseite) | |
client.println("Host: weather.yahooapis.com"); //Adresse des Webservers | |
client.println("Connection: close"); | |
client.println(); //Verbindungs mit Server aufbauen und HTTP Anfrage senden | |
} | |
while(website.length() < 10) | |
{ | |
while (client.available()) | |
{ | |
website = client.readString(); | |
} | |
} | |
if (!client.connected()) { | |
Serial.println(); | |
Serial.println("disconnecting from server."); | |
client.stop(); | |
//Beenden der Verbindung | |
} | |
server.send(200, "text/html", "<h1>Yahoo Wetter</h1>"); | |
server.send(200, "text/html", website); | |
} |
Sobald nun ein Gerät im Wlan Netzwerks des ESP 8266 (SSID: esp8266_ap, Passwort: michaelsarduino) die Website des ESP aufruft (192.168.4.1), sieht es die Yahoo Wetterseite.
Keine Kommentare:
Kommentar veröffentlichen
Mit dem Veröffentlichen eines Kommentars erklären Sie sich mit unserer Datenschutzerklärung einverstanden.
https://michaelsarduino.blogspot.de/p/datenschutzerklarung.html