Йа сделяль!
eddy_em — 30.06.2023
Таки сотворил адского монстра -
сетевое управление GPIO на Raspberry Pi. Условно делю гребенку
пополам: нечетные номера — выходы, четные — входы. Каждому выходу
соответствует определенный вход, что конфигурируется парой массивов
в исходниках. Как только состояние входа изменяется, сервер
отсылает всем клиентам "UPxx" или "DOWNxx" (смотря на то, была
кнопка отпущена или нажата). Аналогично делает клиент - отсылает
серверу те же сообщения.Если же клиент или сервер получают эти сообщения, по таблице ищется соответствующая выходная нога. Если она находится, партнеру отправляется ответ "OK" и нога меняет свое состояние (UP - нуль, DOWN - 1). Если возникает ошибка, отправляется ответ "FAIL".
Соответственно, жамкнул вахтер кнопку - релюшка включилась. Отпустил - выключилась... Ну и в ответку могут присылаться всякие вещи, чтобы светодиодиками мигать и пищалкой пищать.
Сервер разворачиваем на одноплатнике со стороны шлагбаума, клиент - в "коробочке" с кнопками у вахтера. Заодно можно будет дистанционно открывать/закрывать, вызывая клиента с ключами -C "команда" (это можно делать с любого компьютера).
Жаль, правда, что "малинка" - такая тормозная. SSL-рукопожатие у нее спокойно может аж 2 секунды длиться! Я поначалу даже не понял, почему отваливается соединение с ошибкой: а это из-за того, что я таймаут в 0.1с установил. Повысил его до 10с.
Простой баш-скрипт генерирует мастер-сертификат и сертификаты для клиента и сервера. И клиент, и сервер проверяют оба сертификата. Хотя, конечно, можно было бы так не заморачиваться, а использовать libssh…
|
|
</> |
Не меняется яркость экрана на ноутбуке - Гайд от компьютерного мастера
28.12.2025
España rural. Arribes del Duero. Самый красивый мирадор: "Монах и Монахиня"
Ворота каньона?
«Перекрестилась и поехала!»: как работают автолавки в Брянской области
Пробковая рукоять удилища: как сохранить её тепло и надежность на долгие годы
January 11 ...вода, Внимательно и пристально наблюдающая за деревьями...
Чего Наполеон хотел от России на самом деле
Немецкий яблочный пирог

