Luxeon UPS: различия между версиями
Sirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
Строка 39: | Строка 39: | ||
После загрузки модулей можно просканировать шину на предмет устройств: |
После загрузки модулей можно просканировать шину на предмет устройств: |
||
− | <code>i2cdetect 1</code> Параметр <code>1</code> это номер шины |
+ | <code>i2cdetect 1</code> Параметр <code>1</code> это номер шины I<sup>2</sup>C ( их может быть более чем одна, но в моем случае - одна, с номером 1, <code>/dev/i2c-1</code> |
<PRE> |
<PRE> |
||
WARNING! This program can confuse your I2C bus, cause data loss and worse! |
WARNING! This program can confuse your I2C bus, cause data loss and worse! |
||
Строка 55: | Строка 55: | ||
70: -- -- -- -- -- -- -- -- |
70: -- -- -- -- -- -- -- -- |
||
</PRE> |
</PRE> |
||
+ | |||
+ | В этом примере видно что есть устройства на адресах <code>0x40</code>, <code>0x41</code>, <code>0x44</code>, <code>0x45</code><BR> |
||
+ | (У меня фактически включены 4 датчика, но 2 не используются) |
Версия 09:36, 29 декабря 2022
Мониторинг напряжения на UPS Luxeon
Постановка задачи
Есть UPS/инвертор (24В): Файл:Ep3000-pro (1).pdf
К нему подключены 2 батареи по 100 Ач, 12Вб последовательно. RS232 или не работает или использует протокол с которым я не смог разобраться.
Для прогнозирования времени работы единственный способ получить данные - это мониторинг напряжения на аккумуляторах.
Аппаратная часть
Для мониторинга использую то что есть под рукой а именно
- Raspberry Pi Model 1 (самая старая, какая есть)
- Датчики INA-219 (2шт)
INA-219 подключается по интерфейсу I²C (2 проводной интерфейс), питание на датчик подается с распберри
У распберри
- pin 02 - +5В на Vcc датчиков
- pin 05 - Земля на Gnd датчиков
- pin 03 - I2C SDA (данные) на SDA датчиков
- pin 05 - I2C SCL (синхронизация) на SCL датчиков
Всего на одну шину можно подключить 4 датчика, адрес на шине задается с помошью перемычек (2 перемычки, дают 4 возможных адреса)
Другими словами все датчики подключены к 4 пинам распберри, отдельные пины для каждого датчика не нужны
Программная часть
Требуется включение поддержки I2C со стороны линукса
Самый простой способ - использовать raspi-config
который пропишет все что надо в /etc/modules-load.d/modules.conf
или вручную загрузить нужные модули:
lsmod | grep i2c i2c_bcm2835 16384 0 i2c_dev 20480 0
После загрузки модулей можно просканировать шину на предмет устройств:
i2cdetect 1
Параметр 1
это номер шины I2C ( их может быть более чем одна, но в моем случае - одна, с номером 1, /dev/i2c-1
WARNING! This program can confuse your I2C bus, cause data loss and worse! I will probe file /dev/i2c-1. I will probe address range 0x03-0x77. Continue? [Y/n] y 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: 40 41 -- -- 44 45 -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --
В этом примере видно что есть устройства на адресах 0x40
, 0x41
, 0x44
, 0x45
(У меня фактически включены 4 датчика, но 2 не используются)