毫米波雷达(人体存在检测)

毫米波雷达(人体存在检测)

简介

这款毫米波雷达是采用FMCW、CW多模调制和1发1收天线结构的24GHz毫米波传感器模块。传感器向感应区域发射FMCW和CW无线电波,感应区域内的所有运动、微动、极弱微动的目标反射的无线电波,经传感器系统中的毫米波 MMIC电路转换为电信号,送处理器,运行信号和数据处理算法。解算出目标信息。

该毫米波雷达具有人体存在、人体静止及人体运动感知功能。可以感知区域内无人或有人存在,对于人员睡觉等静止状态,也可准确感知到人员存在。感应结果可以选择通过串口输出或通过I/O口开关量输出,并且传感器模块具有感应可靠性强,灵敏度高,体积小,使用简单,易于嵌入集成等特点。

特点

人员存在感知:感知区域内无人存在或有人存在

I/O口开关量输入输出控制

串口输入输出控制

抗干扰能力强不受雪雾霾、温度、湿度、 灰尘、光线 、噪音等环境影响

技术规格

工作电压:3.6~5V

工作电流:90mA

探测距离:9m

等效发射功率:13-15dBM

波束角度:100*40°

调制模式:FMCW、CW

工作频率:24GHz

工作温度:-40~85℃

波特率:115200

尺寸:24*28mm

接口定义

该款毫米波的接口功能定义及功能说明详见表1所示

引脚序号

定义

说明

1

UART Tx

传感器串口发送

2

UART Rx

传感器串口接收

3

GPIO1

通用输入输出

4

GPIO2

通用输入输出(默认有人存在时输出高电平,无人存在时输出低电平)

5

GND

6

VCC

电源

7

NC

保留,请悬空

8

NC

保留,请悬空

表1

它提供2路 I/O口,可用于电平触发输入输出应用;提供1路串口,用于配置输入及感应结果输出。

安装方式

毫米波人体传感器对安装方式较为敏感,不当安装会影响传感器的性能和功能。该模块常用的安装方式有顶部安装、底部安装、水平安装和向下倾斜安装。

顶部安装

图1为顶部安装示意图。

图1

底部安装

图2为底部安装示意图

图2

水平安装

图3为水平安装示意图

图3

使用方法

该模块采用串口通信协议,以ASCII 码字符串作为命令交互和数据交互。

串口通信配置: 115200 波特率, 1 位停止位, 8 位数据位,无奇偶校验位,无流控。

命令交互: ASCII 码字符串格式,以回车换行结束;命令和参数、参数和参数间用空格分割开。

配置传感器工作参数时,传感器必须处于停止状态;参数配置完成后,必须发送保存参数命令将改动的参数保存在不掉电丢失存储器中。

如果用户将该模块当作触发开关,即仅使用模块的I/O口,同时在配置参数满足性能和功能要求时,则可以不使用串口,也不需要关心通信协议。

配置输出信息

描述:

传感器默认配置为仅以 ASCII 码字符串格式输出感应结果,暂不支持修改。

人体感应结果输出: ASCII 码字符串格式

描述:

字符串信息以"$"开始, "*"结束, 多个参数用","隔开,占位参数(保留)用空格代替。

“人体感应传感器”的感应结果默认以 1Hz 数据刷新率输出。

响应:$JYBSS,par1,par2,par3,par4*

参数项

描述

par1

感应结果:0: 无人 1: 有人( 静止或运动)

par2

占位参数:保留,用空格代替

par3

占位参数:保留,用空格代替

par4

占位参数:保留,用空格代替

例子

命令

传感器感应到有人(运动或静止)

$JYBSS,1, , , *

传感器感应到无人

$JYBSS,0, , , *

配置传感器感应区域

描述:

该模块默认将感应区域配置为 128 等份, 每一等份大约 15cm。 配置参数则在 0~127 中选择,

作为感应区域的距离值索引。

感应区域允许配置 4 段, 4 段配置值必须从小到大依次配置,且不能互相包含。

命令:detRangeCfg par1 parA_s parA_e parB_s parB_e parC_s parC_e parD_s parD_e

参数项

描述

par1

保留,常数-1

parA_sparA_e

