Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <TinyGPSPlus.h>
- //GSM - Serial [1]
- //GPS - Serial [2]
- #define Gas_Sensor A1
- #define Flame_Sensor 2
- #define BuzzerPin 6
- #define RedLED 4
- #define GreenLED 5
- #define YellowLED 3
- int Gas_State;
- int Flame_State;
- int flag1 = 0;
- int flag2 = 0;
- char google_maps_link[70];
- String google_maps_link_string = "";
- String Longitude = "1";
- String Latitude = "1";
- TinyGPSPlus gps;
- void setup() {
- Serial.begin(9600);
- Serial1.begin(9600);// for GSM
- Serial2.begin(9600);// for GPS
- pinMode(Gas_Sensor, INPUT);
- pinMode(Flame_Sensor, INPUT);
- pinMode(BuzzerPin, OUTPUT);
- pinMode(RedLED, OUTPUT);
- pinMode(GreenLED, OUTPUT);
- pinMode(YellowLED, OUTPUT);
- delay(10000);
- sendSMSLoop();
- }
- void loop() {
- Gas_State = analogRead(Gas_Sensor);
- Flame_State = digitalRead(Flame_Sensor);
- Serial.println(Gas_State);
- Serial.println(Flame_State);
- read_GPS_receiver();
- if (Flame_State == 0 && flag1 == 0) {
- flag1 = 1;
- SendFlameSMS();
- digitalWrite(YellowLED , HIGH );
- digitalWrite(GreenLED , LOW );
- analogWrite(BuzzerPin, 255);
- delay(500);
- analogWrite(BuzzerPin, 155);
- delay(500);
- analogWrite(BuzzerPin, 255);
- delay(500);
- analogWrite(BuzzerPin, 155);
- delay(500);
- delay(5000);
- }
- else if (Flame_State == 1 && flag1 == 1) {
- flag1 = 0;
- analogWrite(BuzzerPin, 0);
- digitalWrite(YellowLED , LOW );
- digitalWrite(GreenLED , HIGH );
- }
- if (Gas_State > 250 && flag2 == 0) {
- flag2 = 1;
- SendGasSMS();
- digitalWrite(RedLED , HIGH );
- digitalWrite(GreenLED , LOW );
- analogWrite(BuzzerPin, 255);
- delay(500);
- analogWrite(BuzzerPin, 50);
- delay(500);
- analogWrite(BuzzerPin, 255);
- delay(500);
- analogWrite(BuzzerPin, 50);
- delay(500);
- delay(5000);
- }
- else if (Gas_State < 250 && flag2 == 1) {
- flag2 = 0;
- analogWrite(BuzzerPin, 0);
- digitalWrite(RedLED , LOW );
- digitalWrite(GreenLED , HIGH );
- }
- }
- void read_GPS_receiver() {
- while (Serial2.available() > 0) {
- if (gps.encode(Serial2.read())) {
- if (gps.location.isValid()) {
- Latitude = String(gps.location.lat(), 6);
- Longitude = String(gps.location.lng(), 6);
- Serial.print(Latitude);
- Serial.print(",");
- Serial.print(Longitude);
- Serial.println();
- google_maps_link_string = "http://maps.google.com/maps?&z=15&mrt=yp&t=k&q=" + Latitude + "+" + Longitude;
- google_maps_link_string.toCharArray(google_maps_link, 70);
- }
- else {
- //Serial.println(F("INVALID"));
- google_maps_link_string = "http://maps.google.com/maps?&z=15&mrt=yp&t=k&q=1.23+1.23";
- google_maps_link_string.toCharArray(google_maps_link, 70);
- }
- }
- }
- if (millis() > 5000 && gps.charsProcessed() < 10) {
- Serial.println(F("No GPS detected: check wiring."));
- while (true);
- }
- }
- void sendSMSLoop() {
- Serial.println ("Sending Message");
- Serial1.println("AT+CMGF=1"); //Sets the GSM Module in Text Mode
- delay(1000);
- Serial.println ("Set SMS Number");
- // *********
- Serial1.println("AT+CMGS=\"+966554418546\"\r"); //Mobile phone number to send message
- delay(1000);
- Serial.println ("Set SMS Content");
- Serial1.println("Ardunio: OK");//"GSM Connected, Project is ON");// Messsage content
- delay(100);
- Serial.println ("Finish");
- Serial1.println((char)26);// ASCII code of CTRL+Z
- delay(1000);
- Serial.println ("Message has been sent");
- }
- void SendFlameSMS() {
- Serial.println ("Sending Flame Message");
- Serial1.println("AT+CMGF=1"); //Sets the GSM Module in Text Mode
- delay(1000);
- Serial.println ("Set SMS Number");
- // *********
- Serial1.println("AT+CMGS=\"+966554418546\"\r"); //Mobile phone number to send message
- delay(1000);
- Serial.println ("Set SMS Content");
- Serial1.println("Flame Detected");
- Serial1.println(google_maps_link);
- delay(100);
- Serial.println ("Finish");
- Serial1.println((char)26);// ASCII code of CTRL+Z
- delay(1000);
- Serial.println ("Message has been sent");
- }
- void SendGasSMS() {
- Serial.println ("Sending GAS Message");
- Serial1.println("AT+CMGF=1"); //Sets the GSM Module in Text Mode
- delay(1000);
- Serial.println ("Set SMS Number");
- // *********
- Serial1.println("AT+CMGS=\"+966554418546\"\r"); //Mobile phone number to send message
- delay(1000);
- Serial.println ("Set SMS Content");
- Serial1.println("Gas Leaking Detected");
- Serial1.println(google_maps_link);
- delay(100);
- Serial.println ("Finish");
- Serial1.println((char)26);// ASCII code of CTRL+Z
- delay(1000);
- Serial.println ("Message has been sent");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement