Luxeon UPS: различия между версиями

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
Строка 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

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 не используются)