ЭлектроникаГлава 11 / 51

Маленький компьютер у датчика

Почему датчик лучше подключать к отдельному узлу?

Общая электронная основа ускоряет разработку. При её выборе сохраняется возможность разных режимов питания будущих устройств.

Микроконтроллер рядом с датчиком даёт короткие электрические линии и собственный ритм измерений. Он может сохранить несколько записей при обрыве Wi-Fi и не зависит от того, занят ли Linux распознаванием речи.

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

Для первых трёх узлов выбирается ESP32-C6-DevKitC-1. Это не обещание, что весь ассортимент Koobique останется на одном MCU. Отладочная плата удобна наличием питания, USB, загрузчика и готового радиомодуля. У варианта N8 документированы 8 МБ flash и отсутствие PSRAM; это важно при одновременной работе BLE, TLS и обновления. [14]

A12Проектное назначение сигналов первых узлов. Физическое положение контакта берётся из таблицы J1/J3 и сверяется с надписями реальной платы.

Роли одинаковой платы#

На Sense используются I²C-датчики. На Presence — цифровой вход PIR и UART радара. На Actuator — выход управления реле и физическая кнопка. Общая прошивочная инфраструктура обеспечивает сеть, идентичность, обновление и диагностику, но список драйверов и периферии задаётся профилем сборки.

Исполнитель не должен принимать конфигурацию, которая случайно назначает реле на загрузочный strapping pin. Карта контактов имеет аппаратную версию и проверяется при сборке. Изменение GPIO — изменение описания платы, а не пользовательский параметр обычной автоматизации.

Предлагаемая карта контактов#

ФункцияGPIO / питаниеКонтакт DevKitC-1Примечание
Питание датчиков3V3J1-1Проверить суммарный ток модулей
I²C SDAGPIO6J1-5Внешняя подтяжка к 3,3 В, с учётом breakout
I²C SCLGPIO7J1-6Начать со 100 кГц
Relay SIGGPIO10J1-10Внешний безопасный уровень при старте
Кнопка или PIRGPIO18J3-10Назначение зависит от профиля узла
UART RX MCUGPIO20J3-8Соединяется с TX радара
UART TX MCUGPIO21J3-7Соединяется с RX радара
Общая земляGNDJ1-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 при одновременной нагрузке. Большой конденсатор не заменяет достаточный источник, короткие силовые провода и отделение катушки от сенсорной шины.

Найти в книге

Поиск по всем главам, схемам и техническим разделам.