Нужен совет по приложению удаленного управления raspberry Pi

Хорошо, как сказано в заголовке, мне нужен совет для нового проекта, который я разрабатываю.

Я создаю новый продукт для нашей компании, который будет встроен в наш продукт с помощью raspberry pi. У меня есть рабочее приложение, уже запрограммированное для Raspberry Pi с использованием среды python/flask/html/css, и я думаю о программировании приложения для управления и контроля, которое пользователь может установить на компьютер или телефон.

Обзор того, что у меня есть / что я создаю / пытаюсь построить.

Я создаю устройство управления киоском с сенсорным экраном, которое управляет 16 реле, которые подключены к 8 светодиодным устройствам.

Управляющее устройство pi/app имеет таймер для включения функций остановки / запуска. Он также имеет элементы управления для настройки отдельных реле для достижения желаемой настройки светодиода. Программа изначально загружает реле для отображения светодиода в состоянии «ВЫКЛ.». При нажатии таймера на реле включаются желаемые настройки светодиода. По окончании таймера светодиоды вернутся в состояние «ВЫКЛ.».

В настоящее время я могу добиться этого, используя веб-приложение Flask для управления состояниями реле и хранения переменных, таких как текущее время, состояние работы / остановки таймера и настройки каждого светодиодного устройства.

Я могу управлять устройством удаленно и считывать его текущее состояние, просто загружая IP-адрес пи с другого компьютера в сети. Но функция запуска / остановки не остановит таймер на устройстве, если я нажму Start/Stop на компьютере, поскольку таймер закодирован для работы в javascript. Я не могу просто обновлять страницу через определенный промежуток времени, потому что она неуклюжая и плохо работает. (пытаюсь исправить это с помощью вызовов API)

Я пытаюсь создать приложение управления с компьютера и / или веб-интерфейса, которое будет видеть количество устройств в сети / уже подключенных к Интернету. У этого есть возможность видеть текущее состояние этих устройств и контролировать эти устройства, а также предупреждать оператора о том, что таймер заканчивается.

Я также хочу иметь возможность управлять этими устройствами из любой точки мира / отслеживать их использование и обновлять приложение, размещенное на них.

Отдельное устройство управления должно по-прежнему функционировать в том виде, в котором оно закодировано, если оно не подключено к Интернету.

Я собираюсь интегрировать это устройство с API из стороннего веб-приложения, чтобы установить текущие «предпочтительные настройки» для светодиодных устройств, когда у клиента запланирован сеанс.

Я понимаю, что могу добиться этого с помощью вызовов API, но я не уверен, как лучше всего построить архитектуру, чтобы мне не пришлось перекодировать что-то / все только потому, что простые функции не будут работать правильно.

Мне нужен совет: следует ли мне программировать приложение python для использования на raspberry pi и разрабатывать интерфейс в дизайнере PyQt, или мне следует придерживаться моей текущей версии html/css/js?

Было бы проще закодировать функциональность обновления приложения, то есть запускать новую версию программного обеспечения через определенные промежутки времени в приложении только на чистом питоне, или я должен просто запускать задание cron для проверки обновлений каждые 24 часа и обновлять программу на PI , или мне следует выпустить собственный дистрибутив или пакет, который будет автоматически обновляться при запуске команды проверки / обновления при включении устройства / открытии приложения?

Должен ли я программировать веб-интерфейс для удаленного управления функциональностью raspberry pi, используя только вызовы API (и если да, то что мне следует программировать PI в HTML или приложении python), или мне следует создать настольную версию и веб-интерфейс, чтобы сократить сервер / сетевой трафик? (имейте в виду, что у нас будут тысячи этих устройств, которые будут делать запросы и сохранять данные / текущие состояния таймеров / таймеров)

Мой текущий мыслительный процесс о том, как это нужно закодировать, выглядит следующим образом. Raspberry PI - запущенная программа отправляет вызов API каждую секунду, когда работает таймер, отправляя текущее временное состояние таймера и текущие настройки светодиодного устройства на сервер / приложение, работающее на Raspberry Pi, и отправляет дублированный вызов API на внешний сервер (сервер нашей компании).

В дополнение к этому, я хотел бы отправлять команды на raspberry pi, чтобы обновить его состояние или создать слушателя для цикла с интервалом в одну секунду, чтобы проверить текущий статус переменной сервера / значения базы данных и перезагрузить страницу, если она была изменена.

Как мне настроить "push-вызов" на raspberry pi? Могу ли я дать указание серверу, размещенному на Pi, прослушивать любые открытые вызовы API с веб-сервера компании?

Веб-приложение на компьютере - извлекает текущее состояние таймера, времени и настроек светодиодных устройств с серверов нашей компании и предоставляет функциональные возможности с помощью вызовов API. Также предупреждает оператора / пользователя, когда таймер почти исчерпал для работы с клиентом.

или и в дополнение к веб-приложению.

Настольное приложение - ищет текущие Rpi на сетевых хостах. Iframe Pis index.html позволяет управлять и т. Д. Или извлекает вызов api из сохраненных значений базы данных pis и представляет их в настольном приложении.

Я действительно ищу лучшие практики / как лучше всего это сделать.

У меня есть фон HTML css javascript PHP, но я могу легко подобрать Python или любую другую платформу кодирования, просто нужен совет по этому проекту, спасибо за вашу помощь!

0 ответов

Другие вопросы по тегам