Маленький компьютер у датчика
Почему датчик лучше подключать к отдельному узлу?
Общая электронная основа ускоряет разработку. При её выборе сохраняется возможность разных режимов питания будущих устройств.
Микроконтроллер рядом с датчиком даёт короткие электрические линии и собственный ритм измерений. Он может сохранить несколько записей при обрыве Wi-Fi и не зависит от того, занят ли Linux распознаванием речи.
Отладочная плата избавляет от раннего проектирования питания и радиочасти, но не отменяет чтение её схемы. Надпись на контакте, номер GPIO и физический номер в гребёнке — разные обозначения. Монтажные карты ниже используют все три там, где это необходимо.
Для первых трёх узлов выбирается ESP32-C6-DevKitC-1. Это не обещание, что весь ассортимент Koobique останется на одном MCU. Отладочная плата удобна наличием питания, USB, загрузчика и готового радиомодуля. У варианта N8 документированы 8 МБ flash и отсутствие PSRAM; это важно при одновременной работе BLE, TLS и обновления. [14]
Роли одинаковой платы#
На Sense используются I²C-датчики. На Presence — цифровой вход PIR и UART радара. На Actuator — выход управления реле и физическая кнопка. Общая прошивочная инфраструктура обеспечивает сеть, идентичность, обновление и диагностику, но список драйверов и периферии задаётся профилем сборки.
Исполнитель не должен принимать конфигурацию, которая случайно назначает реле на загрузочный strapping pin. Карта контактов имеет аппаратную версию и проверяется при сборке. Изменение GPIO — изменение описания платы, а не пользовательский параметр обычной автоматизации.
Предлагаемая карта контактов#
| Функция | GPIO / питание | Контакт DevKitC-1 | Примечание |
|---|---|---|---|
| Питание датчиков | 3V3 | J1-1 | Проверить суммарный ток модулей |
| I²C SDA | GPIO6 | J1-5 | Внешняя подтяжка к 3,3 В, с учётом breakout |
| I²C SCL | GPIO7 | J1-6 | Начать со 100 кГц |
| Relay SIG | GPIO10 | J1-10 | Внешний безопасный уровень при старте |
| Кнопка или PIR | GPIO18 | J3-10 | Назначение зависит от профиля узла |
| UART RX MCU | GPIO20 | J3-8 | Соединяется с TX радара |
| UART TX MCU | GPIO21 | J3-7 | Соединяется с RX радара |
| Общая земля | GND | J1-15 / J3-1 | Не ориентироваться только по цвету |
Таблица основана на опубликованной распиновке DevKitC-1; конкретная ревизия и совместимые клоны должны быть сверены. GPIO8 занят RGB LED, GPIO9 связан с загрузочным режимом, GPIO12/13 используются USB, GPIO16/17 — UART-мостом. GPIO4/5, 8/9 и 15 относятся к strapping-функциям и не выбираются произвольно для исполнительного выхода. [14]
GPIO6/7 связаны также с внешним JTAG. При выбранной I²C-карте для отладки используется подходящий USB Serial/JTAG путь, а не одновременное подключение внешнего JTAG к тем же линиям. Конфликты периферии обнаруживаются в описании платы до разводки.
Периферийный контракт#
У каждого драйвера есть init, sample, состояние ошибки, ограничение времени и процедура восстановления. Он не блокирует общую систему бесконечным ожиданием байта. Ошибка I²C передаётся как ошибка канала, а не заменяется нулём градусов. После восстановления первый достоверный результат отмечается как новый.
Для UART-периферии нужен ограниченный буфер, проверка длины и контроль кадра, если он предусмотрен производителем. Неизвестный байт не должен смещать весь поток навсегда. Протокол радара считается внешним недоверенным входом, даже когда модуль физически припаян к плате.
Питание и отключаемые домены#
Для стационарного узла простота важнее микроампер сна. Отдельные выключаемые домены полезны как способ восстановить зависший датчик, но добавляют MOSFET/ключ, пусковой ток и риск питания через сигнальные линии. Нельзя отключить VDD сенсора и оставить SDA подтянутой к активной шине, не проверив допустимые режимы его входов.
Для будущего батарейного устройства отладочная плата может оказаться неподходящей из-за LED, USB-моста и стабилизатора. Тогда выбирается MCU и питание по энергетическому бюджету, а не копируется весь Sense. Общими остаются семантика сообщений и драйверные интерфейсы, но транспорт может стать BLE с пакетной синхронизацией.
Что положить на стол#
Нужны три рабочие платы и одна запасная, кабели с передачей данных, короткие соединения, макетная плата достаточной ширины или переходник, мультиметр и логический анализатор подходящего уровня. При подключении анализатора проверяется допустимое входное напряжение; заземление осциллографа не подключается к неизвестной силовой точке.
Проверка каждой платы отдельно#
Записать модель и ревизию, прочитать идентификатор, прошить минимальный диагностический образ, проверить USB, Wi-Fi и свободную память. Затем подключать по одному модулю. Один общий жгут со всеми неизвестными устройствами усложняет поиск ошибки в несколько раз.
Перед первой подачей питания#
В ведомости фиксируется точный DevKitC-1-N8 и ревизия либо схема выбранного аналога. USB-Serial-JTAG относится к разъёму, соединённому с USB самого C6; второй порт может вести к USB-UART. Названия «USB-C» и «ESP32-C6» не определяют разводку. Strapping-пины, уровни и питание сверяются по документации именно приобретённой платы.
Первый аппаратный риск — не средний ток датчиков, а просадка питания во время радиопередачи и включения реле. Проверяют напряжение на плате и причину reset при одновременной нагрузке. Большой конденсатор не заменяет достаточный источник, короткие силовые провода и отделение катушки от сенсорной шины.