Домашняя автоматизация на Orange Pi. Введение
Автор: Alexsis_76

Сегодня хочу Вам представить альтернативную систему домашней автоматизации на аппаратной платформе Orange Pi,китайском аналоге Raspberry Pi и программной реализации основанной на широко распространенной связке называемой LEMP стек.
Сказаное, впрочем будет работать и на Raspberry Pi за исключением некоторых аппаратно-зависимых моментов, касаемых управления портами GPIO.Схема взаимодействия модулей примерно следующая
Nginx-полноценный web-сервер обеспечивающий работу с браузерами, берет на себя все аспекты взаимодействия обеспечивая надежную поддержку протокола и освобождает пользователя от рутинных операций по реализации протокола позволяя сосредоточится на написании программного кода .
PHP -скриптовый язык Personal Home Page Tools - «Инструменты для создания персональных веб-страниц» предназначен для написания веб страниц, работа с ним очень проста и понятная, синтаксис очень сильно напоминает язык Си и содержит встроенные функции работы с базой данных, очень прост в освоении, если начать с утра то к обеду можете довольно не плохо программировать. Отвечает за работу с интерфейсом с одной стороны и базой mysql с другой.
Следующий компонент Python ,который непосредственно в модель LEMP не входит, отвечает за управления портами ввода вывода,GPIO можно управлять и из PHP,но Python справится с этим лучше,PHP заточен больше для веб, собственно использование Python не принципиально, можно использовать Perl или Bash скрипт, у меня были наработки на Python поэтому используется он и отвечает за взаимодействие с портами вода-вывода с одной стороны и базы с другой.
Последний элемент системы MySQL,используется для взаимодействия части программы с PHP и Python, обеспечивает хранение результатов работы системы при отключении питания, использование базы предпочтительнее использования файла, запись-выборка из базы гораздо удобнее, в языках программирования имеются удобные функции для работы с базой.
Теперь когда мы разобрались с устройством можно составить схему взаимодействия компонентов.
Когда Вы набираете в адресной строке браузера адрес сервера в работу вступает Nginx который вызывает интерфейс php-fpm и запускает скрипт PHP,в моем случае это index.php, скрипту передаются переменные окружения(то что получил от браузера Nginx )при выполнении скрипта(напомню PHP это серверный скрипт),результаты выполнения скрипта(в данном случае веб страница)передается в обратном направлении и отображается в браузере в виде странички, если Вы нажали кнопку на странице в сеть уходит запрос с указанием имени скрипта и данных ,запускается скрипт и парсер пишет в нем данные, если найдет то выполняется требуемое действие и выполнение скрипта завершается, если нет то скрипт завершает работу,PHP заполняет базу данными в зависимости от запросов пользователя, с другой стороны работает python скрипт. Скрипт работает постоянно и опрашивает базу, если данные в базе поменялись скрипт производит необходимые действия и продолжает работу.
Вот собственно краткий обзор системы. Из приведенного текста можно получить некоторое представления о работе системы. Если будет заинтересованность ,можно организовать детальный разбор модулей с разбором реального кода и веб программирования.
Благодарю за внимание.
От Admin: По всем вопросам, касательно применительно Orange Pi для домашней автоматизации обращаемся к автору в этой ветке форума.
Добавил: Admin Дата: 07.05.2017 18:48 Просмотры: 1373