Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <TinyGPS++.h>
- #include "SoftwareSerial.h"
- // TXD(SIM800L) <---> RX(ARDUINO)
- // RXD(SIM800L) <---> TX(ARDUINO)
- // RX(NEO6_GPS) <---> D3(ARDUINO)
- // TX(NEO6_GPS) <---> D2(ARDUINO)
- #define Buzzer 13 // +(Buzzer) <---> D6(Arduino)
- const unsigned long eventInterval = 60000;
- unsigned long previousTime = 0;
- String stringMessage = "";
- String lonGPS = "";
- String latGPS = "";
- String lonGPS_OLD = "";
- String latGPS_OLD = "";
- char Buf[70];
- TinyGPSPlus gps;
- // The serial connection to the GPS device
- SoftwareSerial ss(2, 3);
- void setup() {
- //Serial.begin(9600); // PC
- ss.begin(9600); // GPS
- Serial.begin(9600); // GSM
- pinMode(Buzzer, OUTPUT);
- digitalWrite(Buzzer, LOW);
- delay(10000);
- /////////////////////////////////////////////////////////////////////////////////////////////
- //Serial.println ("Sending Message");
- Serial.println("AT+CMGF=1"); //Sets the GSM Module in Text Mode
- delay(1000);
- //Serial.println ("Set SMS Number");
- // *********
- Serial.println("AT+CMGS=\"+966566152105\"\r"); //Mobile phone number to send message
- delay(1000);
- //Serial.println ("Set SMS Content");
- Serial.println("Ardunio: OK");//"GSM Connected, Project is ON");// Messsage content
- delay(100);
- //Serial.println ("Finish");
- Serial.println((char)26);// ASCII code of CTRL+Z
- delay(1000);
- //Serial.println ("Message has been sent");
- /////////////////////////////////////////////////////////////////////////////////////////////
- }
- void loop() {
- readGPS_Data();
- }//end of LOOP
- void displayInfo()
- {
- //Serial.print(F("Location: "));
- if (gps.location.isValid())
- {
- SendSMS();
- lonGPS = String(gps.location.lng(), 6);
- latGPS = String(gps.location.lat(), 6);
- //Serial.print(latGPS);
- //Serial.print(F(","));
- //Serial.print(lonGPS);
- }
- else
- {
- //Serial.print(F("INVALID"));
- }
- /*
- //Serial.print(F(" Date/Time: "));
- if (gps.date.isValid())
- {
- //Serial.print(gps.date.month());
- //Serial.print(F("/"));
- //Serial.print(gps.date.day());
- //Serial.print(F("/"));
- //Serial.print(gps.date.year());
- }
- else
- {
- //Serial.print(F("INVALID"));
- }
- //Serial.print(F(" "));
- if (gps.time.isValid())
- {
- digitalWrite(Buzzer, HIGH);
- if (gps.time.hour() < 10) //Serial.print(F("0"));
- //Serial.print(gps.time.hour());
- //Serial.print(F(":"));
- if (gps.time.minute() < 10) //Serial.print(F("0"));
- //Serial.print(gps.time.minute());
- //Serial.print(F(":"));
- if (gps.time.second() < 10) //Serial.print(F("0"));
- //Serial.print(gps.time.second());
- //Serial.print(F("."));
- if (gps.time.centisecond() < 10) //Serial.print(F("0"));
- //Serial.print(gps.time.centisecond());
- }
- else
- {
- //Serial.print(F("INVALID"));
- }
- */
- //Serial.println();
- }
- void readGPS_Data() {
- // This sketch displays information every time a new sentence is correctly encoded.
- while (ss.available() > 0)
- if (gps.encode(ss.read()))
- displayInfo();
- }
- void SendSMS() {
- stringMessage = "http://www.google.com/maps/place/" + latGPS + "," + lonGPS;
- stringMessage.toCharArray(Buf, 70);
- //Serial.println(Buf);
- if (millis() - previousTime >= eventInterval) {
- if (lonGPS_OLD != lonGPS && latGPS_OLD != latGPS) {
- /* Event code */
- //Serial.println ("Sending Message");
- Serial.println("AT+CMGF=1"); //Sets the GSM Module in Text Mode
- delay(1000);
- //Serial.println ("Set SMS Number");
- // *********
- Serial.println("AT+CMGS=\"+966566152105\"\r"); //Mobile phone number to send message
- delay(1000);
- //Serial.println ("Set SMS Content");
- Serial.println(Buf);//"GSM Connected, Project is ON");// Messsage content
- delay(100);
- //Serial.println ("Finish");
- Serial.println((char)26);// ASCII code of CTRL+Z
- delay(1000);
- //Serial.println ("Message has been sent");
- lonGPS_OLD = lonGPS;
- latGPS_OLD = latGPS;
- /* Update the timing for the next time around */
- previousTime = millis();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement