Motion Detector system
This project is an electronic project that can track when a child is left in the car as can happen a lot at the moment.
Components and supplies
1
Grove - 2-Channel SPDT Relay
1
Arduino UNO
1
Female/Female Jumper Wires
1
Geared AC Motor, 12 rpm
1
Switch Actuator, Head for spring return push-button
1
Male/Female Jumper Wires
1
Test Accessory, AC Power Adaptor
3
5 mm LED: Yellow
1
PIR Motion Sensor (generic)
1
Arduino GSM shield V2
1
Male/Male Jumper Wires
3
Through Hole Resistor, 470 ohm
1
Toggle Switch, Toggle
Tools and machines
1
Soldering iron (generic)
1
Solder Wire, Lead Free
1
Hot glue gun (generic)
Project description
Code
Code
c_cpp
1 2#include <SoftwareSerial.h> 3 4SoftwareSerial SIM900A(0,1); 5 6int StopSending =0; 7 8int WindowClose=8; 9int WindowOpen=9; 10int Pir=2; 11int EngineSwitch=3; 12int WindowSwitch=4; 13int LedEngineRun=6; 14int LedEngineStop=7; 15int PirLedStatus=5; 16 17int Counter=0; 18 19 20void setup(){ 21 22 //Serial.begin(9600); 23 SIM900A.begin(9600); 24 25 pinMode(EngineSwitch, INPUT_PULLUP); 26 pinMode(Pir, INPUT_PULLUP); 27 pinMode(WindowSwitch, INPUT_PULLUP); 28 pinMode(WindowClose, OUTPUT); 29 pinMode(WindowOpen, OUTPUT); 30 pinMode(LedEngineRun, OUTPUT); 31 pinMode(LedEngineStop, OUTPUT); 32 pinMode(PirLedStatus, OUTPUT); 33 34 35} 36 37void loop() 38{ 39 40 int EngineSwitchValue = digitalRead(3); 41 int WindowSwitchValue = digitalRead(4); 42 int PirValue = digitalRead(2); 43 44 ///////////////////////////////////////////////////////////////////////////pir led status////////////////// 45 46 if (PirValue == HIGH) 47 { 48 49 digitalWrite(PirLedStatus, HIGH); 50 51 } 52 53 else if (PirValue == LOW) 54 { 55 56 digitalWrite(PirLedStatus, LOW); 57 58 } 59 ///////////////////////////////////////////////////////////ENGINE led status 60 61 62 if (EngineSwitchValue == HIGH) 63 { 64 digitalWrite(LedEngineStop, LOW); 65 digitalWrite(LedEngineRun, HIGH); 66 StopSending =0; 67 } 68 else 69 { 70 digitalWrite(LedEngineStop,HIGH); 71 digitalWrite(LedEngineRun, LOW); 72 73 } 74 75///////////////////////////////////////////////////////////////////power window relay///////////////// 76 77 78 79 80 if (WindowSwitchValue == LOW && Counter == 0 && EngineSwitchValue == HIGH) 81 { 82 Counter=1; 83 digitalWrite(WindowClose, LOW); 84 digitalWrite(WindowOpen, HIGH); 85 delay(3000); 86 digitalWrite(WindowClose, LOW); 87 digitalWrite(WindowOpen, LOW); 88 89 90 } 91 else if (WindowSwitchValue == LOW && Counter == 1 && EngineSwitchValue == HIGH) 92 { 93 Counter=0; 94 digitalWrite(WindowClose, HIGH); 95 digitalWrite(WindowOpen, LOW); 96 delay(3000); 97 digitalWrite(WindowClose, LOW); 98 digitalWrite(WindowOpen, LOW); 99 100 101 } 102 103///////////////////////////////////////////////////////////////////detect baby and engine off///////////////// 104 105 106 107 108 if (PirValue == HIGH && EngineSwitchValue == LOW && StopSending == LOW) //CHILD INSIDE CAR WITH ENGINE STOP 109 { 110 Counter=1; 111 digitalWrite(WindowClose, LOW); 112 digitalWrite(WindowOpen, HIGH); 113 delay(3000); 114 digitalWrite(WindowClose, LOW); 115 digitalWrite(WindowOpen, LOW); 116 117 SIM900A.println("AT+CMGF=1"); 118 delay(1000); 119 120 SIM900A.println("AT+CMGS=\\"+60126199749\\"\ "); 121 delay(1000); 122 123 SIM900A.println("Child On Board!!"); 124 delay(100); 125 126 SIM900A.println((char)26);// ASCII code of CTRL+Z 127 delay(1000); 128 129 StopSending =1; 130 131 delay(500); 132 133 134 } 135 136 137 138} 139 140 141 142
Code
c_cpp
1 2#include <SoftwareSerial.h> 3 4SoftwareSerial SIM900A(0,1); 5 6int 7 StopSending =0; 8 9int WindowClose=8; 10int WindowOpen=9; 11int Pir=2; 12int 13 EngineSwitch=3; 14int WindowSwitch=4; 15int LedEngineRun=6; 16int LedEngineStop=7; 17int 18 PirLedStatus=5; 19 20int Counter=0; 21 22 23void setup(){ 24 25 //Serial.begin(9600); 26 27 SIM900A.begin(9600); 28 29 pinMode(EngineSwitch, INPUT_PULLUP); 30 pinMode(Pir, 31 INPUT_PULLUP); 32 pinMode(WindowSwitch, INPUT_PULLUP); 33 pinMode(WindowClose, 34 OUTPUT); 35 pinMode(WindowOpen, OUTPUT); 36 pinMode(LedEngineRun, OUTPUT); 37 38 pinMode(LedEngineStop, OUTPUT); 39 pinMode(PirLedStatus, OUTPUT); 40 41 42} 43 44void 45 loop() 46{ 47 48 int EngineSwitchValue = digitalRead(3); 49 int WindowSwitchValue 50 = digitalRead(4); 51 int PirValue = digitalRead(2); 52 53 ///////////////////////////////////////////////////////////////////////////pir 54 led status////////////////// 55 56 if (PirValue == HIGH) 57 { 58 59 60 digitalWrite(PirLedStatus, HIGH); 61 62 } 63 64 else if (PirValue 65 == LOW) 66 { 67 68 digitalWrite(PirLedStatus, LOW); 69 70 } 71 72 ///////////////////////////////////////////////////////////ENGINE led status 73 74 75 76 if (EngineSwitchValue == HIGH) 77 { 78 digitalWrite(LedEngineStop, LOW); 79 80 digitalWrite(LedEngineRun, HIGH); 81 StopSending =0; 82 } 83 else 84 85 { 86 digitalWrite(LedEngineStop,HIGH); 87 digitalWrite(LedEngineRun, 88 LOW); 89 90 } 91 92///////////////////////////////////////////////////////////////////power 93 window relay///////////////// 94 95 96 97 98 if (WindowSwitchValue == LOW 99 && Counter == 0 && EngineSwitchValue == HIGH) 100 { 101 Counter=1; 102 digitalWrite(WindowClose, 103 LOW); 104 digitalWrite(WindowOpen, HIGH); 105 delay(3000); 106 digitalWrite(WindowClose, 107 LOW); 108 digitalWrite(WindowOpen, LOW); 109 110 111 } 112 else if 113 (WindowSwitchValue == LOW && Counter == 1 && EngineSwitchValue == HIGH) 114 { 115 116 Counter=0; 117 digitalWrite(WindowClose, HIGH); 118 digitalWrite(WindowOpen, 119 LOW); 120 delay(3000); 121 digitalWrite(WindowClose, LOW); 122 digitalWrite(WindowOpen, 123 LOW); 124 125 126 } 127 128///////////////////////////////////////////////////////////////////detect 129 baby and engine off///////////////// 130 131 132 133 134 if (PirValue == HIGH 135 && EngineSwitchValue == LOW && StopSending == LOW) //CHILD INSIDE CAR WITH ENGINE 136 STOP 137 { 138 Counter=1; 139 digitalWrite(WindowClose, LOW); 140 digitalWrite(WindowOpen, 141 HIGH); 142 delay(3000); 143 digitalWrite(WindowClose, LOW); 144 digitalWrite(WindowOpen, 145 LOW); 146 147 SIM900A.println("AT+CMGF=1"); 148 delay(1000); 149 150 151 SIM900A.println("AT+CMGS=\\"+60126199749\\"\ "); 152 153 delay(1000); 154 155 SIM900A.println("Child On Board!!"); 156 157 delay(100); 158 159 SIM900A.println((char)26);// ASCII code 160 of CTRL+Z 161 delay(1000); 162 163 StopSending =1; 164 165 166 delay(500); 167 168 169 } 170 171 172 173} 174 175 176 177
Downloadable files
schematic diagram
schematic diagram

Comments
Only logged in users can leave comments