Как превратить обычный Wi-Fi роутер в датчик дыхания с помощью ESP32

04 мар 2026
1,556
238
32
5 месяцев

Вы когда-нибудь задумывались, что радиоволны в вашей квартире «видят» всё, что происходит вокруг? Каждый раз, когда вы проходите по комнате или даже просто вдыхаете воздух, вы меняете физическую среду, через которую пролетают пакеты данных. Оказывается, эти микроскопические изменения можно поймать и расшифровать.

Проект esp-csi от компании Espressif открывает доступ к «магии» CSI (Channel State Information). Это не просто уровень сигнала, который мы привыкли видеть в статус-баре телефона. Это детальный слепок того, как радиоволна отражалась от стен, мебели и вашего тела, прежде чем попасть на антенну микроконтроллера.

Что такое CSI и зачем это разработчику

Обычный индикатор RSSI (сила сигнала) довольно грубый. Он показывает только общую мощность. Если вы закроете антенну рукой, RSSI упадет. Но если вы просто стоите в углу комнаты, RSSI может не измениться.

CSI работает иначе. Он анализирует амплитуду и фазу каждой поднесущей частоты в OFDM-сигнале. Если в комнате кто-то прошел, картинка поднесущих исказится. Это позволяет реализовать бесконтактное зондирование:

  • Обнаружение присутствия человека без камер и ИК-датчиков.
  • Мониторинг фаз сна или частоты дыхания.
  • Распознавание жестов или падений (актуально для ухода за пожилыми людьми).
  • Точное позиционирование внутри помещений, где GPS бессилен.

Интересно, что чувствительность технологии позволяет фиксировать даже жевание или сердцебиение в статичной среде. При этом сохраняется приватность: в отличие от видеокамер, система на базе ESP32 не «видит» лиц, только изменения в радиоэфире.

Реклама

Железо и возможности

Espressif внедрили поддержку CSI во всю современную линейку чипов. Если у вас в столе лежит ESP32, ESP32-S2, S3 или новые C3/C6, вы уже можете запустить эти примеры.

Главные фишки этого репозитория:

  • Поддержка всей экосистемы ESP32 «из коробки».
  • Возможность использовать обычный домашний роутер в качестве источника сигнала (передатчика).
  • Наличие Python-скриптов для визуализации данных в реальном времени.
  • Совместимость с облаком RainMaker для отправки событий.

Процессор ESP32 на 240 МГц достаточно быстр, чтобы крутить легкие нейронки прямо на борту. Это значит, что классификацию «человек идет» или «человек упал» можно делать локально, не отправляя сырые дампы радиоэфира на сервер.

Как это работает на практике

В репозитории предложено три основных сценария развертывания системы.

Сценарий 1: ESP32 + Роутер

Самый простой вариант для старта. ESP32 отправляет обычный Ping на ваш домашний роутер. Когда роутер отвечает (Ping Reply), микроконтроллер извлекает данные CSI из полученного пакета. Плюс: нужен всего один копеечный модуль. Минус: вы привязаны к расположению роутера и его протоколам.

Сценарий 2: Между двумя ESP32

Здесь одна «еспэшка» выступает передатчиком, а вторая — приемником. Они обмениваются данными напрямую или через роутер. Плюс: вы сами решаете, где расставить «маяки», чтобы покрыть нужную зону в квартире.

Сценарий 3: Группа устройств и широковещание

Один передатчик постоянно «кричит» в эфир на разных каналах, а несколько приемников по всей квартире собирают данные. Это самый продвинутый метод, который позволяет реализовать честную трилатерацию и высокоточное отслеживание перемещений.

С чего начать изучение

В папке examples лежат готовые проекты. Для первого запуска идеально подойдет get-started/csi_recv. Вам понадобится установленный ESP-IDF. После прошивки устройства можно запустить скрипт csi_data_read_parse.py из папки tools, чтобы увидеть графики изменения амплитуд в реальном времени.

Если хочется чего-то более прикладного, загляните в раздел esp-radar. Там есть примеры интеграции с облаком и базовые алгоритмы детекции активности.

Кстати, авторы проекта дают дельный совет: используйте модули с внешними антеннами (с разъемом IPEX). Обычные PCB-антенны на плате имеют сильную направленность, что вносит много лишнего шума в данные при повороте устройства.

Стоит ли пробовать

Проект esp-csi — это отличная песочница для тех, кто хочет пощупать цифровую обработку сигналов (DSP) и машинное обучение на реальных данных.

Кому это пригодится:

  1. Разработчикам систем «умный дом», которым нужны невидимые датчики присутствия.
  2. Студентам-радиотехникам для курсовых по OFDM и распространению волн.
  3. DIY-энтузиастам, которые хотят собрать что-то сложнее, чем мигалка светодиодом.

Конечно, документация местами суховата, а для серьезных результатов придется глубоко погрузиться в фильтрацию шумов и математику. Но возможность превратить копеечный чип в радар, который чувствует ваше дыхание через стену — это ли не повод расчехлить программатор?

Для глубокого погружения рекомендую также заглянуть в их подборку ссылок в конце README, там есть ссылки на научные работы и проект ESPectre, который интегрирует всю эту магию в Home Assistant.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.