LinkIt en Wifi Cam Turner kontroll (3 / 6 steg)
Steg 3: Koden
Här är koden för servo rörliga baserat på vad som skrivs på IP-adressen.
#include
#include #include #include #include
#define WIFI_AP "Ditt WiFi-nätverk"
#define WIFI_PASSWORD "Lösenord"
#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.
Servo camservo;
void setup()
{
camservo.attach(3);
pinMode (LED, OUTPUT);
LWiFi.begin();
Serial.BEGIN(115200); hålla försöker igen tills ansluten till AP
Serial.println ("ansluter till AP");
medan (0 == LWiFi.connect (WIFI_AP, LWiFiLoginInfo (WIFI_AUTH, WIFI_PASSWORD))) {
digitalWrite (LED, hög);
Delay(300);
digitalWrite (LED, låg);
}
Server.BEGIN();
}
int loopCount = 0;
void loop()
{
String str = "";
Sträng url = "";
int i;
Delay(250);
loopCount ++;
LWiFiClient klient = server.available();
om (klient)
{
booleska currentLineIsBlank = sant;
samtidigt (client.connected())
{
om (client.available())
{
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");
client.println ("HTTP/1.1 200 OK");
client.println ("Content-Type: text/html");
client.println ("anslutning: Stäng");
client.println();
om (url! = String("favicon.ico"))
{
client.println("");
Jag = digitalRead(LED);
url.toLowerCase();
IF(URL == String("/lookleft"))
{
för (pos = 90; pos < = 180, pos + = 1)
{
camservo.write(POS);
Delay(10);
}
digitalWrite (LED, hög);
}
annat if(url == String("/lookright"))
{
digitalWrite (LED, låg);
för (pos = 90; pos > = 00; pos-= 1)
{
camservo.write(POS);
Delay(10);
}
}
client.println();
bryta;
}
}
om (c == "\n")
{
currentLineIsBlank = sant;
}
annars om (c! = '\r')
{
currentLineIsBlank = false;
}
}
}
Delay(30);
client.stop(); } }