Arduino GPS/GSM Tracker (2 / 5 steg)

Steg 2: Programvara förklarade

Koden för Arduino är ganska enkel. Genom att använda ett par bibliotek, blir GPS och GPRS sköld enkel att använda objekt. Detta sparar mycket tid parsning GPS strängar och komponera lång AT + kommandosträngar för modem. Här är koden utan någon fluff. Läs vidare efteråt för en uppdelning av vad allt betyder.

#include < TinyGPS ++ .h >
#include < GPRS_Shield_Arduino.h >
#include < Wire.h >
#include < SoftwareSerial.h >

TinyGPSPlus gps;

GPRS-gsm(7,8,9600);

int messageIndex = 0;
char meddelande [160];
char telefon [16].
char datetime [24].
char latitude [12].
char longitud [12].

void setup() {
Serial.BEGIN(9600);
pinMode (9, OUTPUT);
digitalWrite(9,LOW);
Delay(100);
digitalWrite(9,HIGH);
Delay(500);
digitalWrite(9,LOW);
Delay(100);
pinMode (13, OUTPUT);
digitalWrite(13,LOW);}

void loop() {
medan (Serial.available() > 0) {
GPS.encode(Serial.Read());}
messageIndex = gsm.isSMSunread();
om (messageIndex > 0) {
gsm.readSMS (messageIndex, budskap, 160, telefon, datetime);
gsm.deleteSMS(messageIndex);
om (String(message) == "xyzzy") {
om (gps.location.isValid()) {
strcpy (meddelande, "http://www.bing.com/maps?");
strcat (budskap, "lvl = 17 & stil = r & sp = point.");
dtostrf(GPS.location.lat(), 1, 6, latitude);
strcat(Message,Latitude);
strcat(Message,"_");
dtostrf(GPS.location.LNG(), 1, 6, longitud);
strcat(Message,Longitude);
strcat(Message,"_Golf+Cart_");
strcat(Message,DateTime);}
annat {
strcpy (meddelande, "Tyvärr, Dave, jag är rädd jag inte göra.");}
gsm.sendSMS(phone,message) ;}}}

Om du inte vet hur du lägger till ett bibliotek för din Arduino programmeringsverktyg, finns den bästa dokumentationen på webbplatsen Arduino på http://www.arduino.cc/en/guide/libraries#toc4

TinyGPS ++ biblioteket finns på http://arduiniana.org/libraries/tinygpsplus/.

GPRS-Shield biblioteket finns på https://github.com/Seeed-Studio/GPRS_SIM900.

Du måste kontrollera GPS dataledningar tas bort från Arduino innan du lägger upp din skiss. När programmet har lagts upp, stänga och ersätta dataledningar GPS.

I spara minne, jag förklarar inte varje stift som en variabel med ett fantasinamn, men sätta värdena direkt i koden. Om du vill använda olika pins för enheten GPRS, till exempel, skulle du ändra stiften vid punkten i koden där GPRS-objektet skapas. Här är en pjäs av lek.

Det första förklara vi våra bibliotek och globala variabler:

#include < TinyGPS ++ .h >
#include < APRS_Shield_Arduino.h >
#include < Wire.h >
#include < SoftwareSerial.h >

Skapa sedan en instans av tinygps ++ kallas "gps".

TinyGPSPlus gps;

Skapa sedan ett GPRS objekt kallas "gsm" programvara seriella porten på stift 7 & 8 på 9600 bps

GPRS-gsm(7,8,9600);

Slutligen, förklara alla index och strängar

int messageIndex = 0;
char meddelande [160];
char telefon [16].
char datetime [24].
char latitude [12].
char longitud [12].

Setup slingan är ganska gles, främst initiera serieporten hårdvara för GPS och sedan vrida på GSM skölden med ögonblickligt pulserande pin 9. Jag hoppas du kom ihåg att löda jumper pad. Slutligen, jag stänga av ombord LED på stift 13 spara juice och använda för att ange ett fel någon gång i framtiden.

void setup() {
Serial.BEGIN(9600);
pinMode (9, OUTPUT);
digitalWrite(9,LOW);
Delay(100);
digitalWrite(9,HIGH);
Delay(500);
digitalWrite(9,LOW);
Delay(100);
pinMode (13, OUTPUT);
digitalWrite(13,LOW);}

Loop() är också ganska direkt. Med hjälp av TinyGPS ++ biblioteket sparar en boatload av kodning, hanterar alla GPS data parsing med endast två rader kod.

