Python control kivy app с веб-интерфейсом

Я создал графический интерфейс для управления иглами GPIO Raspberry Pi. В приложении kivy я импортирую свой файл python, где я определил свои функции для настройки выходных данных и выполнения вычислений. Теперь я хочу управлять этими функциями с помощью веб-интерфейса и параллельно с моим локальным графическим интерфейсом на сенсорном экране.

Я видел, что существуют фреймворки, такие как Flask или Django, мой вопрос: как мне получить связь между моим работающим фреймворком (например, Flask) и существующими функциями, которые уже используются локально, есть ли рекомендуемый способ?

1 ответ

Я стою перед аналогичной проблемой, поэтому вот мои идеи:

Теоретически должно быть возможно объединить флешку и kivy в одном приложении в разных потоках, но я не буду пытаться сделать это, потому что это довольно большие фреймворки, и отладка будет огромной (или заставит работать с nginx).

Опция 1

Используйте два отдельных приложения - киви и колбу. Киви работает как мастер, он выполняет всю логику, управляет GPIO и т. Д. Каждый раз, когда вы загружаете (GET) страницу или изменения POST, колба вызывает kivy через grpc, чтобы получить текущее состояние, расчеты или установить GPIO.

Вариант 2

Используйте три приложения. Одним из них является управление GPIO, выполнение расчетов и логика. Два других приложения - это flask и kivy, которые общаются с первым также через grpc.

Вариант 3

Любой из предыдущих с базой данных.

В моем случае я буду использовать второй вариант с базой данных, но в основном потому, что мне нужно постоянство данных (прошедшие события, конфигурация) между перезагрузками, чтобы я использовал некоторую базу данных (монго) в качестве средства связи. Может быть, я также представлю некоторые GRPC - основное приложение будет иметь updateConfig функционировать так, чтобы не приходилось все время проверять БД на наличие изменений

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