Відповісти

Введіть повідомлення і натисніть Надіслати
Параметри

Назад

Огляд теми (нові повідомленні вгорі)

rain
2023-01-11 00:32:02

> Це можна ... якщо

alex_dol
2023-01-10 23:35:16

Не зрозумів цілі даного проекту. Автоматично вимкнути комп'ютер? Це можна зробити руками якщо людина за компом, достатньо вольтремра. Як на мене треба додати зарядний пристрій та функцію автоматичного вмиканя компа при появі світла.

Kirill2022
2023-01-02 16:33:37
Honey пише:
Kirill2022 пише:

А плата ХІД УПС потрібна щоб НАС думав що він до УПС підключений і треба знати коли пропадає 220В щоб його вимкнути та він не саджав батарею, бо на ній роутер ще висить.

Єдиний варіант дізнатися - випробувати. Я реалізував випадкову модель UPSа з тих, які підтримує NUT. Які UPSи підтримує Ваш NAS - невідомо, якщо співпаде, матимете безкоштовне готове рішення. Якщо ні - можу реалізувати іншу модель UPSа за Вашим замовленням.

rain пише:

Спасибо за проект. А исходники будут выложены?

Ні, не будуть. Можу реалізувати всі ті побажання, які Ви виклали в листі. Насправді можна дуже багато чого реалізувати, для деяких речей є підтримка в NUT, для інших і її можна доробити. Ось деякі:
* повне вимкнення навантаження після заданого з хоста таймаута (в NUT підтримується);
* робота з зарядним пристроєм від мережі 220, фактично це online-ups (в NUT повна підтримка);
* робота з зарядним пристроєм з прив'язкою до часу доби (в NUT додати кілька нових параметрів);
* робота з кількома акумуляторними батареями (в NUT лише з однією, але можна розширити);
* робота з сонячними панелями (в NUT такого нема взагалі, зробити можна, але вже виходить за межі філософії NUT).
Звичайно, в серйозних проектах не буде використовуватись USBasp з mega8a)

Спробую HID UPS та потім то що ви виклали smile

rain
2023-01-01 15:36:29

> Ні, не будуть.

А можно узнать - почему? Зачем всем каждый раз изобретать велосипед?
Задача в любом случае решаема разными путями.

> Можу реалізувати всі ті побажання, які Ви виклали в листі

Хорошо, спасибо.

Honey
2023-01-01 14:55:28
Kirill2022 пише:

А плата ХІД УПС потрібна щоб НАС думав що він до УПС підключений і треба знати коли пропадає 220В щоб його вимкнути та він не саджав батарею, бо на ній роутер ще висить.

Єдиний варіант дізнатися - випробувати. Я реалізував випадкову модель UPSа з тих, які підтримує NUT. Які UPSи підтримує Ваш NAS - невідомо, якщо співпаде, матимете безкоштовне готове рішення. Якщо ні - можу реалізувати іншу модель UPSа за Вашим замовленням.

rain пише:

Спасибо за проект. А исходники будут выложены?

Ні, не будуть. Можу реалізувати всі ті побажання, які Ви виклали в листі. Насправді можна дуже багато чого реалізувати, для деяких речей є підтримка в NUT, для інших і її можна доробити. Ось деякі:
* повне вимкнення навантаження після заданого з хоста таймаута (в NUT підтримується);
* робота з зарядним пристроєм від мережі 220, фактично це online-ups (в NUT повна підтримка);
* робота з зарядним пристроєм з прив'язкою до часу доби (в NUT додати кілька нових параметрів);
* робота з кількома акумуляторними батареями (в NUT лише з однією, але можна розширити);
* робота з сонячними панелями (в NUT такого нема взагалі, зробити можна, але вже виходить за межі філософії NUT).
Звичайно, в серйозних проектах не буде використовуватись USBasp з mega8a)

rain
2023-01-01 13:32:22

Отписал на почту.

rain
2022-12-29 20:45:24

Спасибо за проект. А исходники будут выложены?

Honey
2022-12-29 20:38:05
rain пише:

like!
А на отсутствие PZEM'а не будет ругаться? На случай, если высоковольтная часть не планируется.

Так, буде працювати і без PZEM.

Kirill2022
2022-12-29 20:05:03

Це буде розпізнаватися як УПС?
Хочу зробити по цій інструкції HID-Compliant UPS with Arduino
https://projecthub.arduino.cc/abratchik/3e597a31-9844-4981-bede-fdac7944ad71
(зміни цого хлопця до NUT прийняли на гіт для коректної роботи з НАС Сінолоджи)
мені до НАС Сінолоджи DS218+ треба підключити, щоб він думав що повноцінний УПС, що можно було керувати відключенням.
Тільки в мене БЖ з функцією УПС ds-55a, будуще мониторити напругу та струм на АКБ через єсп з ina219
А плата ХІД УПС потрібна щоб НАС думав що він до УПС підключений і треба знати коли пропадає 220В щоб його вимкнути та він не саджав батарею, бо на ній роутер ще висить.

