Smartphone styrd fläkt med LinkitONE (5 / 8 steg)
Steg 5: Skriva någon kod
Nu ska vi skriva någon kod.
Koden är enkel, när allt den hittar en klient, det ger tillbaka en webbsida där du kan styra det!
KODEN
-------------
#define WIFI_AP "Ditt WiFi-nätverk" / / chans detta till din wifi-nätverksnamn #define WIFI_PASSWORD "Lösenord" / / ändra detta till lösenord för nätverket #define WIFI_AUTH LWIFI_WPA / / välja mellan LWIFI_OPEN, LWIFI_WPA eller LWIFI_WEP enligt din WiFi AP konfiguration / / om detta inte fungerar, prova LWIFI_WEP. Om ditt nätverk inte har ett lösenord, Använd LWIFI_OPEN. int serverPort = 80. LWiFiServer server(serverPort); int LED = 13.
void setup() {pinMode (LED, OUTPUT); LWiFi.begin(); Serial.BEGIN(115200); hålla försöker igen tills ansluten till AP Serial.println("Connecting to AP"); medan (0 == LWiFi.connect (WIFI_AP, LWiFiLoginInfo (WIFI_AUTH, WIFI_PASSWORD))) {digitalWrite (LED, hög); delay(100); digitalWrite (LED, låg); delay(100); digitalWrite (LED, hög); delay(100); digitalWrite (LED, låg); delay(600);
} digitalWrite (LED, hög); printWifiStatus(); Serial.println ("starta Server"); Server.BEGIN(); Serial.println ("Server började"); digitalWrite (LED, låg); }
int loopCount = 0;
void loop() {/ / sätta din huvudsakliga kod här, för att köra flera gånger: String str = ""; Sträng url = ""; int i; Delay(500); loopCount ++; LWiFiClient klient = server.available(); om (klient) {Serial.println ("ny kund"); / / en http-förfrågan avslutas med en tom rad boolean currentLineIsBlank = true; stunder (client.connected()) {om (client.available()) {/ / vi i princip ignorerar klientbegäran, men vänta för HTTP begäran slutet char c = client.read(); Serial.Print(c); om (c! = '\n') str += c; om (c == "\n") {/ / Serial.println(str), om (str.startsWith ("få")) {url = str.substring (4, str.lastIndexOf("")); Serial.Print("URL:"); Serial.Print(URL); Serial.println(":");} Str = "";}
om (c == '\n' & & currentLineIsBlank) {Serial.println ("Skicka svar"); / / Skicka ett standard http svar huvud client.println ("HTTP/1.1 200 OK"), client.println ("Content-Type: text/html"); client.println ("anslutning: Stäng"); / / anslutningen kommer att stängas efter slutförandet av det svar client.println();
om (url! = String("favicon.ico")) {client.println("");
Jag = digitalRead(LED); url.toLowerCase(); om (url == String("/on")) {digitalWrite (LED, hög), client.println ("vrida LED på");} annars om (url == String("/off")) {digitalWrite (LED, låg), client.println ("vrida LED av");} annat {client.println ("gör ingenting");} client.println("
\n
"); client.println(); bryta; {}} om (c == "\n") {/ / du börjar en ny linje currentLineIsBlank = true;} else om (c! = '\r') {/ / du har fått ett tecken på den aktuella raden currentLineIsBlank = false;}} } / / ge web browser tid att ta emot data delay(50);
stänga anslutningen: Serial.println ("nära samband"); client.stop(); Serial.println ("klienten kopplas från"); } }
void printWifiStatus() {/ / Skriv ut SSID för nätverket du är ansluten till: Serial.print ("SSID:"); Serial.println(LWiFi.SSID());
skriva ut din WiFi shield's IP-adress: IP-adress ip = LWiFi.localIP(); Serial.Print ("IP-adress:"); Serial.println(IP);
Serial.Print ("nätmask:"); Serial.println(LWiFi.subnetMask());
Serial.Print ("gateway IP:"); Serial.println(LWiFi.gatewayIP());
skriva ut mottagna signalstyrka: lång rssi = LWiFi.RSSI(); Serial.Print ("signalstyrka (RSSI):"); Serial.Print(RSSI); Serial.println ("dBm"); }
-------------
När du slutför detta steg, gå till URL LinkitONE och komma åt din webbgränssnitt.
http://192.168.xx.xx/on för att aktivera krets
http://192.168.xx.xx/off för att stänga krets av