void loop() {
medan (Serial.available() > 0) {
GPS.encode(Serial.Read());}

Efter det uppmanar vi GPRS_SIM9000 biblioteket att ta allt arbete av kontroll för olästa meddelanden genom att läsa och ta bort den första hittar vi med bara fyra rader kod. Funktionen readSMS() laddar även upp våra globala variabler för senare användning. Om det finns fler än ett meddelande väntar, kommer var och en få analyserad på efterföljande upprepningar av loop().

messageIndex = gsm.isSMSunread();
om (messageIndex > 0) {
gsm.readSMS (messageIndex, budskap, 160, telefon, datetime);
gsm.deleteSMS(messageIndex);

Med meddelande analyseras och globals laddad, jämförs den inkommande texten sedan med en sträng, fortsätter endast på en exakt matchning med våra magiska ordet. Utan en match, vi gå tillbaka till början av slingan och börja ladda GPS objektet med nya data igen. Ändrar du texten innanför citationstecken om du vill använda ett annat magiska ord.

om (String(message) == "xyzzy") {

Om det är en match, gör vi en annan rad ring till vår GPS objekt att avgöra om vi har en bra fix på vår ståndpunkt.

om (gps.location.isValid()) {

Om så, vi svara med kartor en URL till Bing. Jag vill hellre använda Google, men jag har inte bestämt hur du placerar ett stift på kartan med bara en URL. Hur som helst, skapa URL är förmodligen fulaste koden i slingan. Det måste finnas vissa typ jonglering för att få en dubbel precision återvände från GPS-objektet till en sträng, därmed funktionen dtostrf() . Då är det bara råstyrka sammanfogning av strängar.

Funktionen strcpy() anger variabeln meddelande till början av URL: en och strcat() fortsätter att lägga bitar till variabeln samma meddelande tills vi är klara. Detta är blocket att ändra om du vill använda en annan mappning tjänst eller formatera ditt svar på ett annat sätt.

strcpy (meddelande, "http://www.bing.com/maps?");
strcat (budskap, "lvl = 17 & stil = r & sp = point.");
dtostrf(GPS.location.lat(), 1, 6, latitude);
strcat(Message,Latitude);
strcat(Message,"_");
dtostrf(GPS.location.LNG(), 1, 6, longitud);
strcat(Message,Longitude);

Texten i citat är den etikett som visas på din kartobjekt. Det måste ha omgivande understreck och använda tecknet "+" i stället för mellanslag. Nästa rad läggs till den ursprungliga begäran tidsstämpel.

strcat(Message,"_Golf+Cart_");
strcat(Message,DateTime);}

Om vi inte har en fix, vi satte innehållet i variabeln meddelande till något annat och skicka det tillsammans till samma nummer som gjort begäran och stänga ute alla klammerparenteserna.

annat {
strcpy (meddelande, "Tyvärr, Dave, jag är rädd jag inte göra.");}
gsm.sendSMS(phone,message) ;}}}

Det var allt. Gå tillbaka till toppen av loop() och börja om.

Jag hoppas detta förklarar koden väl nog att någon ny till Arduinosphere kan förstå och ändra det till deras behov. Nästa, installation...

Se Steg
Relaterade Ämnen

Arduino GPS/GSM Tracker (WatchDog aktiverat)

Vad är GPS och GLONASS?En GPS tracking enhet är en enhet, som normalt bärs av ett rörligt fordon eller person, som använder Global Positioning System för att fastställa och följa upp dess exakta läge, och därmed av dess bärare, med mellanrum. Den ins...

Arduino kontrollerad bil Tracking System baserade på SMS-

Hej jag gjorde en Arduino kontrollerad bil Tracking System baserat på SMS för min fars bil.Använda modulerna är;Arduino nano V3.0SkyLab GPS-modulenWaveCom GSM-modulSoftwareSerial bibliotek, TinyGPS används för att kommunicera med moduler.När jag ring...

GSM tracker för bil localization

Vad är det om?Detta projekt är en billig lösning att installera bil eller cykel spårning gadget. Jag gjorde det så att jag kan alltid få ställning som min bil i tillfället av den blir stulen.Hur fungerar det?Du har i princip två alternativ att få pos...

GPS bil Tracker - billigt och hemliga

Jag satte mig en utmaning denna vecka! Bygga en förtäckt Diy GPS Vehicle Tracker för mindre än $20!Självklart kunde jag köpa och installera en fast tracker (eller batteri tracker) men de är ganska dyra och där är roligt i det? Jag vill se om jag kan...

Arduino med GSM och PIR-Sensor (engelska/arabiska)

درس التحكم بالاردوينو عن طريق شبكة الجوالالمقدمة:يتيح لك هذا الدرس استخدام شبكة الجوال للتحكم بضوء الليد بالمنزل عن طريق ارسال رسالة نصية وايضا استخدام الاردوينو للاتصال الاتوماتيكي من المنزل لجوالك عند استشعار اي حركة في الغرفة لسماع نوع الاصوات في...

