Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <ESP8266WiFi.h>
- #define LED1 D0 // Verbindung zum Client
- char* ssid; // Server SSID
- char* password; // Server Passwort
- #define MAXSC 2 // Maximale Anzahl an Clients
- WiFiServer IServer(9001); // Server und Portnummer
- WiFiClient IClient[MAXSC]; // Maximale Anzahl an Clients festlegen
- void setup()
- {
- Serial.begin(115200);
- pinMode(LED1, OUTPUT);
- Serial.println();
- Serial.println("I/O Pin Mode fertig");
- SetWifi("HALLO", ""); //void SetWiFi gestartet (richtet WiFi ein)
- }
- void loop()
- {
- IrgendEinName(); //void IrgendEinName() läuft ab
- }
- void SetWifi(char* Name, char* Password)
- {
- WiFi.disconnect(); //Alle vorherigen Verbindungen schließen
- WiFi.mode(WIFI_AP_STA); //WiFi Mode
- Serial.println("WIFI Mode : AccessPoint Station");
- ssid = Name; //WiFi Einrichtung
- password = Password;
- WiFi.softAP(ssid, password);
- Serial.println("WIFI < " + String(ssid) + " > ... Started");
- delay(1000);
- IPAddress IP = WiFi.softAPIP(); //IP Adresse ausgeben
- Serial.print("AccessPoint IP : ");
- Serial.println(IP);
- IServer.begin(); //Server starten
- Serial.println("Server Started");
- }
- void IrgendEinName()
- {
- if (IServer.hasClient()) //Wenn ein Client vorhanden ist / sich mit dem AP verbunden hat
- {
- Serial.println("gefunden");
- for(int i = 0; i < MAXSC; i++)
- { //In dieser for() Schleife wird nach einem freien
- if (!IClient[i] || !IClient[i].connected()) //freien Platz in einer Array gesucht, um einen neuen
- { //Client darin abzuspeichern
- if(IClient[i]) IClient[i].stop();
- IClient[i] = IServer.available(); //Hier geschieht das speichern
- Serial.print("Neuer Client : "); Serial.print(String(i+1) + " - ");
- continue;
- }
- }
- digitalWrite(LED1, HIGH); //Falls kein freier Platz vorhanden ist -> rausschmeißen
- WiFiClient IClient = IServer.available();
- IClient.stop();
- }
- //Serial.println("draußen");
- for(int i = 0; i < MAXSC; i++) //Daten nach Information abfragen
- {
- //Serial.println("Unten");
- if (IClient[i] && IClient[i].connected()) //Ist in i ein Client abgespeichert && verbunden?
- {
- if(IClient[i].available()) //Hat Client i eine Anfrage?
- {
- while(IClient[i].available()) //Sollange Anfrage vorhanden...
- {
- Serial.println(IClient[i].readStringUntil('\n')); //Anfrage bis zum Ende printen
- IClient[i].println("<OK>"); //Jedesmal eine Bestätigung zurücksenden
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement