#include #include #include #define ss Serial static const uint32_t GPSBaud = 9600; TinyGPSPlus gps; KapadokyaGSM Kapadokya; //SoftwareSerial ss(RXPin, TXPin); float evUzaklik=21; bool mesajDurum=true; bool aramaDurum=true; #define numara1 "+905528623364" #define numara2 "+905308316683" String konum; char konum2[255]; char mesaj[255]="Cocuk Evden Ayrildi"; String smsMetni; unsigned long sonZaman=0; void setup() { Kapadokya.basla(); Serial.begin(9600); ss.begin(GPSBaud); } void loop() { static const double ev_enlem = 37.088882, ev_boylam = 37.422256; smartDelay(1000); uint8_t uydu=gps.satellites.value(); Serial.println(); Serial.print("Uydu: ");Serial.println(uydu); float enlem,boylam; unsigned long enboyHesap; enlem=gps.location.lat(); boylam=gps.location.lng(); enboyHesap=gps.location.age(); Serial.print("Enlem: ");Serial.println(enlem,6); Serial.print("Boylam: ");Serial.println(boylam,6); Serial.print("EnboyHesap: ");Serial.println(enboyHesap); float denizSeviyesi=gps.altitude.meters(); Serial.print("Deniz Seviyesi: ");Serial.println(denizSeviyesi); float hiz=gps.speed.kmph(); Serial.print("Hız: ");Serial.println(hiz); int yon=gps.course.deg(); Serial.print("Yön: ");Serial.println(yon); int yil=gps.date.year(); Serial.print("Yıl: ");Serial.println(yil); int ay=gps.date.month(); Serial.print("Ay: ");Serial.println(ay); int gun=gps.date.day(); Serial.print("Gün: ");Serial.println(gun); int saat=gps.time.hour(); Serial.print("Saat: ");Serial.println(saat); int dakika=gps.time.minute(); Serial.print("Dakika: ");Serial.println(dakika); int saniye=gps.time.second(); Serial.print("Saniye: ");Serial.println(saniye); /*evUzaklik = (float)TinyGPSPlus::distanceBetween( gps.location.lat(), gps.location.lng(), ev_enlem, ev_boylam)/1000; evUzaklik=evUzaklik*1000; Serial.print("Eve Uzaklik: ");Serial.println(evUzaklik);*/ if (millis() > 5000 && gps.charsProcessed() < 10){ Serial.println(F("No GPS data received: check wiring")); } konum = "www.google.com.tr/maps/place/" + String(enlem, 6) + "," + String(boylam, 6); konum.toCharArray(konum2, 100); delay(1000); if(evKontrol()==true){ if(mesajDurum==true){ Kapadokya.smsGonder(numara1,mesaj); delay(1000); Kapadokya.smsGonder(numara2,mesaj); delay(1000); mesajDurum=false; } if(aramaDurum==true && sonZaman-millis()>60000){ sonZaman=millis(); Kapadokya.numaraAra(numara1); delay(10000); } } String smsNumarasi; smsMetni = Kapadokya.smsOku(1); if (smsMetni.indexOf("OK") != -1) { if (smsMetni.length() > 7) { smsNumarasi = Kapadokya.numaraliSmsOku(1); Serial.println(smsNumarasi); smsMetni.toUpperCase(); if (smsMetni.indexOf("KONUM") != -1) { Kapadokya.smsGonder(numara1,konum2); } else if (smsMetni.indexOf("NTK") != -1) { Kapadokya.smsGonder(numara1, "Arama Durduruldu"); aramaDurum=false; } else { Kapadokya.smsGonder(numara1,"Tanimsiz SMS"); } } Kapadokya.tumSmsSil(); } } static void smartDelay(unsigned long ms) { unsigned long start = millis(); do { while (ss.available()) gps.encode(ss.read()); } while (millis() - start < ms); } bool evKontrol(){ if(evUzaklik>20){ return true; } else { mesajDurum=true; return false; } }