FÖRSLITNING: Kvinnor Wearable säkerhetsanordning (3 / 5 steg)
Steg 3: Mjukvara Setup!
För det första du måste setup din MediaTek LinkIt en styrelse med Arduino IDE, så jag ber er att följa instruktionerna som finns i den officiella hemsida MediaTek Labs: http://bit.ly/1KcU66X
När du har slutfört inställningen, kan du starta IDE och se till att du är ansluten till rätt COM-Port.
Arduino källkoden:
< p > / * < br > * kvinnor säkerhet Wearable
* Författare: Geeve George
* Instrubtables:
* / < /p >< p > #include < Ltask.h >< ltask.h >
#include < LWiFi.h >< lwifi.h >
#include < LWiFiServer.h >< lwifiserver.h >
#include < LWiFiClient.h >< lwificlient.h >< /lwificlient.h >< /lwifiserver.h >< /lwifi.h >< /ltask.h >< /p >< p > #define WIFI_AP "Din Wifi SSID"
#define WIFI_PASSWORD "Din Wifi lösenord"
#define WIFI_AUTH LWIFI_WPA < /p >< p > int serverPort = 80.
LWiFiServer server(serverPort);
int LED = 13. < /p >< p > #include < Wire.h >< wire.h >< /wire.h >< /p >< p > < rgb_lcd.h >< rgb_lcd.h >< /rgb_lcd.h >< /p >< p > #include #include < LGPS.h >< lgps.h >< /lgps.h >< /p >< p > gpsSentenceInfoStruct information;
röding buff [256]; < /p >< p > rgb_lcd lcd; < /p >< p > int ButtonPin = 7.
int BuzzerPin = 2; < /p >< p > dubbel bredd.
dubbla longitud; < /p >< p > int buttonState; < /p >< p > statisk unsigned char getComma (unsigned char num, const char * str)
{
unsigned char i, j = 0;
int len=strlen(str);
för (jag = 0; jag < len; jag ++)
{
om (str [i] == ",")
j ++;
IF(j == NUM)
tillbaka i + 1.
}
Return 0;
} < /p >< p > statisk dubbel getDoubleNumber (const char * s)
{
char buf [10].
unsigned char i.
dubbla rev;
Jag = getComma 1, s;
jag = i - 1.
strncpy (buf, s, i);
BUF [i] = 0;
rev=ATOF(BUF);
returnera rev;
} < /p >< p > statisk dubbel getIntNumber (const char * s)
{
char buf [10].
unsigned char i.
dubbla rev;
Jag = getComma 1, s;
jag = i - 1.
strncpy (buf, s, i);
BUF [i] = 0;
rev=atoi(BUF);
returnera rev;
} < /p >< p > void parseGPGGA (const char * GPGGAstr)
{
dubbel bredd.
dubbel longitud;
int tmp, timme, minut, sekund, num;
om (GPGGAstr [0] == ")
{
tmp = getComma (1, GPGGAstr);
timme = (GPGGAstr [tmp + 0] - '0') * 10 + (GPGGAstr [tmp + 1] - '0');
minut = (GPGGAstr [tmp + 2] - '0') * 10 + (GPGGAstr [tmp + 3] - '0');
för det andra = (GPGGAstr [tmp + 4] - '0') * 10 + (GPGGAstr [tmp + 5] - '0');
sprintf (buff, "UTC timer 2d-% 2d-% 2d", timme, minut, sekund);
Serial.println(buff);
tmp = getComma (2, GPGGAstr).
Latitude = getDoubleNumber (& GPGGAstr[tmp]);
tmp = getComma (4, GPGGAstr).
longitud = getDoubleNumber (& GPGGAstr[tmp]);
sprintf (buff, "latitud = % 10 .4f, longitud = %10.4f", latitud, longitud);
Serial.println(buff);
tmp = getComma (7, GPGGAstr).
NUM = getIntNumber (& GPGGAstr[tmp]);
sprintf (buff, "satelliter nummer = %d", num);
Serial.println(buff);
}
annat
{
Serial.println ("inte få data");
}
} < /p >< p > void setup()
{< /P >< p > Serial.begin(9600);
LCD.BEGIN(16,2); < /p >< p > LGPS.powerOn();
Serial.println ("LGPS driver på och väntar...");
Delay(3000);
pinMode(ButtonPin,INPUT);
pinMode(BuzzerPin,OUTPUT);
pinMode (LED, OUTPUT);
LWiFi.begin(); < /p >< p > / / 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); < /p >< p >}
digitalWrite (LED, hög);
printWifiStatus();
Serial.println ("starta Server");
Server.BEGIN();
Serial.println ("Server började");
digitalWrite (LED, låg);
} < /p >< p > int loopCount = 0; < /p >< p > void loop()
{< /p >< p >
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 = "";
} < /p >< p > 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
< /p >< p > \n < /p >< p > ");
IP-adress ip = LWiFi.localIP();
client.println("
< /p >< center > ");
client.println("
< bildar åtgärd = "");
client.println ("" metod = "Få" > berätta din enhet vad göra! < br >< br >< ingång typ = "radio" namn = "q" värde = "on" > Aktivera LED. < br >< ingång typ = "radio" namn = "q" värde = "off" > vända LED av. < br >< br >< ingång typ = "Skicka" värde = "Gör det!" >< / form >< p > ");
Jag = digitalRead(LED);
url.toLowerCase();
IF(URL == String("/?q=on"))
{< /p >< p > lcd.clear();
LCD.println("lat:");
LCD.println(Latitude);
lcd.setCursor(0,1);
LCD.println("Lon:");
LCD.println(Longitude);
Serial.println ("http://www.latlong.net/c/?lat=");
Serial.println(Latitude);
Serial.println ("& länge =");
Serial.println(Longitude);
digitalWrite(BuzzerPin,HIGH);
Delay(2000);
digitalWrite(BuzzerPin,LOW);
LCD.Clear(); < /p >< p >
digitalWrite (LED, hög);
client.println ("LED på < br >");
}
annat if(url == String("/?q=off"))
{
digitalWrite (LED, låg);
client.println ("ledde bort < br >"); < /p >< p > digitalWrite(BuzzerPin,LOW);
LCD.Clear();
}
annat
{
client.println ("gör ingenting < br >"); < /p >< p > digitalWrite(BuzzerPin,LOW);
LCD.Clear();
}
client.println ("< /p >< / center >< p > \n < /p >< p >");
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); < /p >< p > / / Stäng anslutningen:
Serial.println ("nära samband");
client.stop();
Serial.println ("klienten kopplas från");
} < /p >< p > buttonState = digitalRead(ButtonPin); < /p >< p > if(buttonState == HIGH) {
LCD.Clear();
LCD.println("lat:");
LCD.println(Latitude);
lcd.setCursor(0,1);
LCD.println("Lon:");
LCD.println(Longitude);
Serial.println ("länk: http://www.latlong.net/c/?lat=");
Serial.println(Latitude);
Serial.println ("& länge =");
Serial.println(Longitude);
digitalWrite(BuzzerPin,HIGH);
Delay(2000);
digitalWrite(BuzzerPin,LOW);
LCD.Clear(); < /p >< p >
} < /p >< p > annat
{
digitalWrite(BuzzerPin,LOW);
LCD.Clear();
} < /p >< p >
} < /p >< p > void printWifiStatus()
{
skriva ut SSID för nätverket du är ansluten till:
Serial.Print ("SSID:");
Serial.println(LWiFi.SSID()); < /p >< p > / / Skriv ut din WiFi shield's IP-adress:
IP-adress ip = LWiFi.localIP();
Serial.Print ("IP-adress:");
Serial.println(IP); < /p >< p > Serial.print ("nätmask:");
Serial.println(LWiFi.subnetMask()); < /p >< p > Serial.print ("gateway IP:");
Serial.println(LWiFi.gatewayIP()); < /p >< p > / / skriva ut mottagna signalstyrka:
långa rssi = LWiFi.RSSI();
Serial.Print ("signalstyrka (RSSI):");
Serial.Print(RSSI);
Serial.println ("dBm");
} < /p >
< br >