Skip to content

seventil/device_data_analyzer

Repository files navigation

Device Data Analyzer

Программное обеспечение для обработки сигнала с твердомеров 7 PRO, построенное на Python с пользовательским интерфейсом на базе Kivy. Соединение с твердомером по bluetooth осуществляется при помощи различных классов, написанных для разных платформ.

Подготовка OrangePi и установка проекта на него Orangepi3-lts_3.0.8_ubuntu_jammy_desktop_xfce_linux5.16.17

Подготовка ОС

Для начала нужно по отдельности купить компоненты:

Чтобы подготовить ОС на Orange Pi нужно на странице Orange pi 3 lts выбрать вкладку Download - Debian Image (или Ubuntu Image) - Downloads. На открывшейся странице скачать самую свежую версию DESKTOP XFCE. На 05.10.2023 это Orangepi3-lts_3.0.8_debian_bullseye_desktop_xfce_linux5.16.17 Распаковать Архив. Установить SD карту в SD-usb переходник (у меня на рабочем месте рабочий - красно-черный) и вставить. Проверить, что на карте один раздел NTFS (если записывали на нее другой образ, то обязательно) и исправить если это не так. Чтобы исправить на Windows нажмите на иконку поиска (возле Start) и введите Управление компьютером > Управление дисками. Там должно быть видно SD-карту в подключенных устройствах и сколько на нем разделов. Если несколько, или один неполный - клик правой кнопкой и удалить том. Когда Вся память SD-карты не распределена, правой кнопкой -> создать простой том и прокликать все далее.

Когда чистая флешка подключена к компьютеру и образ скачан, нужно установить Balena Etcher (https://etcher.balena.io/) - ПО для записи образа.

В Balena выбираем скачанный распакованный образ, SD карту и записываем. Карта готова к использованию, можно вставить в слот OrangePi и проверить что ОС запускается. Первая загрузка будет долгой - перераспределяется том на флеш-памяти.

Установка проекта и зависимостей

Подключите устройство к интернету (есть встроенный вайфай). Работа с ОС чаще всего ведется через терминал, чтобы его открыть нужно на рабочем столе выбрать Applications > Terminal Emulator, команды которые нужно писать в терминале здесь помечены знаком $ (его писать не надо). Иногда может запрашивать пароль - orangepi. Если спрашивает продолжить [Y/n]?, нужно отвечать да: $ Y

Обновляем систему:

$ sudo apt-get update ### на ubuntu нельзя

$ sudo apt-get upgrade ### на ubuntu нельзя

$ sudo apt-get -y install python3-pip

(опционально) установить экранную клавиатуру: $ sudo apt-get install -y onboard

Теперь надо скачать сам проект. По умолчанию терминал открывается в home директории (сокращенно помечается как ~). В ней можно посмотреть текущие папки командой ls. Если там нет директории Projects, то создаем командой mkdir Projects. Переходим в папку с проектами cd Projects. Склонируем проект командой:

$ git clone https://github.com/seventil/device_data_analyzer.git

Заходим в папку $ cd device_data_analyzer

$ pip3 install -r requirements.txt

проблемы с garden

garden - библиотека киви, которая позволяет встраивать сторонние библиотеки в киви. Установим библиотеку для прорисовки графиков: сначала найдем расположение garden после установки:

$ pip3 show kivy_garden

В строке Location будет указан путь к garden, например, /home/orangepi/.local/lib/python3.10/site-packages. Используем этот адрес для установки дополнительной библиотеки $ python3 <path to garden> install matplotlib. Сам .bat файл garden находится в соседней папке, поэтому команда полностью выглядит так:

$ python3 /home/orangepi/.local/bin/garden install matplotlib

https://www.reddit.com/r/kivy/comments/ssotuv/comment/hx2jmr4/ https://kivy-garden.github.io/

Работа с проектом

Настройки для работы приложения находятся в файле config.ini в корне проекта.

DEFAULT

BluetoothClass

Эта опция позволяет выбрать нужный класс для блютуз подключения. Разные опции подходят для различных платформ. На текущий момент есть следующие опции:

  • Simulation: для разработки и тестирования, реальное подключение к чему либо отсутствует. Работает на любой платформе и просто загружает данные из списка.

Запуск приложения

  1. В командной строке из папки проекта запустите команду python async_app.py

Для начала работы скопируйте проект из https://github.com/seventil/device_data_analyzer.git

Установка на альтернативные системы - Windows

  1. Скачайте с сайта python.org и установите последнюю версию python (3.8+). Если установщик выдает ошибку "не подходит для типа процессора", на сайте найдите версию для ARM64. При установке поставьте галочку "добавить python.exe в PATH"

  2. Откройте командную строку (или PowerShell) в папке проекта (можно октрыть набрав cmd в поиске и перейти в нужную папку командами cd имя_папки) и запустить команды: python -m pip install -r requirements.txt garden install matplotlib

Установка на альтернативные системы - Android

На андроиде получалось собирать и запускать киви и еще отдельно проверять работу с блютузом. Но нет гарантий что готовый проект для другой платформы соберет интерфейс на 100% так как ожидается, и нет гарантии что блютуз будет взеде работать. Чтобы допилить для андроида нужно отдельно разбираться. Из того что у меня осталось по записям:

Для тестирования на андроиде

запуск логов (при подключенном телефоне и установленном adb)

adb shell -x logcat python:V *:S

как собрать апк и установить

используется пакет программ buildozer и конфигурационный файл buildozer.spec https://blog.logrocket.com/build-android-application-kivy-python-framework/

About

Simple Async Kivy GUI app to process data received via LTE from measurement devices.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published