Hello everyone!
Today I will teach you to make a security system using the vibration sensor module. The vibration sensor module comes with a SW-420 vibration sensor, and in this project, it senses the vibration across the solderless breadboard. Once a vibration is detected, a HIGH signal is sent to the Arduino Nano microcontroller. According to my sketch, the microcontroller switches on the LED and triggers the RF 433MHz transmitter module. The RF transmitter module sends a decimal code to the RF receiver module. According to my sketch, my Arduino Uno turns on the LED and makes the LCD display module show that a shock is detected.
Hardware components used in this project
Transmitter circuit
- Arduino Nano
- USB Type A to mini B cable (for Arduino Nano)
- Vibration sensor module
- RF 433MHz transmitter module
- LED
- Solderless Breadboard - Mini
- Male-to-Male Jumper wires (x2) - 10cm
- Jumpers (x9) - to reduce the usage of wires
Receiver circuit
- Arduino Uno
- USB Type A/ B cable (for Arduino Uno)
- RF 433MHz receiver module
- LED
- 16 x 2 LCD display module with I2C interface
- Solderless Breadboard - Mini
- Male-to-Male Jumper wires (x4) - 10cm
- Female-to-Male Jumper wires (x4) - 20cm
Setup
Your setup must look somewhat similar to those in the pictures above.
Connections
RF 433MHz transmitter module
- GND - Ground
- VCC - 5V
- DATA - D10
RF 433MHz receiver module
- GND - Ground
- VCC - 5V
- DATA (any one of the two data pins) - D2
16 x 2 LCD display module with I2C interface
- GND - Ground
- VCC - 5V
- SDA - A4
- SCL - A5
Vibration sensor module
- D0 - D7
- GND - Ground
- VCC - 5V
LED
- Cathode - Ground
- Anode (Transmitter circuit) - D2
- Anode (Receiver circuit) - D12
Coding
For this project, I have used the 'rc-switch' library by sui77. To download this library, please follow the hyperlink. Go to File---->Examples---->rc-switch and open the sketches for the transmitter circuit and receiver circuit.
- Transmitter circuit - SendDemo
- Receiver circuit - ReceiverDemo_Simple
Upload these example sketches to the respective Arduino microcontrollers to test whether your modules are working or not.
Watch the YouTube video in the last section of this page to learn how this project works.
Transmitter circuit
Include the 'rc-switch' library in your sketch. Use RCSwitch( ) function to create your switch object, similar to the one in the examples sketch. Within void setup( ), use pinMode( ) function to configure the pins 2 and 7 as OUTPUT and INPUT, respectively. Use enableTransmit( ) function to attach your switch to D10.
Within void loop( ), you must program your microcontroller such that the vibration sensor module triggers the RF transmitter once vibration is detected. When the sensor module detects vibration, it sends a HIGH signal to the arduino nano microcontroller. When a HIGH signal is sent, the LED is switched on and the RF transmitter module is triggered. Use send( ) function to make the RF transmitter send a decimal code (24 bits). The syntax used here must be the name of your switch object. The status of the LED must be LOW when the state of the vibration sensor module is LOW. Set a delay period of one second before completing the void loop( ) function.
Receiver circuit
You will need the Arduino LiquidCrystal I2C library, 'rc-switch' library, and Wire library for this project. You can download the .ZIP version of this library from GitHub by following the hyperlink. The Wire library is a built-in library. To add this .ZIP folder to your Arduino IDE, go to sketch----> include library---->Add .ZIP library. Set the LCD address to 0x27 for a 16 chars and 2 line display.
Within void setup( ), use pinMode( ) function to configure pin 12 as OUTPUT. Use enableReceive( ) function to attach the receiver to interrupt 0 which is D2 and initialize the lcd. Use lcd.print( ) function to make your LCD display the message, 'Welcome!'.
Within void loop( ), use if( ) function and its parameter should be available( ) function with the syntax as the name of the switch object you created. Within the if( ) function, create a local variable named 'code'. The decimal code received by the RF receiver must be stored in the 'code' variable. To receive the decimal code, use getReceivedValue( ) function with syntax as the name of the switch object. If the value stored in the 'code' variable equals the decimal code sent by the RF transmitter, the LED must be switched on for 6 seconds.Use lcd.clear( ) function to clear the display before printing 'Shock status:' in the first row and 'Detected' or 'Not detected' in the second row. The LCD must display 'Detected' while the LED is on, and 'Not detected' while the LED is off. Set a delay of 1 second before resetting the RF receiver.
If anyone has any questions about the codes, please feel free to comment below or send me an email at arduinoprojectsbyr@gmail.com.
Final Look
If anyone has any questions, or suggestions, about this project, please feel free to comment below or send me an email at arduinoprojectsbyr@gmail.com.
Comments
Post a Comment