Обзор
DFRobot C4001 — это современный радарный датчик миллиметрового диапазона (24 ГГц), использующий технологию FMCW (Frequency Modulated Continuous Wave). В отличие от обычных PIR-датчиков, реагирующих только на изменение теплового фона при движении, C4001 способен обнаруживать «микро-движения», такие как движение грудной клетки при дыхании.
DFRobot C4001 (SEN0610) позволяет разделить понятия «движение» (перемещение объекта) и «присутствие» (статичный человек). Технология FMCW анализирует доплеровский сдвиг и фазу отраженной волны, что обеспечивает точность детекции до нескольких сантиметров на расстоянии до 12 метров.
Быстрая навигация
Характеристики C4001
Датчик обладает высокой чувствительностью и гибкой системой порогов срабатывания.
Распиновка C4001
Датчик SEN0610 поставляется с 6-пиновым разъемом. Важно: UART и I2C нельзя использовать одновременно без переключения режимов.
| Пин | Тип | Описание | Параметр |
|---|---|---|---|
| VCC | Питание | Вход (3.3В - 5.5В) | DC |
| GND | Земля | Общий минус | - |
| RX / SDA | Data | UART RX или I2C SDA | TTL 3.3В |
| TX / SCL | Clock | UART TX или I2C SCL | TTL 3.3В |
| GP1 | IO | Индикатор присутствия | High = Person |
| GP2 | IO | Индикатор движения | High = Motion |
Настройка и связь
1. UART Интерфейс (Основной)
По умолчанию датчик работает через UART.
- Baudrate: 115200.
- Формат данных: 8 бит данных, 1 стоп-бит, без контроля четности.
- Команды: Датчик использует HEX-фреймы. Например, чтение данных происходит автоматически в потоковом режиме, но конфигурация (дистанция, пороги) требует отправки команд вида
55 5A ....
2. I2C Интерфейс
- Адрес по умолчанию:
0x20. - Для работы через I2C необходимо убедиться, что библиотека поддерживает этот режим. Скорость шины до 400 кГц.
| Схема (I2C) | C4001 Пин | ESP32 (GPIO) | Arduino Uno |
|---|---|---|---|
| VCC | VCC | 5V / 3.3V | 5V |
| GND | GND | GND | GND |
| SDA | SDA | GPIO 21 | A4 |
| SCL | SCL | GPIO 22 | A5 |
Устранение неполадок и монтаж
Радары 24 ГГц крайне чувствительны к окружающей среде. Соблюдайте следующие правила:
Ложные срабатывания (Шторы, Вентиляторы)
Влияние вибраций корпуса
Проникновение сквозь стены
Примеры программирования
Arduino (Библиотека DFRobot)
C++
Arduino (Библиотека DFRobot)
#include <DFRobot_C4001.h>
// Для ESP32 используем Serial2
DFRobot_C4001 radar(&Serial2);
void setup() {
Serial.begin(115200);
Serial2.begin(115200, SERIAL_8N1, 16, 17); // RX=16, TX=17
if (radar.begin() != 0) {
Serial.println("Датчик не найден!");
while(1);
}
// Установка дистанции детекции (например, 5 метров)
radar.setDetectionDistance(0, 500); // в сантиметрах
Serial.println("Радар запущен.");
}
void loop() {
if (radar.readStatus() == 0) {
Serial.print("Присутствие: ");
Serial.print(radar.getPresence() ? "ДА" : "НЕТ");
Serial.print(" | Дистанция: ");
Serial.print(radar.getDistance());
Serial.println(" см");
}
delay(200);
}
ESPHome (Binary Sensor via GPIO)
YAML
ESPHome (Binary Sensor via GPIO)
Самый стабильный способ для Home Assistant — использование пинов GP1/GP2.
binary_sensor:
- platform: gpio
pin: GPIO25 # Подключено к GP1 датчика
name: "Human Presence"
device_class: presence
- platform: gpio
pin: GPIO26 # Подключено к GP2 датчика
name: "Human Motion"
device_class: motion
# Опционально: UART для настройки
uart:
id: radar_uart
tx_pin: GPIO17
rx_pin: GPIO16
baud_rate: 115200
MicroPython (UART Parser)
Python
MicroPython (UART Parser)
from machine import UART, Pin
import time
# Настройка UART1 (ESP32: TX=17, RX=16)
uart = UART(1, baudrate=115200, tx=17, rx=16)
def read_radar():
if uart.any():
data = uart.read(10)
# Упрощенный парсинг HEX протокола C4001
if data and data[0] == 0x55 and data[1] == 0x5A:
presence = data[3] # Байт статуса присутствия
distance = (data[5] << 8) | data[6]
return presence, distance
return None, None
while True:
pres, dist = read_radar()
if pres is not None:
print(f"Присутствие: {'Да' if pres else 'Нет'}, Дистанция: {dist} см")
time.sleep(0.1)
Итоги
C4001 — это профессиональное решение для тех, кому недостаточно возможностей PIR-датчиков. Благодаря технологии FMCW, он идеально подходит для автоматизации света в санузлах, рабочих кабинетах и спальнях, где человек может долгое время оставаться практически неподвижным.