Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <SoftwareSerial.h>
- #define GSM_TX_Modem_Pin 7
- #define GSM_RX_Modem_Pin 8
- #define Pressure_Sensor_1_Pin A0
- #define Pressure_Sensor_2_Pin A1
- #define Vibration_Sensor_Pin 2
- String phoneNumber = "+966559890918";
- String message1 = "GSM Modem Working [SMS=Active]";
- String message2 = "Soft Drop Detected";
- String message3 = "Vibration Detected";
- String message4 = "Heavy Drop Detected";
- String message5 = "Box Overload Detected";
- int overloaded_flag = 0;
- int counter = 0;
- //overloaded/ wighted 260
- int Pressure_Sensor_1_threshold_overl = 200;
- int Pressure_Sensor_2_threshold_overl = 200;
- //soft 300
- int Pressure_Sensor_1_threshold = 350;
- int Pressure_Sensor_2_threshold = 350;
- //heavy 500
- int Pressure_Sensor_1_threshold_h = 450;
- int Pressure_Sensor_2_threshold_h = 450;
- int Pressure_Sensor_1_Value = 0;
- int Pressure_Sensor_2_Value = 0;
- int Vibration_Sensor_Value = 0;
- SoftwareSerial SIM900A(GSM_TX_Modem_Pin, GSM_RX_Modem_Pin);
- void setup() {
- Serial.begin(9600);
- setup_Sensors();
- setup_GSM_Modem();
- }
- void SendMessage3() {
- SendMessage(message3);
- delay(2000);
- }
- void loop() {
- read_Sensors_and_Display_on_Serial();
- if ((Pressure_Sensor_1_Value > Pressure_Sensor_1_threshold_h) || (Pressure_Sensor_2_Value > Pressure_Sensor_2_threshold_h)) {
- SendMessage(message4);
- counter = 0;
- overloaded_flag = 0;
- delay(2000);
- }
- if ((Pressure_Sensor_1_Value > Pressure_Sensor_1_threshold) || (Pressure_Sensor_2_Value > Pressure_Sensor_2_threshold)) {
- SendMessage(message2);
- counter = 0;
- overloaded_flag = 0;
- delay(2000);
- }
- //overloaded/ wighted
- if ((Pressure_Sensor_1_Value > Pressure_Sensor_1_threshold_overl) || (Pressure_Sensor_2_Value > Pressure_Sensor_2_threshold_overl)) {
- counter += 1;
- if (counter > 10 && overloaded_flag == 0) {
- SendMessage(message5);
- overloaded_flag = 1;
- counter = 0;
- }
- delay(1000);
- }
- }//end of LOOP
- void setup_Sensors() {
- pinMode(Pressure_Sensor_1_Pin, INPUT);
- pinMode(Pressure_Sensor_2_Pin, INPUT);
- pinMode(Vibration_Sensor_Pin, INPUT);
- attachInterrupt(digitalPinToInterrupt(Vibration_Sensor_Pin), SendMessage3, CHANGE);
- }
- void read_Sensors_and_Display_on_Serial() {
- Pressure_Sensor_1_Value = analogRead(Pressure_Sensor_1_Pin);//0-1023
- Pressure_Sensor_2_Value = analogRead(Pressure_Sensor_2_Pin);//0-1023
- Vibration_Sensor_Value = digitalRead(Vibration_Sensor_Pin);//0-1
- Serial.print("Pressure [1] = ");
- Serial.print(Pressure_Sensor_1_Value);
- Serial.print("\t Pressure [2] = ");
- Serial.print(Pressure_Sensor_2_Value);
- Serial.print("\t Vibration = ");
- Serial.println(Vibration_Sensor_Value);
- Serial.println("------------------------------------------------------------------");
- }
- void setup_GSM_Modem() {
- SIM900A.begin(115200); // Setting the baud rate of GSM Module
- Serial.println ("SIM900A Starting Up...");
- //delay(15000);
- Serial.println ("SIM900A Ready");
- SendMessage(message1);
- }
- void SendMessage(String msg)
- {
- Serial.println ("Sending Message...");
- SIM900A.println("AT+CMGF=1"); //Sets the GSM Module in Text Mode
- delay(1000);
- Serial.println ("Set SMS Number...");
- Serial.println (phoneNumber);
- String phoneNumberCommand = "AT+CMGS=\"" + phoneNumber + "\"\r";
- SIM900A.println(phoneNumberCommand);
- delay(1000);
- Serial.println ("Set SMS Content");
- Serial.println (msg);
- SIM900A.println(msg);// Messsage content
- delay(100);
- Serial.println ("Finish");
- SIM900A.println((char)26);// ASCII code of CTRL+Z
- delay(1000);
- Serial.println ("Message has been sent -> [Done]");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement