Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Документация проекта Bluetooth LED Control

Описание

Проект "Bluetooth LED Control" позволяет управлять LED-устройством через Bluetooth с использованием интерфейса на базе PyQt5. Этот проект включает в себя возможности подключения к устройству, включения/выключения устройства и изменения его цвета через графический пользовательский интерфейс (GUI). Также есть возможность сохранять и загружать избранные цвета для удобства управления.

Структура проекта

Проект состоит из нескольких файлов, организованных по папкам:

  • main.py: Основной файл для запуска приложения.
  • icon.ico: Иконка приложения для exe.
  • bluetooth_device.py: Содержит класс BluetoothDevice, который обеспечивает взаимодействие с Bluetooth-устройством.
  • gui/: Папка, содержащая файлы для работы с графическим интерфейсом.
    • bluetooth_control.py: Реализует основной интерфейс управления устройством.
    • color_wheel.py: Реализует цветовой круг для выбора цвета.
    • hex_input_dialog.py: Реализует диалог для ручного ввода цвета в формате HEX.
    • styles.py: Содержит стили для кнопок и элементов интерфейса.
  • static/: Папка, содержащая статические файлы (иконки, картинки и пр.).
    • icon.png: Картинка для самого приложения (открытого окна).

Настройка проекта

Для начала работы с проектом необходимо установить следующие зависимости:

pip install bleak PyQt5 qasync

Дополнительно

Для создания исполняемого .exe файла необходимо установить PyInstaller:

pip install pyinstaller

Запуск проекта

Для запуска проекта выполните следующие шаги:

  1. Убедитесь, что файл settings.ini находится в той же директории, что и скрипты, и содержит корректные настройки для Bluetooth-устройства:

    [Settings]
    address = "Bluetooth_адрес_Вашего_устройства"
    characteristic_uuid = "UUID_характеристики_Вашего_устройства"
  2. Запустите файл main.py для отображения графического интерфейса и управления устройством:

    python main.py

Создание .exe файла

Чтобы создать .exe файл для Windows 10, используйте следующую команду PyInstaller:

pyinstaller --onefile --windowed --icon=icon.ico --add-data "gui;gui" --add-data "static;static" --name=LedControl main.py --noconsole

После выполнения этой команды, исполняемый файл будет находиться в папке dist.

Функционал

Класс BluetoothDevice

  • connect(): Асинхронный метод для подключения к Bluetooth-устройству.
  • toggle_device(on): Асинхронный метод для включения или выключения устройства.
  • set_led_color(r, g, b): Асинхронный метод для изменения цвета LED-устройства.
  • rgb_to_hsv(r, g, b): Метод для преобразования цвета из RGB в HSV, необходимый для управления LED.

Класс BluetoothControl

  • init_ui(): Инициализирует элементы пользовательского интерфейса.
  • update_ui(connected): Обновляет интерфейс в зависимости от состояния подключения.
  • async_toggle_device(): Асинхронно вызывает метод toggle_device для управления устройством.
  • color_changed(color): Обрабатывает изменение цвета и отправляет данные устройству.
  • add_color_to_favorites(): Добавляет текущий цвет в избранное и сохраняет его.
  • save_favorite_colors(): Сохраняет избранные цвета в файл.
  • load_favorite_colors(): Загружает избранные цвета из файла.
  • select_color(color_hex): Позволяет выбрать цвет из избранных и перемещает цветовой кружок на палитре.
  • resource_path(relative_path): Возвращает прямой путь до картинки/файла (применимо только для PyInstaller).

Класс ColorWheel

  • paintEvent(event): Отрисовывает цветовой круг с градиентом.
  • mousePressEvent(event): Обрабатывает выбор цвета при клике по цветовой палитре.
  • set_selected_color(color): Устанавливает выбранный цвет и отображает его на палитре.

Класс HexInputDialog

  • apply_hex_color(): Обрабатывает ручной ввод цвета в формате HEX и применяет его.

Сохранение избранных цветов

Избранные цвета сохраняются в файл favourite_colors.json, который хранится в папке %APPDATA%/BluetoothLedControl. При каждом запуске программы избранные цвета загружаются из этого файла.

Пример пути к файлу в Windows:

C:\Users\Имя_Пользователя\AppData\Roaming\BluetoothLedControl\favourite_colors.json

Лицензия

Этот проект распространяется под лицензией MIT. Вы можете использовать, изменять и распространять его в соответствии с условиями этой лицензии.

About

Bluetooth LED Control — это интерактивное приложение на Python, позволяющее управлять цветом и состоянием LED-устройства через Bluetooth.

Resources

Stars

Watchers

Forks

Used by

Contributors

Languages