Основная задача - автоматическое открывание ворот при приближении к участку на автомобиле. Способ реализации: WiFi модуль в автомобиле пытается зарегистироваться на домашней точке доступа. Если ему это удается - проверяется уровень сигнала. Если уровень сигнала слабый - значит приближаемся к участку и надо подать команду WiFI модулю на автоматике ворот на открытие. Если сигнал сильный - мы уже на участке и ничего делать не надо.
Дополнительная функциональность - управление воротами по WiFi через веб-интерфейс, в том числе и с мобильного телефона. Обоснование: если при выезде с участка руки свободны и можно заранее открыть ворота со штатного пульта, то при подъезде к участку нащупывать кнопку на пульте отвлекаясь от дороги - не есть хорошо. При этом ворота открываются относительно медленно и если нажимать кнопку пульта уже подъехав к воротам, то приходится ждать 10-15 секунд, пока ворота откроются. Сервер на ESP32-C3 подключается к автоматике ворот. Клиенты тоже на ESP32-C3 располагаются в автомобилях моем и жены.
Управление RTO-1000 производится замыканием нормально разомкнутых контактов. Напряжение на входах 30-32 В. Поэтому для коммутации используются MOSFET 2N7000, расчитанные на 60 В. Датчики положения "Открыто" и "Закрыто" имеют активным высокий уровень 5В. В промежуточном положении оба датчика выдают низкий уровень. Поэтому входы МК подтягиваем к питанию 3.3 В, и подключаемся к выходам датчиков положения через диоды Шоттки 1N5817. Логическую землю МК и RTO-1000 объединяем. Питание МК обеспечиваем импульсным источником питания 220AC-5DC, так как на плате МК уже имеется стаблизатор на 3.3 В, на вход которого и подаются 5В. Остальное хорошо видно на принципиальной схеме.
Для сборки проекта необходимо скопировать файл cfg.toml.example в cfg.toml и указать в нем: wifi_ssid - SSID точки доступа (дважды, для GateServer и GateControl) wifi_psk - пароль к точке доступа (дважды, для GateServer и GateControl) max_rssi - максимальный уровень сигнала RSSI точки доступа, при котором не нужно открывать ворота. Если указать -80, то команда на открытие ворот будет посылаться только если если уровень сигнала -81 и менее. gate_open_url - URL для GET к серверу для открытия ворот gate_sbs_url - URL для GET к серверу для управления воротами Step-By-Step (SBS). Если ворота закрыты, то по этому сигналу они открываются. Если закрыты, то открываются. Во время движения по этому сигналу они оставливаются. После остановки по этому сигналу они будут двигаться в обратном направлении относительно движения до остановки.
Код прошивки сервера, устанавливаемого в корпусе автоматики RTO-1000, находится в директории GateServer. Код прошвки клиента, располагающегося в автомобиле, находится в директории GateControl.