Stap 6: Sommige code te schrijven
Nu gaan we enkele code te schrijven.
Zie de code uit het web-led.ino bestand en branden van de code.
De code is eenvoudig, als ooit een client wordt gevonden, geeft het terug een webpagina waar u het kunt!
CODE
-------------
#define WIFI_AP "Uw WiFi-netwerk" / / dit de kans om de naam van uw wifi netwerk #define WIFI_PASSWORD "Wachtwoord" / / dit veranderen in het wachtwoord voor het netwerk #define WIFI_AUTH LWIFI_WPA / / kiezen uit LWIFI_OPEN, LWIFI_WPA, of LWIFI_WEP afhankelijk van de configuratie van uw WiFi AP / / als dit niet werkt, probeer LWIFI_WEP. Als uw netwerk niet een wachtwoord hebt, gebruikt u LWIFI_OPEN. int serverPort = 80; LWiFiServer server(serverPort); int LED = 13;
void setup {pinMode (LED, uitvoer); LWiFi.begin(); Serial.begin(115200); houden opnieuw totdat verbonden met AP Serial.println("Connecting to AP"); terwijl (0 == LWiFi.connect (WIFI_AP, LWiFiLoginInfo (WIFI_AUTH, WIFI_PASSWORD))) {digitalWrite (LED, hoge); delay(100); digitalWrite (LED, laag); delay(100); digitalWrite (LED, hoge); delay(100); digitalWrite (LED, laag); delay(600);
} digitalWrite (LED, hoge); printWifiStatus(); Serial.println ("Start Server"); server.begin(); Serial.println ("Server gestart"); digitalWrite (LED, laag); }
int loopCount = 0;
void loop {/ / zet uw belangrijkste code hier, om uit te voeren herhaaldelijk: String str = ""; String url = ""; int i; delay(500); loopCount ++; LWiFiClient client = server.available(); Als (client) {Serial.println ("nieuwe klant"); / / een http-verzoek eindigt met een lege regel Boole currentLineIsBlank = waar, terwijl (client.connected()) {als (client.available()) {/ / wij negeert in feite de aanvraag van de client, maar wacht voor HTTP verzoek einde char c = client.read(); Serial.Print(c); Als (c! = '\n') str += c; Als (c == '\n') {/ / Serial.println(str); als (str.startsWith ("GET")) {url = str.substring (4, str.lastIndexOf("")); Serial.Print("URL:"); Serial.Print(URL); Serial.println(":");} Str = "";}
Als (c == '\n' & & currentLineIsBlank) {Serial.println ("verzenden reactie"); / / versturen van een standaard http respons header client.println ("HTTP/1.1 200 OK"); client.println ("Content-Type: text/html"); client.println ("verbinding: sluiten"); / / de verbinding zal worden gesloten na voltooiing van de reactie client.println();
Als (url! = String("favicon.ico")) {client.println("");
Ik = digitalRead(LED); url.toLowerCase(); Als (url == String("/on")) {digitalWrite (LED, hoge); client.println ("Turning LED op");} anders als (url == String("/off")) {digitalWrite (LED, laag); client.println ("Turning LED uitschakelen");} else {client.println ("niets doen");} client.println("
\n
"); client.println(); breken; {}} Als (c == '\n') {/ / je begint een nieuwe lijn currentLineIsBlank = true;} anders als (c! = '\r') {/ / je hebt gekregen een teken op de huidige regel currentLineIsBlank = false;}} } / / de web browser tijd geven om te ontvangen van de gegevens-delay(50);
de verbinding sluiten: Serial.println ("nauwe band"); client.stop(); Serial.println ("client verbroken"); } }
VOID printWifiStatus() {/ / print de SSID van het netwerk dat u bent aangesloten op: Serial.print ("SSID:"); Serial.println(LWiFi.SSID());
afdrukken van uw WiFi schild van IP-adres: IP-adres ip = LWiFi.localIP(); Serial.Print ("IP-adres:"); Serial.println(IP);
Serial.Print ("subnetmasker:"); Serial.println(LWiFi.subnetMask());
Serial.Print ("gateway IP:"); Serial.println(LWiFi.gatewayIP());
afdrukken van de ontvangen signaalsterkte: lange rssi = LWiFi.RSSI(); Serial.Print ("signaalsterkte (RSSI):"); Serial.Print(RSSI); Serial.println ("dBm"); }
-------------
Zodra u deze stap hebt voltooid, ga naar de URL van LinkitONE en toegang tot uw webinterface.
http://192.168.xx.xx/on voor het draaien van licht op
http://192.168.xx.xx/off voor licht uitschakelen