Advertisement
safwan092

Untitled

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