# 🔌 Подключение: ESP32 DevKit v1 + PIR AM312

## Таблица подключения

| AM312 | ESP32 DevKit v1 | Назначение |
| :--- | :--- | :--- |
| VCC (красный) | 3.3V | Питание. **Только 3.3V** — 2.7–3.6В по типовым характеристикам модуля, 5В может повредить датчик. |
| GND (чёрный) | GND | Земля |
| OUT (жёлтый) | GPIO13 | Цифровой выход: HIGH = движение, LOW = покой (на данном экземпляре, см. THEORY.md, раздел 3) |

Опционально (для тестового стенда, не обязательно для самого датчика):

| ESP32 | Назначение |
| :--- | :--- |
| GPIO2 | Встроенный LED — индикатор "движение" |
| GPIO4 | Выход на реле/нагрузку — включается вместе со статусом движения |

Пины заданы в [`main.cpp`](src/main.cpp#L5-L7) как `kPirPin`/`kStatusLedPin`/`kRelayPin` —
поменяйте их там при другой разводке.

## Проверка перед первым включением

1. Мультиметром между VCC и GND датчика — должно быть ~3.3В.
2. OUT датчика → GPIO13 ESP32 (или ваш выбранный пин).
3. После прошивки в Serial Monitor (115200 бод) должен появиться заголовок
   `=== [PIR_sensor_AM312] Motion Detection Test ===`, затем строки `[IDLE]`/`[MOTION]` каждые
   0.5с или при смене статуса — см. [README.md](README.md).
4. Проведите рукой перед датчиком — должно появиться `[MOTION] движение обнаружено`, загорится
   встроенный LED. В первые ~5 секунд после включения возможны ложные срабатывания (пометка
   `прогрев` в логе) — это ожидаемо, см. [THEORY.md](THEORY.md).

## Если логика датчика инвертирована

Разные экземпляры/партии AM312 могут иметь разную полярность выхода (см. THEORY.md, раздел 3).
Если `[MOTION]` никогда не появляется при явном движении перед датчиком — попробуйте поменять
`RISING` на `FALLING` в [`PirSensor::begin()`](src/PirSensor.cpp#L18-L21).

## Если нужны другие GPIO

Не годятся для сигнального пина:
- `GPIO0`, `GPIO2` — участвуют в загрузке платы; `GPIO2` также используется в этом компоненте под
  статусный LED (см. [main.cpp](src/main.cpp#L6)) — не занимайте его под сигнал датчика.
- `GPIO6–11` — заняты встроенной Flash-памятью.
- `GPIO34–39` — вход без прерываний по фронту в некоторых конфигурациях; для сигнального пина
  с `attachInterrupt` предпочтительны обычные GPIO.
