This Microwave Sensor Can Look Behind Walls

by Lithium-ion in Circuits > Arduino

411 Views, 4 Favorites, 0 Comments

This Microwave Sensor Can Look Behind Walls

thumb.jpg

A motion detection system using microwave sensor which comes with a lot of precision.

Supplies

mini_IMG_0916.jpg
mini_IMG_0915.jpg

Components Required:

Gravity: Digital 10.525GHz Microwave Sensor

Arduino NANO

12C 16x2 LCD

Power Supply Unit

This project is sponsored by PCBWAY. I have tested this module with my own made Power supply and Arduino NANO. PCBWAY is the leading manufacturer working in the area of PCB related products for more than 10 years. Explore the more services offered by them, they provide a one stop solution of all of your DIY needs. Sign-up now and get free coupons on your first PCB order.

Story:

mini_thumb.jpg
mini_IMG_0910.jpg

While working on proximity sensors I have seen features related to automatic time and infrared signal detection. But I was in the search of something which can see beyond the boundaries of house walls. And I got my hands on this motion detection- Gravity: Digital 10.525GHz Microwave Sensor. A microwave sensor which works on 10GHz, can sense the motion of an object, can sense the speed of motion of an object and lastly it also works with non-humans (i.e non living things). This differs from the method used by a regular infrared (IR) sensor as the microwave is sensitive to a variety of objects that can reflect it's waveform, and its sensor readings are not affected by ambient temperatures.

The digital microwave sensor uses doppler radar to detect moving objects using microwaves. After seeing these many features in a sensor the applications like measuring a vehicle's speed, measuring liquid levels, automatic door motion detection, automatic washing, car reversing sensors, etc came into my mind. The microwave detection method has the following advantages compared with other detection methods:

  1. Able to detect objects without physical contact
  2. Readings not affected by temperature, humidity, noise, air, dust or light
  3. Strong resistance to radio frequency interference
  4. Low output, not harmful to the human body
  5. Microwaves have a wide detection range and velocity equal to the speed of light
  6. Supports non-life-class object detection

Let’s have a look how we can convert its reading into respective speed of motion readings. By the help of which we can measure the motion with a reference value above Zero, higher the values greater will be the speed of the object under detection.

Specifications:

ice_screenshot_20241019-230806.png

Working Voltage: 5V +/- 0.25V

Working Current(CW): 60mA max., 37mA typical


Emission:

Detection Distance: 2-16M continuously adjustable

Emission Frequency: 10.525 GHz

Precision Frequency Setting: 3MHz

Output Power (Minimum): 13dBm EIRP

Harmonic Emission: < -10dBm

Average Current (5 ): 2mA typ.

Pulse Width (Min.): 5uSec

Load Cycle (Min.): 1%


Reception:

Sensitivity (10dB S/N ratio) 3Hz to 80Hz bandwidth: -86dBm

3Hz to 80Hz Bandwidth Clutter: 10uV

Antenna Gain: 8dBi

Vertical 3dB Beam Width: 36 degrees

Level 3dB Beam Width: 72 degrees

Detection Mechanism of Microwave Sensor:

9a5588d4a0aa062c2b0f61d3b204cac2.png
ice_screenshot_20241019-230035.png
20442a5a7b2676a32e6ead6bc5fe97c6.png

The following diagram demonstrates the working principle of the sensor module. It works by amplifying a tiny signal which is received by the microwave sensor, and then through the comparison circuit it converts the signal into a square signal with a digital output of 0 or 1 which an Arduino or other microcontroller can easily handle.

The angle of detection is 72 degrees with the antenna in a parallel direction (azimuth) The vertical (pitch) direction of the antenna is 36 degrees. So install the sensor according to the radiation pattern transmitted by the antenna.

Installing the Sensor:

1e51bc0fb3eb4ed97fd499c9b44a6553.png
mini_IMG_0921.jpg