Version 2.0 Arduino kontrollerad bil Tracking System baserade på SMS-

detta system är uppgraderad version av tidigare projekt...Du kommer att kunna spåra din bil när du har skapat detta system,du kommer att kalla enheten då den skickar du ett sms som innehåller LAT, LON och Google Map länk för bara en touch att se var...

Arduino GPS i iPhone Case - Bygg din egen! :)

Hi All,Det är oss tillbaka på rätt spår igen. Denna gång vi tänkte något häftigt som kan användas som en enkel gadget som kan imponera på andra. Vad vi har här är en skönhet uppsättning sköldar ansluten till min favorit arduino micro pro.Adafruit Ult...

Geo Data Logger: Arduino + GPS + SD + Accelerometer att logga, tidsstämpel och geo-tag sensordata

uppdateringar17 okt 2013: Jag har publicerat en guide om hur du använder din Android-telefon kan utföra en liknande uppgift genom att utnyttja din Android enheten är inbyggd GPS och sensorer.6 feb 2013: Med på GeoAwesomeness http://geoawesomeness.com...

GPS bil tracker med Intel Edison

Gå till nästa projekt med hjälp av Intel Edison transport och säkerhet kittet skapade jag ett mycket grundläggande program för att spåra en bil med Grove GPS. Detta projekt tog mig lite mer arbete på grund av komplexiteten av att hantera GPS-data och...

Arduino DIY Solar Tracker

Hej töntarFörra veckan såg jag en fantastisk instrcutable för Geo Bruce trevlig och enkel solar tracker.Så jag tänkte göra min egen och här är resultatet.Det är inspirerat från Geo Bruce arbete.Steg 1: Objekt krävs Vissa objekt kommer att krävs som ä...

Arduino GPS Datalogger

vill du logga några GPS-data till ett SD-kort med din Arduino? Äger du redan en Sparkfun microSD sköld och GPS-modulen? Auktoriserat inte du försök den Adafruit Sheild (även om det är awesome och billigt) men den stal alla dina Pins? Ha det till utgå...

Övervakning av vatten och Notification System genom att använda Arduino baserade GSM-systemet.

Detta instructable video handlar om hur du övervakar kvaliteten på vatten, praktikanter att övervaka nivån på vatten, temperaturen i vattnet och dess omgivande, grumlighet i vattnet (hur rent vatten är) samt PH-nivåer av vattnet. Så detta system över...

Arduino LDR Motion Tracking

Jag har lekt med tanken på att göra något med motion tracking. Jag var tvungen att bygga lite motion tracking Nerf gun turret (eller liknande) så jag tänkte jag skulle börja med några grundläggande, inget alltför flash, inget för dyrt så jag började...

Enkla Arduino GPS med OLED

Detta lilla projekt visar hur man bygger en enkel GPS-mottagare från en Arduino-styrelsen (eller liknande), en OLED-display och en GPS-modul med antenn.Steg 1: Samla delarna GPS Bee med antennXBee breakout styrelsen med huvudenArduino ombord0.96″ OLE...

Arduino GPS hastighetsmätare med en ks0108 - 128 x 64 GLCD (Visa)

Jag ville bygga en digital hastighetsmätare för min bil. Det var inget fel med ett redan installerat i min bil, jag ville bara ha en stor LCD-display som är placerade i en mer bekväm position - rakt framför mig. Och eftersom jag inte ville bråka med...

Kompakt Arduino GPS Speedo + fler

så jag bestämde mig att bygga en apparat som jag kunde använda i min bil,en GPS speedo såg ut som en bra idé.De delar som jag använde i detta bygga:-(Fake) Arduino Nano v3 ($10,99).-MT3339 GPS-modulen.-Grafisk LCD + Connector ($5.00).-Plast hölje ($4...

Arduino & Lego Solar Tracker (dubbla axeln)

Jag gjorde en solar tracker med lego och arduino.Det är ett mycket trevligt och enkelt projekt om du vill lära dig arduino och elektronik. Ingen lödning behövs.Dess syfte är endast lärorikt eftersom motorerna inte är stark nog att stödja vikten av so...

Skicka SMS med Arduino || TC35 GSM-modul

I detta lilla projekt kommer jag visa dig hur man korrekt använder en TC35 GSM-modul och hur man använder det med en Arduino Uno för att skicka ett SMS med den.Steg 1: Titta på videon!Denna video ger dig all information du behöver, så du inte kommer...

Arduino GPS karta-systemet

Byggt på grundval av Arduino UNO, GPS, SD-kort, TFT, GPS karta-systemet är att få realtid positionsinformation via GPS, skicka det till UNO för beräkningen, enligt beräkning av resultaten, och slagit sig ihop med kartfilen lagras i SD-kort, alltså pr...