GUI-приложение для управления мониторами питания INA237 через I2C
Поддерживает локальное подключение через FTDI FT232H (pyftdi) и удалённое подключение по Ethernet/SSH (paramiko + i2cget/i2cset). Работает с несколькими устройствами на одной шине, позволяет читать/записывать регистры, мониторить напряжение, ток, мощность и температуру в реальном времени.
Демо-режим позволяет тестировать интерфейс без реального оборудования
-
🔌 Поддержка интерфейсов (Linux):
- FTDI FT232H – через
pyftdi(USB) - Ethernet/SSH – удалённый доступ через
paramiko+i2cget/i2cset - Демо-режим – встроенный симулятор (опция
--demo) - CH341T – требуется проверка
- FTDI FT232H – через
-
📊 Измерения:
- VBUS, CURRENT, POWER, VSHUNT, DIETEMP
-
📖 Регистры:
- Чтение/запись, раскрытие битовых полей, побитное редактирование
-
🖥️ GUI:
- Вкладки для нескольких устройств, мониторинг в реальном времени, обработка ошибок
ina237_controller/
├┠┘ main.py
├┠┘ requirements.txt
⤜┠┘ settings.json
⤜┠唈 README.md
⤜┠┘ config/
⤂── ├┠┘ __init__.py
⤂── ├┠┘ constants.py
⤂── ├┠┘ settings.py
⤜┠┘ core/
⤂── ├┠┘ __init__.py
⤂── ├┠┘ bus_driver.py
⤂── ├┠┘ ftdi_driver.py
⤂── ├┠┘ ethernet_driver.py
⤂── ├┠┘ demo_driver.py
⤂── ├┠┘ driver_factory.py
├┠┘ devices/
⤂── ├┠┘ __init__.py
⤂── ├┠┘ ina237_regs.py
⤂── ├┠┘ ina237.py
⤂── ├┠┘ device_manager.py
⤜┠┘ gui/
⤂── ├┠┘ __init__.py
⤂── ├┠┘ main_window.py
⤂── ├┠┘ connection_panel.py
⤂── ├┠┘ device_panel.py
⤂── ├┠┘ register_editor.py
├┠┘ utils/
⤂── ├┠┘ __init__.py
⤂── ├┠┘ logger.py
pip install -r requirements.txtДля FTDI FT232H:
pip install pyftdiДля Ethernet/SSH
pip install paramiko# # Боевой режим – автоматический поиск FTDI или Ethernet
python main.py
# Демо-режим
python main.py --demo🖥️ Использование
-
Выберите интерфейс
ethernet. -
Нажмите ⚙ Настроить Ethernet и введите:
- IP-адрес/хост
- Номер I2C шины (slot)
- Имя пользователя (обычно root)
- Пароль (может быть пустым, если используется SSH-ключ)
-
Нажмите Подключить, затем Scan – найденные устройства появятся во вкладках.
- 📖 Read All – чтение всех регистров и обновление измерений.
- 📊 Read Measurements – обновление только полей VBUS, CURRENT, POWER, VSHUNT, TEMP.
- Монитор – циклический опрос с заданным интервалом.
- Регистры: кнопки 📖 (читать), 💾 (записать), ▼ (раскрыть биты). Для CONFIG и ADC_CONFIG доступно побитное редактирование.
- Порядок байт определяется автоматически (Big/Little Endian).
- Пустой пароль поддерживается (SSH-ключ).
- Все ошибки логируются в консоль.
{
"interface_type": "ftdi",
"device_path": "",
"i2c_address": 64,
"shunt_resistor": 0.001,
"max_current": 15.0,
"monitor_interval": 1000,
"theme": "light",
"demo_mode": false
}- Ethernet-подключение использует
i2cget/i2cset- на удалённой машине должны быть установленыi2c-tools. - CH341T Драйвер готов, но ещё полностью не проверен.
- Демо-режим не требует оборудования и полезен для ознакомления с интерфейсом.
Данный проект распространяется под лицензией GNU General Public License v3.0 (GPL-3.0).
- ea - инициатор проекта, постановка задач, тестирование на реальном оборудовании.
- DeepSeek AI (Aссистент! - разработка архитектруы, написание кода, отладка, интеграция интерфейсов.