Linkit en styra en Servo (4 / 4 steg)
Steg 4: Web Program
Här är programmet web, detta låter dig ställa in vinkeln på servo i en webbapplikation, webbservern är värd på Linkit en och du måste ange i dina WiFi referenser i programmet. IP-adressen till servern kommer att visas på en seriell övervaka när styrelsen är ansluten till WiFi-nätverk.
#include
#include
#include
#include
#include
Servo myservo;
#define WIFI_AP "SSID"
#define WIFI_PASSWORD "Lösenord"
#define WIFI_AUTH LWIFI_WPA
int serverPort = 80.
LWiFiServer server(serverPort);
int LED = 13.
int val;
void setup()
{
pinMode (LED, OUTPUT);
myservo.attach(9);
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(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
booleska currentLineIsBlank = sant;
samtidigt (client.connected())
{
om (client.available())
{
Vi i princip ignorerar klientbegäran, men vänta 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-svarshuvud
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 svar
client.println();
om (url! = String("favicon.ico"))
{
client.println("");
client.println("
\n
\n
\n
");
IP-adress ip = LWiFi.localIP();
client.println("
");
client.println("
Ange den servo vinkeln, ett värde mellan 0 - 180");
client.println("
Vinkel:
");
url.toLowerCase();
Val = url.substring(4).toInt();
myservo.write(val);
client.println ("nuvarande Servo vinkel");
client.println(val);
client.println("
\n
");
client.println();
bryta;
}
}
om (c == "\n")
{
du börjar en ny rad
currentLineIsBlank = sant;
}
annars om (c! = '\r')
{
du har fått ett tecken på den aktuella raden
currentLineIsBlank = false;
}
}
}
de web webbläsare möjlighet att ta emot data
Delay(50);
stänga anslutningen:
Serial.println ("nära samband");
client.stop();
Serial.println ("klienten kopplas från");
}
}
void printWifiStatus()
{
skriva 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ånga rssi = LWiFi.RSSI();
Serial.Print ("signalstyrka (RSSI):");
Serial.Print(RSSI);
Serial.println ("dBm");
}