第 1 段感应区域配置值:parA_s:感应区域距离起始值索引( ≥0)parA_e:感应区域距离结束值索引

parB_sparB_e

第 2 段感应区域配置值(索引必须从第 1 段感应区域配置索引后开始) :parB_s:感应区域距离起始值索引parB_e:感应区域距离结束值索引

parC_sparC_e

第 3 段感应区域配置值(索引必须从第 2 段感应区域配置索引后开始) :parC_s:感应区域距离起始值索引parC_e:感应区域距离结束值索引

parD_sparD_e

第 4 段感应区域配置值(索引必须从第 3 段感应区域配置索引后开始) :parD_s:感应区域距离起始值索引parD_e:感应区域距离结束值索引( ≤127)

注: 将感应区域距离起始或结束值索引乘以 15cm,则代表起始或结束距离值

响应

描述

Done

命令执行成功

Error

命令执行失败

例子

命令

(默认配置) 感应距离“ 0m 到3m”的区域(0m=0 * 0.15cm, 3m=20 * 0.15cm)

detRangeCfg -1 0 20

感应距离“ 1.5m 到 3m”的区域(1.5m=10 * 0.15cm, 3m=20 * 0.15cm)

detRangeCfg -1 10 20

感应距离“1.5m 到 3m”“7.5m到 12m”的区域(1.5m=10 * 0.15cm, 3m=20*0.15cm)(7.5m=50 * 0.15cm, 12m=80 * 0.15cm)

detRangeCfg -1 10 20 50 80

感应距离“1.5m 到 3m”“7.5m到 12m”“13.5m 到 15m”的区域 (1.5m=10 * 0.15cm, 3m=20 * 0.15cm)(7.5m=50 * 0.15cm, 12m=80 * 0.15cm)(13.5m=90 * 0.15cm, 15m=100 * 0.15cm)

detRangeCfg -1 10 20 50 80 90 100

感应距离“1.5m 到 3m”“7.5m到 12m” “13.5m 到 15m”“15.75m 到 16.5m”的区域(1.5m=10 * 0.15cm, 3m=20 * 0.15cm)(7.5m=50 * 0.15cm, 12m=80 * 0.15cm)(13.5m=90 * 0.15cm, 15m=100 * 0.15cm)(15.75m=105 * 0.15cm,16.5m=110 * 0.15cm)

detRangeCfg -1 10 20 50 80 90 100 105 110

配置传感器输出延迟时间

描述:

配置传感器检测到目标, 延迟输出感应结果的时间; 目标消失后, 延迟输出感应结果的时间。 默认检

测到目标后, 延迟输出时间为 2.5 秒; 目标消失后,延迟输出时间为 10 秒。

命令:outputLatency par1 par2 par3

参数项

描述

par1

保留,常数-1

par2

检测到目标,延迟输出感应结果时间:值范围: 0~65535,单位: 25ms

par3

目标消失后,延迟输出感应结果时间:值范围: 0~65535,单位: 25ms

响应

描述

Done

命令执行成功

Error

命令执行失败

例子

命令

(默认配置) 检查到目标,延迟时间 2.5 秒。目标消失后,延迟时间10 秒。

outputLatency -1 100 400

检查到目标,延迟时间5 秒。目标消失后,延迟时间 20 秒。

outputLatency -1 200 800

配置传感器启动模式

描述:

配置传感器上电立即启动运行或是上电等待启动命令再启动运行;默认为上电立即启动运行。

命令:sensorCfgStart par1

参数项

描述

par1

使能传感器上电立即启动运行:0: 禁止传感器上电立即启动运行, 需要 sensorStart 命令才能启动运行(默认值)1: 使能传感器上电立即启动运行, 无需 sensorStart 命令即可开始运行

响应

描述

Done

命令执行成功

Error

命令执行失败

例子

命令

禁止传感器上电立即启动运行

sensorCfgStart 0

(默认配置) 使能传感器上电立即启动运行

sensorCfgStart 1

传感器启动控制

描述:

当传感器处于未启动状态且没有设置的参数需要保存时, 启动传感器开始运行。

通过 sensorCfgStart 命令, 传感器配置为上电立即启动运行时, 则不需要等待 sensorStart 命令启动运行。

命令:sensorStart

参数项

描述

无参数

响应

描述

Done

命令执行成功

Error

命令执行失败

传感器复位控制

描述:

软件复位传感器。

命令:resetSystem

参数项

描述

无参数

响应

描述

Error

命令执行失败

无响应字符串

命令执行成功后会直接复位传感器,因此无响应字符串

传感器停止控制

描述:

传感器在运行状态时, 使传感器停止运行。

命令:sensorStop

参数项

描述

无参数

响应

描述

Done

命令执行成功

Error

命令执行失败,传感器未在运行状态

保存配置参数

描述:

通过串口重新配置传感器参数,且未保存时, 该命令将新的配置参数保存到传感器 Flash 中。

命令:saveCfg par1 par2 par3 par4

参数项

描述

par1

固定值: 0x45670123

par2

固定值: 0xCDEF89AB

par3

固定值: 0x956128C6

par4

固定值: 0xDF54AC89

响应

描述

Done

命令执行成功

Error

命令执行失败(无参数需要保存时,命令将执行失败)

保存配置参数到不掉电丢失存储器中命令:saveCfg 0x45670123 0xCDEF89AB 0x956128C6 0xDF54AC89

恢复出厂设置

描述:

将传感器当前配置参数值, 恢复到出厂的默认值。

命令:factoryReset par1 par2 par3 par4

参数项

描述

par1

固定值: 0x45670123

par2

固定值: 0xCDEF89AB

par3

固定值: 0x956128C6

par4

固定值: 0xDF54AC89

响应

描述

Done

命令执行成功

Error

命令执行失败

配置参数恢复到出厂默认值命令:factoryReset 0x45670123 0xCDEF89AB 0x956128C6 0xDF54AC89

在arduino上使用

准备

硬件

毫米波

Arduino Uno

软件

Arduino IDE,点击下载Arduino IDE

DFRobot_mmWave_Radar库,点击下载DFRobot_mmWave_Radar库

如何安装库文件,点击链接

主要函数接口

/**

@brief Constructor

@param Stream Software serial port interface

*/

DFRobot_mmWave_Radar(Stream *s);

/**

@brief Configure sensor detection area

@param parA_s The sensing area distance starting value of the first segment, unit: m

@param parA_e The sensing area distance ending value of the first segment, unit: m(Must be greater than the starting value of the current sensing area)

*/

void DetRangeCfg(float parA_s, float parA_e);

/**

@brief Configure sensor detection area

@param parA_s The sensing area distance starting value of the first segment, unit: m

@param parA_e The sensing area distance ending value of the first segment, unit: m(Must greater than the starting value of the current sensing area)

@param parB_s The sensing area distance starting value of the second segment, unit: m(Must be greater than the ending value of the previous segment sensing area)

@param parB_e The sensing area ending value of the second segment, unit: m(Must be greater than the starting value of the current sensing area)

*/

void DetRangeCfg(float parA_s, float parA_e, float parB_s, float parB_e);

/**

@brief Configure sensor detection area

@param parA_s The sensing area distance starting value of the first segment, unit: m

@param parA_e The sensing area distance ending value of the first segment, unit: m (Must be greater than the starting value of the current sensing area)

@param parB_s The sensing area distance starting value of the second segment, unit: m(Must be greater than the ending value of the previous segment sensing area)

@param parB_e The sensing area distance ending value of the second segment, unit: m(Must be greater than the starting value of the current sensing area)

@param parC_s The sensing area distance starting value of the third segment, unit: m(Must be greater than the ending value of the previous segment sensing area)

@param parC_e The sensing area distance ending value of the third segment, unit: m(Must be greaer than the starting value of the current sensing area)

*/

void DetRangeCfg(float parA_s, float parA_e, float parB_s, float parB_e, float parC_s, float parC_e);

/**

@brief Configure sensor detection area

@param parA_s The sensing area distance starting value of the first segment, unit: m

@param parA_e The sensing area distance ending value of the first segment, unit: m(Must be greater than the starting value of the current sensing area)

@param parB_s The sensing area distance starting value of the second segment, unit: m(Must be greatet than the ending value of the previous segment sensing area)

@param parB_e The sensing area distance ending value of the second segment, unit: m(Must be greater than the starting value of the current sensing area)

@param parC_s The sensing area distance starting value of the third segment, unit: m(Must be greater than the ending value of the previous segment sensing area)

@param parC_e The sensing area distance ending value of the third segment, unit: m(Must be greater than the starting value of the current sensing area)

@param parD_s The sensing area distance starting value of the fourth segment, unit: m(Must be greater than the ending value of the previous segment sensing area)

@param parD_e The sensing area ditance ending value of the fourth segment, unit: m(Must be greater than the starting value of the current sensin area)

*/

void DetRangeCfg(float parA_s, float parA_e, float parB_s, float parB_e, float parC_s, float parC_e, float parD_s, float parD_e);

/**

@brief Read whether there is people or object moving in the sensing area

@return Returning true means that there is people or animal moving in the detection range; false means the opposite

*/

bool readPresenceDetection(void);

/**

@brief Configure sensor output delay time

@param par1 When a target detected, delay the output time of sensing result, range:0~1638.375, unit: s

@param par2 When the target disappears, delay the output time of sensing result, range: 0~1638.375, unit: s

*/

void OutputLatency(float par1, float par2);

/**

@brief Restore the sensor current configuration to the factory settings.

*/

void factoryReset(void);

接线图

毫米波

Arduino Uno

VCC

5V

GND

GND

RX

D2

TX

D3

样例代码

复制以下代码到您的Arduino IDE中并上传。

/*!

@file DFRobot_mmWave_Radar.ino

@可以读取到传感器探测范围内有无人或物在动,可以配置传感器感应区域,可以配置传感器输出延迟时间,可以将传感器恢复出厂设置。

@n Experimental phenomenon: 传感器设备启动成功后,将在串口显示器上打印0或1,0表示探测范围内没有人或物在动,1表示探测范围内有人或物在动

@copyright Copyright (c) 2010 DFRobot Co.Ltd (http://www.dfrobot.com)

@licence The MIT License (MIT)

@version V1.0

@date 2020-3-25

@https://github.com/DFRobot

*/

#include

#include "DFRobot_mmWave_Radar.h"

SoftwareSerial mySerial(3, 2);

DFRobot_mmWave_Radar sensor(&mySerial);

int ledPin = 13;

void setup()

{

Serial.begin(115200);

mySerial.begin(115200);

pinMode(ledPin, OUTPUT);

sensor.factoryReset(); //恢复出厂设置

sensor.DetRangeCfg(0, 9); //设置感应距离,最远为9m

sensor.OutputLatency(0, 0); //设置输出延时

}

void loop()

{

int val = sensor.readPresenceDetection();

digitalWrite(ledPin, val);

Serial.println(val);

}

结果

在FireBeetle Board-ESP32上使用

准备

硬件

24GHz毫米波雷达传感器

FireBeetle Board-ESP32

软件

Arduino IDE,点击下载Arduino IDE

DFRobot_mmWave_Radar库,点击下载DFRobot_mmWave_Radar库

如何安装库文件,点击链接

接线图

毫米波

FireBeetle Board-ESP32

VCC

3V3

GND

GND

RX

D3

TX

D2

样例代码

/*!

@file DFRobot_mmWave_Radar.ino

@ Read whether there is people or object moving in the detection range of the sensor.

@ The sensor detection range and output delay time can be configured. Also you can restore the sensor to factory default settings.

@n Experimental phenomenon: When the sensor starts successfully, 0 or 1 will be printed on the serial monitor.

@ 0 means that there is no human or object moving in sensing area, 1 means the oppposite.

@copyright Copyright (c) 2010 DFRobot Co.Ltd (http://www.dfrobot.com)

@licence The MIT License (MIT)

@version V1.0

@date 2023-3-13

@https://github.com/DFRobot

*/

#include

HardwareSerial mySerial(1);

DFRobot_mmWave_Radar sensor(&mySerial);

void setup() {

Serial.begin(115200);

mySerial.begin(115200, SERIAL_8N1, D2, D3); //RX,TX

pinMode(LED_BUILTIN, OUTPUT);

sensor.factoryReset(); //Restore to the factory settings

sensor.DetRangeCfg(0, 9); //The detection range is as far as 9m

sensor.OutputLatency(0, 0);

}

void loop() {

int val = sensor.readPresenceDetection();

digitalWrite(LED_BUILTIN, val);

Serial.println(val);

}

结果

有人打印“1”,无人打印“0”。

在FireBeetle Board-ESP8266上使用

准备

硬件

24GHz毫米波雷达传感器

FireBeetle Board-ESP8266

软件

Arduino IDE,点击下载Arduino IDE

DFRobot_mmWave_Radar库,点击下载DFRobot_mmWave_Radar库

如何安装库文件,点击链接

接线图

毫米波

FireBeetle Board-ESP8266

VCC

3V3

GND

GND

RX

D5

TX

D2

样例代码

/*!

@file DFRobot_mmWave_Radar.ino

@可以读取到传感器探测范围内有无人或物在动,可以配置传感器感应区域,可以配置传感器输出延迟时间,可以将传感器恢复出厂设置。

@n Experimental phenomenon: 传感器设备启动成功后,将在串口显示器上打印0或1,0表示探测范围内没有人或物在动,1表示探测范围内有人或物在动

@copyright Copyright (c) 2010 DFRobot Co.Ltd (http://www.dfrobot.com)

@licence The MIT License (MIT)

@version V1.0

@date 2023-3-13

@https://github.com/DFRobot

*/

#include

#include

int LED_BLINK = 2;

SoftwareSerial mySerial(D2, D5);

DFRobot_mmWave_Radar sensor(&mySerial);

void setup() {

Serial.begin(115200);

mySerial.begin(115200);

pinMode(LED_BLINK, OUTPUT);

sensor.factoryReset(); //恢复出厂设置

sensor.DetRangeCfg(0, 9); //设置感应距离,最远为9m

sensor.OutputLatency(0, 0); //设置输出延时

}

void loop() {

int val = sensor.readPresenceDetection();

digitalWrite(LED_BLINK, val);

Serial.println(val);

delay(1000);

}

结果

有人打印“1”,无人打印“0”。

在Beetle ESP32-C3上使用

准备

硬件

24GHz毫米波雷达传感器

Beetle ESP32-C3

软件

Arduino IDE,点击下载Arduino IDE

DFRobot_mmWave_Radar库,点击下载DFRobot_mmWave_Radar库

如何安装库文件,点击链接

接线图

毫米波

Beetle ESP32-C3

VCC

3V3

GND

GND

RX

D7

TX

D5

样例代码

/*!

@file DFRobot_mmWave_Radar.ino

@ Read whether there is people or object moving in the detection range of the sensor.

@ The sensor detection range and output delay time can be configured. Also you can restore the sensor to factory default settings.

@n Experimental phenomenon: When the sensor starts successfully, 0 or 1 will be printed on the serial monitor.

@ 0 means that there is no human or object moving in sensing area, 1 means the oppposite.

@copyright Copyright (c) 2010 DFRobot Co.Ltd (http://www.dfrobot.com)

@licence The MIT License (MIT)

@version V1.0

@date 2023-3-13

@https://github.com/DFRobot

*/

#include

HardwareSerial mySerial(1);

DFRobot_mmWave_Radar sensor(&mySerial);

int LED_BLINK = 10;

void setup() {

Serial.begin(115200);

mySerial.begin(115200, SERIAL_8N1, 5, 7); //RX,TX

pinMode(LED_BLINK, OUTPUT);

sensor.factoryReset(); //Restore to the factory settings

sensor.DetRangeCfg(0, 9); //The detection range is as far as 9m

sensor.OutputLatency(0, 0);

}

void loop() {

int val = sensor.readPresenceDetection();

digitalWrite(LED_BLINK, val);

Serial.println(val);

}

结果

有人打印“1”,无人打印“0”。

常见问题

还没有客户对此产品有任何问题,欢迎通过 qq 或者论坛联系我们!

更多问题及有趣的应用,可以访问论坛进行查阅或发帖

更多

串口指令列表

DFRobot 商城购买链接

🌸 相关推荐

如何获得魔兽世界中的钢缚吞噬者
365彩票老版本

如何获得魔兽世界中的钢缚吞噬者

📅 08-18 👀 4486
恒信钻石董事长李厚霖资料背景及个人资产起底
基友是什么意思?深入解析这一网络流行语的起源与演变