Advertisement
safwan092

Untitled

May 2nd, 2023
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.83 KB | None | 0 0
  1. #include <TinyGPSPlus.h>
  2.  
  3. //GSM - Serial [1]
  4. //GPS - Serial [2]
  5. #define Gas_Sensor A1
  6. #define Flame_Sensor 2
  7. #define BuzzerPin 6
  8. #define RedLED 4
  9. #define GreenLED 5
  10. #define YellowLED 3
  11.  
  12. int Gas_State;
  13. int Flame_State;
  14. int flag1 = 0;
  15. int flag2 = 0;
  16.  
  17. char google_maps_link[70];
  18. String google_maps_link_string = "";
  19. String Longitude = "1";
  20. String Latitude = "1";
  21.  
  22. TinyGPSPlus gps;
  23.  
  24. void setup() {
  25. Serial.begin(9600);
  26. Serial1.begin(9600);// for GSM
  27. Serial2.begin(9600);// for GPS
  28. pinMode(Gas_Sensor, INPUT);
  29. pinMode(Flame_Sensor, INPUT);
  30. pinMode(BuzzerPin, OUTPUT);
  31. pinMode(RedLED, OUTPUT);
  32. pinMode(GreenLED, OUTPUT);
  33. pinMode(YellowLED, OUTPUT);
  34. delay(10000);
  35. sendSMSLoop();
  36. digitalWrite(GreenLED , HIGH );
  37. }
  38.  
  39. void loop() {
  40. Gas_State = analogRead(Gas_Sensor);
  41. Flame_State = digitalRead(Flame_Sensor);
  42. Serial.println(Gas_State);
  43. Serial.println(Flame_State);
  44. read_GPS_receiver();
  45. if (Flame_State == 0 && flag1 == 0) {
  46. flag1 = 1;
  47. SendFlameSMS();
  48. digitalWrite(YellowLED , HIGH );
  49. digitalWrite(GreenLED , LOW );
  50. analogWrite(BuzzerPin, 255);
  51. delay(500);
  52. analogWrite(BuzzerPin, 155);
  53. delay(500);
  54. analogWrite(BuzzerPin, 255);
  55. delay(500);
  56. analogWrite(BuzzerPin, 155);
  57. delay(500);
  58. analogWrite(BuzzerPin, 0);
  59. delay(5000);
  60. }
  61. else if (Flame_State == 1 && flag1 == 1) {
  62. flag1 = 0;
  63. analogWrite(BuzzerPin, 0);
  64. digitalWrite(YellowLED , LOW );
  65. digitalWrite(GreenLED , HIGH );
  66. }
  67. if (Gas_State > 300 && flag2 == 0) {
  68. flag2 = 1;
  69. SendGasSMS();
  70. digitalWrite(RedLED , HIGH );
  71. digitalWrite(GreenLED , LOW );
  72. analogWrite(BuzzerPin, 255);
  73. delay(500);
  74. analogWrite(BuzzerPin, 50);
  75. delay(500);
  76. analogWrite(BuzzerPin, 255);
  77. delay(500);
  78. analogWrite(BuzzerPin, 50);
  79. delay(500);
  80. analogWrite(BuzzerPin, 0);
  81. delay(5000);
  82. }
  83. else if (Gas_State < 300 && flag2 == 1) {
  84. flag2 = 0;
  85. analogWrite(BuzzerPin, 0);
  86. digitalWrite(RedLED , LOW );
  87. digitalWrite(GreenLED , HIGH );
  88. }
  89. }
  90.  
  91. void read_GPS_receiver() {
  92. while (Serial2.available() > 0) {
  93. if (gps.encode(Serial2.read())) {
  94. if (gps.location.isValid()) {
  95. Latitude = String(gps.location.lat(), 6);
  96. Longitude = String(gps.location.lng(), 6);
  97. Serial.print(Latitude);
  98. Serial.print(",");
  99. Serial.print(Longitude);
  100. Serial.println();
  101. google_maps_link_string = "http://maps.google.com/maps?&z=15&mrt=yp&t=k&q=" + Latitude + "+" + Longitude;
  102. google_maps_link_string.toCharArray(google_maps_link, 70);
  103. }
  104. else {
  105. //Serial.println(F("INVALID"));
  106. google_maps_link_string = "http://maps.google.com/maps?&z=15&mrt=yp&t=k&q=1.23+1.23";
  107. google_maps_link_string.toCharArray(google_maps_link, 70);
  108. }
  109. }
  110. }
  111. if (millis() > 5000 && gps.charsProcessed() < 10) {
  112. Serial.println(F("No GPS detected: check wiring."));
  113. while (true);
  114. }
  115. }
  116.  
  117. void sendSMSLoop() {
  118. Serial.println ("Sending Message");
  119. Serial1.println("AT+CMGF=1"); //Sets the GSM Module in Text Mode
  120. delay(1000);
  121. Serial.println ("Set SMS Number");
  122. // *********
  123. Serial1.println("AT+CMGS=\"+966580224645\"\r"); //Mobile phone number to send message
  124. delay(1000);
  125. Serial.println ("Set SMS Content");
  126. Serial1.println("Ardunio: OK");//"GSM Connected, Project is ON");// Messsage content
  127. delay(100);
  128. Serial.println ("Finish");
  129. Serial1.println((char)26);// ASCII code of CTRL+Z
  130. delay(1000);
  131. Serial.println ("Message has been sent");
  132. }
  133.  
  134. void SendFlameSMS() {
  135. Serial.println ("Sending Flame Message");
  136. Serial1.println("AT+CMGF=1"); //Sets the GSM Module in Text Mode
  137. delay(1000);
  138. Serial.println ("Set SMS Number");
  139. // *********
  140. Serial1.println("AT+CMGS=\"+966580224645\"\r"); //Mobile phone number to send message
  141. delay(1000);
  142. Serial.println ("Set SMS Content");
  143. Serial1.println("Flame Detected");
  144. Serial1.println(google_maps_link);
  145. delay(100);
  146. Serial.println ("Finish");
  147. Serial1.println((char)26);// ASCII code of CTRL+Z
  148. delay(1000);
  149. Serial.println ("Message has been sent");
  150. }
  151.  
  152. void SendGasSMS() {
  153. Serial.println ("Sending GAS Message");
  154. Serial1.println("AT+CMGF=1"); //Sets the GSM Module in Text Mode
  155. delay(1000);
  156. Serial.println ("Set SMS Number");
  157. // *********
  158. Serial1.println("AT+CMGS=\"+966580224645\"\r"); //Mobile phone number to send message
  159. delay(1000);
  160. Serial.println ("Set SMS Content");
  161. Serial1.println("Gas Leaking Detected");
  162. Serial1.println(google_maps_link);
  163. delay(100);
  164. Serial.println ("Finish");
  165. Serial1.println((char)26);// ASCII code of CTRL+Z
  166. delay(1000);
  167. Serial.println ("Message has been sent");
  168. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement