Пять протоколов в теплице и один работающий драйвер
MQTT, LoRaWAN, Modbus-TCP, BACnet, Zigbee — в блюпринте есть все пять. Реально работает один. Мы предпочитаем это сказать, а не изобразить.
В описании теплицы перечислено пять протоколов связи. Датчики влажности почвы — LoRaWAN. Датчики воздуха — MQTT через Wi-Fi. Зонды pH и EC — Modbus-TCP. Контроллеры вентиляции — BACnet. Реле полива — Zigbee.
Это не архитектурное щегольство. Приборы в теплице физически разнотипны, и сводить их на один канал нечем: батарейный зонд влажности не станет говорить по Ethernet, а промышленный контроллер вентиляции не переедет на LoRaWAN, потому что он его не умеет и никогда не будет уметь.
Что работает на сегодня
Из пяти протоколов в платформе реально реализован драйвер только для Modbus-TCP.
LoRaWAN, MQTT, BACnet и Zigbee честно сообщают, что протокол не подключён в этой сборке. Не возвращают нули. Не отдают правдоподобные случайные значения. Не «эмулируют для демонстрации». Отвечают, что драйвера нет.
Мы понимаем, как это читается в презентации. Пять протоколов в списке возможностей выглядят сильнее, чем один. Но у заглушки, которая притворяется рабочей, есть одно свойство: она обнаруживается не на демонстрации, а на объекте, где уже закуплены и смонтированы приборы.
Чем плоха вежливая заглушка
Представьте датчик влажности почвы, который «работает» — то есть отдаёт значение, а значение берётся из последней записи в кэше или из середины допустимого диапазона. Полив по такому сигналу пойдёт по расписанию, показания будут выглядеть нормально, графики — гладко. Проблема обнаружится через две недели по состоянию растений, и разбираться придётся со всей цепочкой сразу.
Ошибка «драйвер не подключён» уродлива, зато локальна. Она случается при первом же обращении, до закупки следующей партии приборов, и говорит ровно то, что произошло.
Почему выбран Modbus-TCP
Не потому, что он лучший. Потому что он самый распространённый среди приборов, которые уже стоят на площадках: промышленные передатчики pH и EC, преобразователи, счётчики. Modbus-TCP — это протокол, на котором говорит существующее железо, а не то, которое мы хотели бы видеть в идеальном мире.
Начинать с него означает, что первая же теплица подключается к тому, что там уже есть, а не к тому, что предстоит докупить.
Где здесь место открытому микроконтроллеру
Отдельное наблюдение из инвентаризации. Подавляющее большинство приборов в этой теплице — закрытые промышленные изделия: батарейные зонды, Modbus-передатчики, контроллеры вентиляции, промышленные реле, коммерческий диммируемый светильник. У них нет открытой прошиваемой платы, и трогать их прошивку не только незачем, но и физически нечем.
Единственное место, где открытый микроконтроллер вроде ESP32 действительно напрашивается, — датчик воздуха: он и так работает по Wi-Fi и по открытому протоколу. Всё остальное — интеграция с готовыми изделиями, а не разработка электроники.
Это скучный вывод, и он экономит месяцы. Соблазн «сделать свой датчик» на старте проекта возникает почти всегда; инвентаризация обычно показывает, что своим стоит делать один узел из десяти.