rain
2022-12-29 20:00:24

like!
А на отсутствие PZEM'а не будет ругаться? На случай, если высоковольтная часть не планируется.

Honey
2022-12-29 18:21:14

Пропоную вдосконалення для популярної на сьгоднішній день схеми резервного живлення:
ups.jpg
Прошивку в форматі hex можна скачати звідси.
Для роботи з цим USB-пристроєм знадобиться пакет Network UPS Tools (про настройку і команди буде нижче).

В якості "ардуіни" я використав програматор USBasp, це зручна платка для розробки різних USB-пристроїв, на ній вже розпаяна обв'язка для USB, виведено кілька GPIO, один ADC і один апаратний UART і SPI. У мікроконтролера ATmega8A нема апаратного USB, тому використовується програмна емуляція за допомогою бібліотеки VUSB. До UART підключена плата PZEM-004T, яка працює по протоколу ModBus. Ще знадобиться два резистори зі співвідношенням опорів 1:5 для подільника напруги, краще взяти великі номінали, щоб менше садити батарею. Для прошивки USBasp можна використати іншу USBasp, або заздалегідь прошити бутлоадер.

Після підключення пристрій представляється якимось UPS-ом:

# dmesg
usb 2-1: new low-speed USB device number 91 using uhci_hcd
usb 2-1: New USB device found, idVendor=047c, idProduct=ffff
usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 2-1: Product: PZEM-004T
usb 2-1: Manufacturer: arduino.ua
usb 2-1: SerialNumber: 0001
# lsusb
Bus 002 Device 091: ID 047c:ffff Dell Computer Corp. UPS Tower 500W LV

Для настройки NUT треба змінити наступні файли:

# cat etc/nut.conf
MODE=standalone
# cat etc/ups.conf
[pzem]
  driver = usbhid-ups
  port = auto
# cat etc/upsd.conf
LISTEN 127.0.0.1 3493
# cat etc/upsd.users 
[admin]
 password = 123
 actions = SET
 upsmon primary
# cat etc/upsmon.conf
MONITOR pzem 1 admin 123 primary
SHUTDOWNCMD "/usr/sbin/pm-hibernate"

Якщо все правильно настроєно і запущено, то можемо отримати такий результат:

# upsc pzem
battery.charge.low: 1180
battery.voltage: 12.32
device.mfr: arduino.ua
device.model: PZEM-004T
device.serial: 0001
device.type: ups
driver.name: usbhid-ups
driver.parameter.pollfreq: 30
driver.parameter.pollinterval: 2
driver.parameter.port: auto
driver.parameter.synchronous: auto
driver.version: 2.8.0
driver.version.data: MGE HID 1.46
driver.version.internal: 0.47
driver.version.usb: libusb-1.0.20 (API: 0x1000104)
outlet.current: 0.00
outlet.powerfactor: 0.00
outlet.realpower: 0
output.frequency: 49.9
output.voltage: 235.6
ups.mfr: arduino.ua
ups.model: PZEM-004T
ups.productid: ffff
ups.serial: 0001
ups.status: OB
ups.vendorid: 047c

Дані output.*,outlet.* пристрій отримує безпосередньо від PZEM-004T, дані battery.voltage від АЦП, а battery.charge.low - це параметр в пам'яті USB-пристрою, який ми можемо змінювати.

Для зміни параметру використовується команда:

# upsrw -s battery.charge.low=1190 pzem
Username (honey): admin
Password: 123
OK

Для перегляду лише одного параметру можна використати:

# upsc pzem battery.charge.low
1190

Що це за параметр? Число 1190 відповідає напрузі 11.90В, з якою мікроконтролер постійно порівнює напругу акумулятора (battery.voltage), і якщо вона виявиться рівною або нижчою за вказаний поріг, то на виході /BATLOW з'явиться низький рівень (додатково для наглядності ще загориться світлодіод на платі). Тобто низький рівень на цьому виході означає "низька напруга батареї".

Кнопка "Shutdown" надсилає до NUT сигнал, який примушує NUT виконати команду, вказану в SHUTDOWNCMD (в даному прикладі - перейти в гібернацію).

А чи можна використовувати пристрій без встановленого пакету NUT? Так, можна. А як же змінити параметр battery.charge.low ? Записом в перші два байти EEPROM. Кнопка Shutdown не буде працювати? Ні, вона обробляється лише в NUT, але є "план Б".

На схемі ще є дві кнопки "Sleep" і "PwrDown", які генерують натискання відповідних кнопок на ПК, в який підключений USB-пристрій. Наприклад в Windows реакцію на ці кнопки можна призначити в розділі "Параметри"->"Система"->"Живлення і режим сну"->"Додаткові параметри живлення"->"Дія кнопки живлення", наприклад, для "PwrDown" можна призначити "Гібернацію".

Ви вже здогадалися, що вихід /BATLOW можна з'єднувати перемичкою або джампером з одним із входів для кнопок "Shutdown", "Sleep" або "PwrDown" ?

Підвал форуму