The microwave sensor has a distance range of 2-16m. The detection distance can be adjusted using the potentiometer. Microwaves can penetrate through walls. So sometimes it has inaccuracies when microwaves penetrate through outside walls and detect moving objects in non-target areas. Be sure to choose an installation location to avoid this!

When the microwave sensor does not detect moving objects, the indicator LED remains off. When the sensor detects moving objects, the LED will turn on and the output level will be changed from HIGH to LOW. The LED will automatically turn off about after 0.5s and the output level will change from LOW to HIGH. If the microwave sensor detects continuously moving objects the LED will keep flashing on and off. The output level will fluctuate between HIGH and LOW until the object stops moving.

Connection Diagram:

circuit.png
mini_IMG_0912.jpg

Align the antenna surface towards the area you need to detect. The connection diagram of Arduino to the sensor is given below. I am using a 16x2 panel with an I2C module. The sensor is powered with Arduino’s onboard AMS1117 5V power supply, the sense pin is given to D2 of the Arduino.

Arduino Code:

mini_IMG_0913.jpg

The link to the Arduino timer library is given in the code below, all the other general libraries are available in the manage library section under tools menu.

// 1.This code is tested on Arduino Uno, Leonardo, Mega boards.
// 2. Arduino Timer library is created by jonoxer, Download from here
// https://www.dfrobot.com.cn/images/upload/File/SEN0192/20160112134309yy5nus.zip

#include <MsTimer2.h> //Timer interrupt function
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int pbIn = 0; // Define the interrupt PIN is 0, that is, digital pins 2
int ledOut = 13;
int count = 0;
volatile int state = LOW; //Define ledOut, default is off

void setup()
{
Serial.begin(9600);
pinMode(ledOut, OUTPUT);
lcd.init(); // initialize the lcd
lcd.init();
lcd.backlight();
lcd.setCursor(1,0);
lcd.print("Motion Tracker");
lcd.setCursor(5,1);
lcd.print("System");
delay(2000);
lcd.clear();
attachInterrupt(pbIn, stateChange, FALLING); // Sets the interrupt function, falling edge triggered interrupts.
MsTimer2::set(1000, process); // Set the timer interrupt time 1000ms
MsTimer2::start();//Timer interrupt start
}

void loop()
{
Serial.println(count); // Printing times of 1000ms suspension
lcd.setCursor(0,0);
lcd.print("Motion Detected");
lcd.setCursor(6,1);
lcd.print(count*10);
delay(100);
if (state == HIGH) //When moving objects are detected later, 2s shut down automatically after the ledout light is convenient.
{
delay(1000);
state = LOW;
digitalWrite(ledOut, state); //Turn off led
lcd.clear();
}
}
void stateChange() //Interrupt function
{
count++;
}
void process() //Timer handler
{
if (count > 1) //1000ms interrupt number greater than 1 is considered detected a moving object (this value can be adjusted according to the actual situation, equivalent to adjust the detection threshold of the speed of a moving object)
{
state = HIGH;
digitalWrite(ledOut, state); //Lighting led
count = 0; //Count zero
}
else
count = 0; //In 1000ms, interrupts that do not reach a set threshold value are considered not to detect moving objects, interrupt the count number is cleared to zero.
}

Downloads

Testing and Working:

My Video12.gif
My Video13.gif

I mounted the sensor on a heavy wooden door and powered it on with a power bank for the demonstration purpose. If any motion happens behind the door the sensor will detect and display the output on the display. If the rate of movement is fast the sensor displays a higher value and low if movement is slow. I tested the sensor with a real world example:

Detection of Higher Movement: PIC-2

Detection of Lower Movement: PIC-1

My Power Supply and Arduino Unit:

Screenshot_2024_11_29-6.png

I have tested all the features with my own made power supply and Arduino NANO. All this is possible only due to the PCBWAY amazing SMT assembly and PCB manufacturing services. See how I made my own Arduino and power supply, the links to the articles are given here.