Getting started with 60GHz mmWave Fall Detection Sensor Kit with XIAO ESP32C6 (MR60FDA2)
Introducing our advanced mmWave Sensor Modules for XIAO, designed to provide cutting-edge monitoring solutions for both fall detection and heartbeat monitoring. Powered by the robust XIAO ESP32 microcontroller with built-in Wi-Fi and Bluetooth connectivity, these modules offer precise and reliable detection capabilities. Whether you need to monitor falls in real-time or track heartbeats with sensitive accuracy, our modules are equipped with state-of-the-art technology, including customizable RGB LEDs and ambient light sensing. With easy expansion options through Grove GPIO ports, these versatile modules are perfect for a wide range of applications, from smart home integration to healthcare monitoring.
Features
- Wi-Fi & Bluetooth Enabled: Both modules are powered by XIAO ESP32 with pre-flashed ESPHome firmware, ensuring quick setup and customization.
- Fall Detection Module:
- Precise Fall Detection: Covers a 3x3x3 meter area with a 100° x 40° detection angle.
- Static Presence Detection: Monitors stationary individuals up to 6 meters away.
- Environmental Sensing:
- BH1750 Light Sensor: Measures ambient light from 1 to 65,535 lux.
- WS2812 RGB LED: Customizable LED for visual feedback and DIY projects.
- Expandable Connectivity: Includes Grove GPIO ports for adding additional sensors and modules.
Specification
General Parameters | |
---|---|
mmWave Firmware | Fall Detection Monitoring |
Detection Range | Human Static Presence Detection: up to 6 Meters Fall Detection: - 3x3x3 meter range - Horizontal Field of View (FoV) of 120° - Vertical FoV of 100° |
MCU | Seeed Studio XIAO ESP32C6 |
LED | WS2812 RGB LED |
Button | Rest |
Light Sensor | BH1750 Range: 1 to 65,535 lux with adjustable measurements up to 100,000 lux |
Connectivity | 1 GPIO Port (D0, D10) |
Pin Header Spacing | 2.54mm |
Power Supply | 5V/1A Input |
Power consumption | 0.5w: Standby Mode 0.8w: Activation Mode 1.4w: work with Grove Relay status |
Application
- Security Systems
- Haelthcare Monitoring
- Smart Home Automation
- Elderly Care
Hardware Overview
Getting Started
Installation method and sensing range
Top-mounted hanging height 2.2-3.0m, maximum sensing radius 2m, the side with the mmWave sensor needs to align with the direction of detection.
Please use this module in an open space, and stay out of the following scenarios within the detecting range to prevent interference with the module:
- Multiple radars installed too close together
- Wind moves curtains and sways plants
- Water flow and water film
- Large areas of metal and mirror reflections
- Detection through glass and thin wooden boards
- Installation location prone to vibrations
- Use of low-quality power supplies
Software Preparation (Arduino)
By default, the MR60BHA2 comes pre-assembled with the XIAO ESP32C6, but it's compatible with various other microcontrollers for communication and integration.
If this is your first time using Arduino with the XIAO series, follow the appropriate setup guide for your board:
- XIAO ESP32S3: Refer to the XIAO ESP32S3 Getting Started Guide.
- XIAO ESP32C3: Follow the Getting Started with Seeed Studio XIAO ESP32C3 guide.
- XIAO ESP32C6: Follow the Getting Started with Seeed Studio XIAO ESP32C6 guide.
Once your board is set up, proceed with the following steps:
Download the Seeed mmWave Library:
- Download the Seeed mmWave library from GitHub.
Install the Library in Arduino IDE:
- Open the Arduino IDE.
- Navigate to Sketch > Include Library > Add .ZIP Library....
- Select the downloaded
.zip
file to install the library.
Connect Your XIAO Board:
- Plug your XIAO board into your computer via USB.
- In the Arduino IDE, go to Tools > Board and select your XIAO board model.
- Choose the correct port under Tools > Port.
Load an Example Sketch:
- Go to File > Examples > Seeed Arduino mmWave.
- Select the relevant example for either Fall Detection.
- Review the code and make any necessary adjustments.
Upload the Sketch:
- Click Upload to flash the code to your XIAO board.
- Open the Serial Monitor in the Arduino IDE to view real-time sensor data.
Usage
This section provides example code snippets to help you quickly start using the Seeed Arduino mmWave Library with various functionalities, including fall detection, RGB LED control, and light sensing.
Fall Module
This example shows how to use the MR60FDA2 sensor for fall detection.
#include <Arduino.h>
#include "Seeed_Arduino_mmWave.h"
#ifdef ESP32
# include <HardwareSerial.h>
HardwareSerial mmWaveSerial(0);
#else
# define mmWaveSerial Serial1
#endif
SEEED_MR60FDA2 mmWave;
void setup() {
Serial.begin(115200);
mmWave.begin(&mmWaveSerial);
delay(1000);
uint32_t sensitivity = 15;
float height = 3.0, threshold = 1.0;
float rect_XL, rect_XR, rect_ZF, rect_ZB;
if (mmWave.setInstallationHeight(height)) {
Serial.printf("setInstallationHeight success: %.2f\n", height);
} else {
Serial.println("setInstallationHeight failed");
}
if (mmWave.setThreshold(threshold)) {
Serial.printf("setThreshold success: %.2f\n", threshold);
} else {
Serial.println("setThreshold failed");
}
if (mmWave.setSensitivity(sensitivity)) {
Serial.printf("setSensitivity success %d\n", sensitivity);
} else {
Serial.println("setSensitivity failed");
}
if (mmWave.getRadarParameters(height, threshold, sensitivity, rect_XL,
rect_XR, rect_ZF, rect_ZB)) {
Serial.printf("height: %.2f\tthreshold: %.2f\tsensitivity: %d\n", height,
threshold, sensitivity);
Serial.printf(
"rect_XL: %.2f\trect_XR: %.2f\trect_ZF: %.2f\trect_ZB: %.2f\n", rect_XL,
rect_XR, rect_ZF, rect_ZB);
} else {
Serial.println("getRadarParameters failed");
}
}
void loop() {
if (mmWave.update(100)) {
bool is_human = mmWave.getHuman();
if (is_human) {
Serial.printf("People Exist: %s\n", is_human ? "true" : "false");
}
bool is_fall = mmWave.getFall();
if (is_fall) {
Serial.printf("isFall: %s\n", is_fall ? "true" : "false");
}
}
}
The output will be as follows on Arduino Serial Monitor:
Blink RGB LED
This example demonstrates how to control an RGB LED using the NeoPixel library.
- Step 1. Download the
Adafruit_NeoPixel
library
Navigate to Sketch > Include Liarbry > Manage Libraries..., and search Adafruit_NeoPixel, install the lastest version.
- Step 2. Copy following code to a new sketch:
#include <Adafruit_NeoPixel.h>
#include <Arduino.h>
const int pixelPin = D1;
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(1, pixelPin, NEO_GRB + NEO_KHZ800);
void setup() {
Serial.begin(115200);
pixels.begin();
pixels.clear();
pixels.show();
}
void loop() {
for (int i = 0; i < 10; i++) {
pixels.setPixelColor(0, pixels.Color(255, 0, 0));
pixels.show();
delay(100);
pixels.setPixelColor(0, pixels.Color(0, 0, 0));
pixels.show();
delay(100);
}
for (int i = 255; i >= 0; i--) {
pixels.setPixelColor(0, pixels.Color(i, 0, 0));
pixels.show();
delay(10);
}
}
- Step 3. Select the correct board and port number to upload the program.
Once the program is successfully uploaded, you will see RGB LED on the right side of the mmWave Sensor Modules is blinking.
Light Sensor (BH1750)
This example shows how to read light intensity values using the BH1750 sensor.
- Step 1. Download the
hp_BH1750
library
Navigate to Sketch > Include Liarbry > Manage Libraries..., and search hp_BH1750, install the lastest version.
- Step 2. Copy following code to a new sketch:
#include <Arduino.h>
#include <hp_BH1750.h>
hp_BH1750 BH1750;
void setup() {
Serial.begin(9600);
bool avail = BH1750.begin(BH1750_TO_GROUND);
if (!avail) {
Serial.println("No BH1750 sensor found!");
while (true) {}
}
Serial.printf("conversion time: %dms\n", BH1750.getMtregTime());
BH1750.start();
}
void loop() {
if (BH1750.hasValue()) {
float lux = BH1750.getLux();
Serial.println(lux);
BH1750.start();
}
}
- Step 3. Select the correct board and port number to upload the program.
The output will be as follows on Arduino Serial Monitor:
Fall Module API
This example uses the SEEED_MR60FDA2
class to interface with the MR60FDA2 sensor for fall detection. Here’s what each key function does:
mmWave.begin(&mmWaveSerial)
:- Initializes the sensor for communication, setting up the serial connection between the XIAO board and the MR60FDA2 sensor.
mmWave.setInstallationHeight(float height)
:- Sets the installation height of the radar, which is crucial for accurate fall detection. The
height
parameter specifies the height (in meters) at which the sensor is installed, initialization setting parameters is2.2 m
, with a valid range typically between 1 and 5 meters.
- Sets the installation height of the radar, which is crucial for accurate fall detection. The
mmWave.setThreshold(float threshold)
:- Sets the fall detection threshold. The default fall threshold of the radar is
0.6 m
. This value determines the sensitivity of the radar in terms of detecting falls based on the height and distance from the sensor.
- Sets the fall detection threshold. The default fall threshold of the radar is
mmWave.setSensitivity(uint32_t sensitivity)
:- Adjusts the sensitivity of the radar for fall detection. The sensitivity initial value is
3
, which represents an average of 3 frames of data. And typically value ranges from 3 to 10, with higher values making the sensor more responsive to potential falls.
- Adjusts the sensitivity of the radar for fall detection. The sensitivity initial value is
mmWave.getRadarParameters(float &height, float &threshold, uint32_t &sensitivity)
:- Retrieves the current configuration parameters of the radar, including installation height, fall detection threshold, and sensitivity settings. These parameters are returned via the reference variables.
mmWave.getHuman()
:- Checks if a human presence is detected by the radar. Returns
true
if a human is detected, andfalse
otherwise.
- Checks if a human presence is detected by the radar. Returns
mmWave.getFall()
:- Determines whether a fall has been detected. This function returns
true
if a fall is detected andfalse
if not.
- Determines whether a fall has been detected. This function returns
Open for Customization
Want to tailor-make the kit to fit your unique applications?
For more information about 3D point cloud data generation and interference zone configuration when customizing mmWave modules. Seeed provides one-stop R&D customization and manufacturing services for fast development from concept to production. Contact us at [email protected] to learn more.
Resources
- STP: mmWave 3D Case
- GitHub Repository: Access the full codebase and documentation at the Seeed mmWave Library GitHub page.
- ESPHome Documentation: For further customization and integration, refer to the ESPHome documentation.
Tech Support & Product Discussion
Thank you for choosing our products! We are here to provide you with different support to ensure that your experience with our products is as smooth as possible. We offer several communication channels to cater to different preferences and needs.