Advertisement
safwan092

Untitled

Dec 5th, 2023
28
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.70 KB | None | 0 0
  1. #include <SoftwareSerial.h>
  2.  
  3. #define GSM_TX_Modem_Pin 7
  4. #define GSM_RX_Modem_Pin 8
  5. #define Pressure_Sensor_1_Pin A0
  6. #define Pressure_Sensor_2_Pin A1
  7. #define Vibration_Sensor_Pin 2
  8.  
  9. String phoneNumber = "+966559890918";
  10. String message1 = "GSM Modem Working [SMS=Active]";
  11. String message2 = "Soft Drop Detected";
  12. String message3 = "Vibration Detected";
  13. String message4 = "Heavy Drop Detected";
  14. String message5 = "Box Overload Detected";
  15.  
  16. int overloaded_flag = 0;
  17. int counter = 0;
  18. //overloaded/ wighted 260
  19. int Pressure_Sensor_1_threshold_overl = 200;
  20. int Pressure_Sensor_2_threshold_overl = 200;
  21.  
  22. //soft 300
  23. int Pressure_Sensor_1_threshold = 350;
  24. int Pressure_Sensor_2_threshold = 350;
  25.  
  26. //heavy 500
  27. int Pressure_Sensor_1_threshold_h = 450;
  28. int Pressure_Sensor_2_threshold_h = 450;
  29.  
  30.  
  31. int Pressure_Sensor_1_Value = 0;
  32. int Pressure_Sensor_2_Value = 0;
  33. int Vibration_Sensor_Value = 0;
  34.  
  35.  
  36. SoftwareSerial SIM900A(GSM_TX_Modem_Pin, GSM_RX_Modem_Pin);
  37.  
  38. void setup() {
  39. Serial.begin(9600);
  40. setup_Sensors();
  41. setup_GSM_Modem();
  42. }
  43.  
  44.  
  45.  
  46. void SendMessage3() {
  47. SendMessage(message3);
  48. delay(2000);
  49. }
  50.  
  51.  
  52.  
  53.  
  54. void loop() {
  55. read_Sensors_and_Display_on_Serial();
  56.  
  57.  
  58. if ((Pressure_Sensor_1_Value > Pressure_Sensor_1_threshold_h) || (Pressure_Sensor_2_Value > Pressure_Sensor_2_threshold_h)) {
  59. SendMessage(message4);
  60. counter = 0;
  61. overloaded_flag = 0;
  62. delay(2000);
  63. }
  64.  
  65. if ((Pressure_Sensor_1_Value > Pressure_Sensor_1_threshold) || (Pressure_Sensor_2_Value > Pressure_Sensor_2_threshold)) {
  66. SendMessage(message2);
  67. counter = 0;
  68. overloaded_flag = 0;
  69. delay(2000);
  70. }
  71.  
  72.  
  73. //overloaded/ wighted
  74. if ((Pressure_Sensor_1_Value > Pressure_Sensor_1_threshold_overl) || (Pressure_Sensor_2_Value > Pressure_Sensor_2_threshold_overl)) {
  75. counter += 1;
  76. if (counter > 10 && overloaded_flag == 0) {
  77. SendMessage(message5);
  78. overloaded_flag = 1;
  79. counter = 0;
  80. }
  81. delay(1000);
  82. }
  83. }//end of LOOP
  84.  
  85.  
  86.  
  87.  
  88. void setup_Sensors() {
  89. pinMode(Pressure_Sensor_1_Pin, INPUT);
  90. pinMode(Pressure_Sensor_2_Pin, INPUT);
  91. pinMode(Vibration_Sensor_Pin, INPUT);
  92. attachInterrupt(digitalPinToInterrupt(Vibration_Sensor_Pin), SendMessage3, CHANGE);
  93. }
  94.  
  95.  
  96.  
  97.  
  98. void read_Sensors_and_Display_on_Serial() {
  99. Pressure_Sensor_1_Value = analogRead(Pressure_Sensor_1_Pin);//0-1023
  100. Pressure_Sensor_2_Value = analogRead(Pressure_Sensor_2_Pin);//0-1023
  101. Vibration_Sensor_Value = digitalRead(Vibration_Sensor_Pin);//0-1
  102. Serial.print("Pressure [1] = ");
  103. Serial.print(Pressure_Sensor_1_Value);
  104. Serial.print("\t Pressure [2] = ");
  105. Serial.print(Pressure_Sensor_2_Value);
  106. Serial.print("\t Vibration = ");
  107. Serial.println(Vibration_Sensor_Value);
  108. Serial.println("------------------------------------------------------------------");
  109. }
  110.  
  111.  
  112.  
  113.  
  114. void setup_GSM_Modem() {
  115. SIM900A.begin(115200); // Setting the baud rate of GSM Module
  116. Serial.println ("SIM900A Starting Up...");
  117. //delay(15000);
  118. Serial.println ("SIM900A Ready");
  119. SendMessage(message1);
  120. }
  121.  
  122.  
  123.  
  124.  
  125. void SendMessage(String msg)
  126. {
  127. Serial.println ("Sending Message...");
  128. SIM900A.println("AT+CMGF=1"); //Sets the GSM Module in Text Mode
  129. delay(1000);
  130. Serial.println ("Set SMS Number...");
  131. Serial.println (phoneNumber);
  132. String phoneNumberCommand = "AT+CMGS=\"" + phoneNumber + "\"\r";
  133. SIM900A.println(phoneNumberCommand);
  134. delay(1000);
  135. Serial.println ("Set SMS Content");
  136. Serial.println (msg);
  137. SIM900A.println(msg);// Messsage content
  138. delay(100);
  139. Serial.println ("Finish");
  140. SIM900A.println((char)26);// ASCII code of CTRL+Z
  141. delay(1000);
  142. Serial.println ("Message has been sent -> [Done]");
  143. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement