在这里插入图片描述

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试多做实验,不管成功与否,都会记录下来——小小的进步或是搞不掂的问题,希望能够抛砖引玉。

【Arduino】168种传感器执行器模块系列实验(资料代码+仿真编程+图形编程)
实验二百一十七:C4002 毫米波运动与静态存在检测模块人体存在传感器

在这里插入图片描述
在这里插入图片描述

DFRobot C4002 毫米波人体存在传感器 综合介绍

一、产品定位
DFRobot C4002(型号 SEN0691),24GHz FMCW 毫米波雷达,主打静止 + 微动人体存在检测,替代传统 PIR 红外;能识别人静坐、睡觉、呼吸微动,不受黑暗、温度、窗帘遮挡影响,适合智能家居、创客开发、ESP32 / 单片机项目。

二、核心参数
工作频率:24.0~24.25GHz
探测距离:运动人体最大 11m,静止 / 微动人体最大 10m
探测角度:120°×120° 大范围广角
工作电压:3.6V~5.5V(3.3V 不稳,建议 5V 供电)
工作温度:-20℃ ~ 85℃
环境光检测:自带光敏,输出 0~50lux 光照值
默认串口波特率:115200

三、核心能力(碾压普通 PIR)
真存在检测:不仅检测走动,还能检测静坐、办公、睡觉、呼吸微动
多数据输出:UART 可读出 距离、速度、移动方向、信号能量、光照、存在倒计时
双输出模式
UART 串口:读取详细原始数据、自定义逻辑
OUT 电平口:可配置高低电平,极简触发(不用解析串口)
抗干扰强:不怕黑夜、强光、温差、玻璃 / 薄窗帘遮挡,只识人体不误判杂物

四、引脚定义与接线
共 5 针:VIN、GND、RX、TX、OUT
VIN:3.6~5.5V 供电
GND:公共地
TX:模块发送 → 主控 RX
RX:模块接收 → 主控 TX
OUT:可编程电平输出(有人 / 无人高低电平)

OUT 三种工作模式
仅检测运动才输出高
仅静止人体输出高
运动 + 静止都输出高(推荐常用)

五、适配与开发
兼容:Arduino、ESP32-S3、树莓派、CanMV、Home Assistant、ESPHome
软件:有官方 Arduino 库、现成示例代码,支持直接接入智能家居自动化
开发门槛:两种用法 ——极简 OUT 电平触发 / 串口读全参数做智能逻辑

六、典型应用场景
智能灯光:人在灯亮、人离延时灭,静坐不熄灯
办公室 / 教室人体存在节能、空调自动启停
卧室、浴室静态人体感应
安防入侵检测、货车 / 室内有人值守监测
智能家居 Home Assistant 本地化人体传感

七、优势总结
比 PIR 更强:能测静止 + 微动,不会人坐着就误关灯
性价比高:入门级毫米波,价格亲民
用法灵活:支持简单电平和专业串口数据两种开发方式
适配广:ESP32、单片机、智能家居生态全部通吃

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

C4002是一款基于24GHz FMCW技术的毫米波雷达模块,专为智能家居场景中需要精准静态人体存在感知的应用而设计。模块突破了传统PIR传感器只能检测大幅运动的局限,可在10x10m的有效检测范围内,同步侦测运动人体与静止/微动人体,并支持运动速度检测、运动方向识别(靠近/远离)及环境光检测功能。模块具备分区检测能力与探测范围可调功能,通过底噪采集智能过滤环境干扰,输出模式灵活可配置,是智能家居产品方案实现真无人感控系统的理想核心部件。

宽范围多状态检测,支持IO可控输出
凭借10x10m的有效检测范围,C4002可全面覆盖整个房间。无论是行走中的大幅运动,还是静止不动的微动,模块均能检测输出,还可通过OUT接口的可配置输出模式(如存在、运动、静止及微动状态),直接控制外部设备,确保仅在“真正有人”时运行,提升便利性与节能效率。

智能抗干扰,稳定可靠免调试
模块内置环境底噪采集功能,在新环境中可自动学习并建立背景噪声模型,有效过滤窗帘摆动、空调运行、绿植摇晃等常见干扰,大幅降低误报率,保证系统长期稳定运行。

探测范围灵活可调,适应各种探测场景需求
可以根据实际应用需要,灵活调节检测范围。无论是从大空间适配到小房间,还是通过分区功能避开特定干扰区域,均能确保感知区域精准匹配应用场景,提升空间利用的灵活性。

开发生态与兼容性
C4002完美兼容 Arduino、ESP32 、树莓派主流开源硬件平台,并可轻松集成至 Home Assistant 智能家居系统。凭借丰富的资源,能够快速实现功能验证与系统集成,极大缩短研发周期。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
应用场景
智能灯控系统:实现“人来灯亮,人走灯灭”的精准自动化控制。
恒温恒湿控制:基于人员存在状态自动调节客厅、书房空调与环境设备。
入睡管理:监测卧室人员静止状态,自动切换睡眠模式,联动夜灯、空调等设备。
安防监控:检测异常移动或闯入行为,触发警报或录像。
看护系统:监测人员是否在房间内静止或微动状态,发现异常(如久未活动)可发出提醒。

技术规格
工作电压:3.6~5.5V
检测能力:运动、微动/静止人体
最大检测距离:运动11m、微动/静止10m
探测角度:120°x120°
输出接口:OUT(可配置IO),UART
工作频率:24GHz~24.25GHz
光线检测:0~50lux
工作温度:-20~85℃
产品尺寸:22mm x 26mm

相关文档
产品维库
https://wiki.dfrobot.com.cn/SKU_SEN0691_C4002%20mmWave%20Motion%20and%20Static%20Presence%20Module

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

硬件准备
Arduino uno×1
C4002(SKU:SEN0690)×1
软件准备
下载Arduino IDE: 点击下载Arduino IDE
下载C4002库: 点击下载DFRobot_C4002(https://gitee.com/dfrobot/DFRobot_C4002/repository/archive/main.zip)

模块接脚与实验接线示意图

在这里插入图片描述
在这里插入图片描述
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百一十七:C4002 毫米波运动与静态存在检测模块人体存在传感器
案例12:校准后自动检测人体,控制LED(智能灯光控制)

/*
  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百一十七:C4002毫米波运动与静态存在检测模块人体存在传感器
  案例十二:校准后自动检测人体,控制LED(智能灯光控制)
*/

#include <DFRobot_C4002.h>
#include <SoftwareSerial.h>

// ==================== 引脚定义 ====================
#define LED_PIN 13          // 板载LED
#define C4002_RX 4          // 模块TX → D4
#define C4002_TX 5          // 模块RX → D5

SoftwareSerial mySerial(C4002_RX, C4002_TX);
DFRobot_C4002 c4002(&mySerial, 115200);

// ==================== 全局变量 ====================
bool calibDone = false;        // 校准完成标志
String lastState = "无人";     // 上一次稳定状态
unsigned long lastChange = 0;  // 上次状态变化时间
const unsigned long DEBOUNCE = 1500; // 1.5秒去抖

// ==================== Setup ====================
void setup() {
  Serial.begin(115200);
  pinMode(LED_PIN, OUTPUT);
  digitalWrite(LED_PIN, LOW);
  
  delay(500);
  Serial.println("\n===== 智能灯光系统启动 =====");

  // 初始化C4002
  while (!c4002.begin()) {
    Serial.println("模块初始化失败,重试...");
    delay(1000);
  }
  Serial.println("模块初始化成功");

  // 开指示灯
  c4002.setRunLedState(eLedOn);
  c4002.setOutLedState(eLedOn);
  
  // 上报周期:每秒1次
  c4002.setReportPeriod(10);

  // 快速校准(2秒准备 + 5秒校准)
  Serial.println("校准中,请保持无人...");
  c4002.startEnvCalibration(2, 5);
}

// ==================== Loop ====================
void loop() {
  sRetResult_t result = c4002.getNoteInfo();

  // -------- 等待校准完成 --------
  if (!calibDone) {
    if (result.noteType == eCalibration) {
      Serial.print("剩余: ");
      Serial.print(result.calibCountdown);
      Serial.println("秒");
      
      if (result.calibCountdown == 0) {
        calibDone = true;
        Serial.println("校准完成!进入检测模式\n");
      }
    }
    delay(500);
    return;
  }

  // -------- 检测人体状态 --------
  if (result.noteType == eResult) {
    eTargetState_t state = c4002.getTargetState();
    
    // 转换为字符串
    String nowState = (state == eNoTarget) ? "无人" : "有人";
    
    // 状态变化检测(带防抖)
    if (nowState != lastState) {
      lastChange = millis();
      lastState = nowState;
    }
    
    // 状态稳定后执行动作
    if (millis() - lastChange > DEBOUNCE) {
      if (nowState == "有人") {
        digitalWrite(LED_PIN, HIGH);
        Serial.println("有人 → 开灯");
      } else {
        digitalWrite(LED_PIN, LOW);
        Serial.println("无人 → 关灯");
      }
    }
  }
  
  delay(300); // 轮询间隔
}

实验串口返回情况

在这里插入图片描述
实验场景图

在这里插入图片描述
在这里插入图片描述

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