← До всіх проєктів
Автоматизація Початковий

Мікрохвильовий датчик руху RCWL-0516: бачить крізь стіни, але вірити йому треба обережно

Доплерівський радар на 3.2 ГГц за ціною PIR-датчика: реагує на рух крізь пластик і тонкі стіни, не залежить від температури. Але вентилятор чи штора теж для нього «людина». Збираємо світло, яке вмикається, лише коли радар і PIR згодні.

Складність
Початковий
Час
40 min
Категорія
Автоматизація
Оновлено

Про проєкт

PIR-датчик реагує на тепло, тому його сліпить сонце, а в спеку він майже не бачить людину. RCWL-0516 працює інакше: випромінює слабкий сигнал на ~3.2 ГГц і ловить доплерівський зсув від рухомих предметів. Він бачить крізь пластиковий корпус, двері й гіпсокартон на 5–7 м. Зворотний бік — він реагує на будь-який рух: вентилятор, штору на протязі, навіть людину за стіною в сусідній кімнаті.

Що потрібно

  • ESP32 DevKit
  • Модуль RCWL-0516
  • PIR-датчик HC-SR501 (для перехресної перевірки)
  • Світлодіод і резистор 220 Ом або модуль реле

Схема

Модуль Вивід ESP32
RCWL-0516 VIN 5V (4–28 В)
GND GND
OUT GPIO16
HC-SR501 VCC 5V
OUT GPIO17
GND GND
Світлодіод GPIO26 → 220 Ом → GND

Вивід 3V3 на RCWL-0516 — це вихід вбудованого стабілізатора (до 100 мА), а не вхід живлення. Живлять модуль через VIN. Вихід OUT дає 3.3 В навіть при живленні 12 В, тож його можна під'єднати до ESP32 напряму. Вивід CDS призначений для фоторезистора: якщо притягнути його до GND, датчик вимикається (для «нічного» режиму).

Налаштування на платі

  • C-TM — конденсатор, що задає тривалість сигналу (за замовчуванням ~2 с). Більша ємність дає довший імпульс.
  • R-GN — резистор дальності. Якщо припаяти 1 МОм, радіус зменшиться з ~7 до ~5 м.

Пам'ятайте про «сліпу» зону за антеною: з боку компонентів датчик теж бачить, але гірше. Метал поруч (корпус, радіатор) ламає діаграму спрямованості.

Два датчики — одна правда

Надійний прийом — вмикати світло, лише коли обидва датчики бачать рух: радар відсікає хибні спрацювання PIR від сонця й батарей, а PIR — хибні спрацювання радара від вентилятора і руху за стіною. У симуляторі в радара ввімкнено властивість «Поруч працює вентилятор»: він спрацьовує сам кожні 6–16 секунд, і в моніторі порту видно, що такі сигнали ігноруються.

Код

// Світло за рухом: радар RCWL-0516 + PIR — вмикаємо, лише коли згодні обидва
const int RADAR_PIN = 16;
const int PIR_PIN = 17;
const int LAMP_PIN = 26;
const unsigned long HOLD_MS = 10000;   // скільки світити після останнього руху

unsigned long lastMotion = 0;
bool lampOn = false;
bool lastRadar = false;

void setup() {
  Serial.begin(115200);
  pinMode(RADAR_PIN, INPUT);
  pinMode(PIR_PIN, INPUT);
  pinMode(LAMP_PIN, OUTPUT);
}

void loop() {
  bool radar = digitalRead(RADAR_PIN) == HIGH;
  bool pir = digitalRead(PIR_PIN) == HIGH;
  if (radar && !lastRadar) {
    Serial.println(pir ? "Радар + PIR: рух" : "Лише радар: ігноруємо (вентилятор? штора?)");
  }
  lastRadar = radar;
  if (radar && pir) lastMotion = millis();
  bool on = lastMotion != 0 && millis() - lastMotion < HOLD_MS;
  if (on != lampOn) {
    lampOn = on;
    digitalWrite(LAMP_PIN, on ? HIGH : LOW);
    Serial.println(on ? "Світло увімкнено" : "Світло вимкнено");
  }
  delay(50);
}

У симуляторі клацніть по PIR-датчику, а потім по радару — світло ввімкнеться. Спрацювання одного радара від «вентилятора» світло не вмикають.

Корисно знати

  • Живлення. Від 3.3 В модуль нестабільний; підключайте VIN до 5V.
  • Два радари поруч заважають один одному (биття частот). Розносьте їх на 1 м і більше.
  • Wi-Fi. Сам радар не заважає Wi-Fi (інший діапазон), але антена ESP32 впритул до модуля може давати хибні спрацювання. Кілька сантиметрів відстані зазвичай вистачає.