Проект "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Для запуска проекта выполните следующие шаги:
-
Убедитесь, что файл
settings.iniнаходится в той же директории, что и скрипты, и содержит корректные настройки для Bluetooth-устройства:[Settings] address = "Bluetooth_адрес_Вашего_устройства" characteristic_uuid = "UUID_характеристики_Вашего_устройства"
-
Запустите файл
main.pyдля отображения графического интерфейса и управления устройством:python main.py
Чтобы создать .exe файл для Windows 10, используйте следующую команду PyInstaller:
pyinstaller --onefile --windowed --icon=icon.ico --add-data "gui;gui" --add-data "static;static" --name=LedControl main.py --noconsoleПосле выполнения этой команды, исполняемый файл будет находиться в папке dist.
connect(): Асинхронный метод для подключения к Bluetooth-устройству.toggle_device(on): Асинхронный метод для включения или выключения устройства.set_led_color(r, g, b): Асинхронный метод для изменения цвета LED-устройства.rgb_to_hsv(r, g, b): Метод для преобразования цвета из RGB в HSV, необходимый для управления LED.
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).
paintEvent(event): Отрисовывает цветовой круг с градиентом.mousePressEvent(event): Обрабатывает выбор цвета при клике по цветовой палитре.set_selected_color(color): Устанавливает выбранный цвет и отображает его на палитре.
apply_hex_color(): Обрабатывает ручной ввод цвета в формате HEX и применяет его.
Избранные цвета сохраняются в файл favourite_colors.json, который хранится в папке %APPDATA%/BluetoothLedControl. При каждом запуске программы избранные цвета загружаются из этого файла.
Пример пути к файлу в Windows:
C:\Users\Имя_Пользователя\AppData\Roaming\BluetoothLedControl\favourite_colors.json
Этот проект распространяется под лицензией MIT. Вы можете использовать, изменять и распространять его в соответствии с условиями этой лицензии.