Монитор питания по USB

Тема в разделе "Raspberry Pi", создана пользователем Igor68, 12 окт 2018.

  1. Подскажите, в какой точке предполагается контролировать питание?
    В повер-банке стоит какой нибудь литий и dc/dc step-up конвертер. Не зная характеристик конвертера сложно оценивать степень разряда по выходному напряжению, например при одном уровне заряда на малых и больших токах нагрузки напряжение на выходе dc/dc может быть ниже чем на средних токах.
     
    Mitrandir нравится это.
  2. Igor68

    Igor68 Гуру

    Характеристика платы... точнее сама плата:
    https://ru.aliexpress.com/item/-/32..._expid=695225a9-e011-4f42-babe-ee94c434aed1-1
    Сейчас испытано всё... только аккумулятор не 3800мАч, а 3000мАч... торгошня. Но надоело уже.
    4 часа вчера от аккумулятора испытано. Проблематично работает малина в процессе зарядки, когда переключатель в OFF, но в положении ON и зарядка и работа без проблем. В какой-то момент при пиках нагрузки питание от аккумулятора... и потом тока хватает на всё. Конкретно ток не измерял... надо делать разрыв. А планируется... ну хотя бы регистрировать кратковременную просадку по питанию по USB самой малины. Надо просто выполнять POWEROFF для малины автоматически... но может и сохранение состояний. А может и остановить и выдачу питания по USB для ардуино, камеры и т.п. сделать сообщение(предупреждение) по сокету... ну и POWETOFF(HALT). Ну в принципе всё.
    Судя по всему контролировать можно только разрядку аккумулятора на плате... тут в теме был скрипт на питоне, который просто подсчитывал время в работе. Это хоть и вариант, но не совсем удобный. Удобно было бы регистрировать скачки по питанию... уверен они будут при посадке заряда при разном потреблении... просто короткие скачки, которые не приводят к перезагрузке малины.
     
  3. Не представляю как по кратковременной просадке по выходному напряжению определить уровень заряда аккумулятора.
    На фото литий доступен и можно измерять напряжение на нем (на его разъеме).
    dc/dc step-up может высасывать его до вольта и если в это время ток потребляемый не высок - напряжение на выходе dc/dc может быть в норме.
    Вам точно нужно контролировать выходное напряжение? или может нужно фиксировать переход на автономное питание?
     
  4. Igor68

    Igor68 Гуру

    Понятное дело, что можно прикрутить и АЦП для измерения состояния батареи... можно доверить это и ардуине, которая на "спине" у малины и питается от неё по USB... но уж больно много всего выходит.
    1) малина,
    2) ардуина по USB-SERIAL от малины и питается от неё,
    3) сонар по i2c от малины с питанием от неё по 5в
    2) web камера по USB от малины
    4) ComMotion for 4 motors по i2c от ардуины с питанием контроллера от ардуины и с внешним питанием силовых цепей
    5) Multiservo(Amperka) по i2c от ардуины с питанием контроллера от ардуины и с внешним питанием силовых цепей
    6) Плата с аккумулятором для питание малины и через неё всех контроллеров на всех устройствах
    7) контейнер на 4 АА элемента (аккумуляторы NiCd и т.п.)
    8) 4 двигателя с редукторами с питанием от ComMotion
    9) две серврмашины с питанием и управлением от Multiservo
    10) собственно металлическая конструкция(платформа) Арматурчика
    Вот состав (содержимое) Арматурчика... уже что-то. И куда прикручивать ещё некий АЦП. Проще... применить либо тот триггер с компаратором, считать время работы, и т.п. Ну на худой конец в ардуину добавить обработку аналоговых входов... один для силовых цепей, другой для аккумулятора платы. Для аккумулятора наверное надо аналоговый дифференциальный режим... а лучше 2 измерения в дифферециале... Если резисторами отбрыкаться куда ещё пригодно то:
    Попал мужик к всевышнему... и на вопрос отвечает:
    - А сделай мне Господи на теле 20 пенисов.
    -....
    - Что невозможно?
    - Почему невозможно?! Возможно... но вот думаю... а куда приделать целое ведро яиц!

    Вот и тут что-то такое... но не беда, что вдруг отключение будет. Беда в том, что бы в моменты сохранения данных на SD карту не происходило отключение. Надо делать всё заранее...
     
  5. Значит питание только автономное и нет ни одного свободного gpio чтоб подключить копеечную тиньку (видимо как раз про то самое ведро) по 1-wire, которая и будет измерять напряжение на аккумуляторе.
     
  6. Mitrandir

    Mitrandir Гуру

    раз нет пина для тиньки тинька передает показания на esp8622 и он по фафле передает на малину
     
  7. esp8266 и сам измеряет напряжение питания, только при включенном wifi жрет очень много, по сравнению с тинькой. Зафиксировав критический разряд мы рискуем включив wifi на esp8266 доесть остатки заряда.
    Это из серии: Трассировка показала, что причиной перезагрузки системы явилась трассировка.

    П.С. При пропадании питания оставляю esp8266 на суперкапе 1,5F при включенном wifi успеваю только 1-2 раза с интервалом в секунду отправить udp.
    wifi очень энергоемкий.
     
    Последнее редактирование: 13 окт 2018
  8. Igor68

    Igor68 Гуру

    ...да нет... wifi тут далеко не курит бамбук... и совсем не раздаёт wifi, а даже клиентом является для другой малины. Там и websocket и apache, доступ к которым по wifi через другую малину.
    Вот на мгновение занятость по сети:
    Код (Text):

    www-data@pi02:~/src/mainwork_12_10_2018/sonar/work$ netstat -nltpa
    (Not all processes could be identified, non-owned process info
     will not be shown, you would have to be root to see it all.)
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address  Foreign Address  State  PID/Program name
    tcp  0  0 0.0.0.0:22  0.0.0.0:*  LISTEN  -  
    tcp  0  0 127.0.0.1:6010  0.0.0.0:*  LISTEN  -  
    tcp  0  0 0.0.0.0:4321  0.0.0.0:*  LISTEN  3524/wsbot  
    tcp  0  1 192.168.7.18:55958  192.168.7.211:22  SYN_SENT  11724/nc  
    tcp  0  1 192.168.7.18:42416  192.168.7.205:22  SYN_SENT  11587/nc  
    tcp  0  428 192.168.7.2:22  192.168.7.11:35310  ESTABLISHED -  
    tcp  0  1 192.168.7.18:40758  192.168.7.202:22  SYN_SENT  11532/nc  
    tcp  0  1 192.168.7.18:41376  192.168.7.213:22  SYN_SENT  11756/nc  
    tcp  0  1 192.168.7.18:49408  192.168.7.208:22  SYN_SENT  11668/nc  
    tcp  0  1 192.168.7.18:46216  192.168.7.210:22  SYN_SENT  11716/nc  
    tcp  0  1 192.168.7.18:53076  192.168.7.204:22  SYN_SENT  11559/nc  
    tcp  0  1 192.168.7.18:59088  192.168.7.212:22  SYN_SENT  11749/nc  
    tcp  0 121004 192.168.7.2:4321  192.168.7.11:60563  ESTABLISHED 3524/wsbot  
    tcp  0  0 192.168.7.2:22  192.168.7.11:35309  ESTABLISHED -  
    tcp  0  1 192.168.7.18:41602  192.168.7.207:22  SYN_SENT  11629/nc  
    tcp  0  0 192.168.7.2:22  192.168.7.11:35308  ESTABLISHED -  
    tcp  0  1 192.168.7.18:49746  192.168.7.203:22  SYN_SENT  11549/nc  
    tcp  0  1 192.168.7.18:56922  192.168.7.209:22  SYN_SENT  11693/nc  
    tcp  0  0 192.168.7.2:22  192.168.7.11:35307  ESTABLISHED -  
    tcp  0  1 192.168.7.18:50204  192.168.7.206:22  SYN_SENT  11609/nc  
    tcp  0  1 192.168.7.18:33838  192.168.7.214:22  SYN_SENT  11781/nc  
    tcp6  0  0 :::80  :::*  LISTEN  -  
    tcp6  0  0 :::22  :::*  LISTEN  -  
    tcp6  0  0 ::1:6010  :::*  LISTEN  -  
    tcp6  0  0 ::1:6010  ::1:48706  ESTABLISHED -  
    tcp6  0  0 ::1:48706  ::1:6010  ESTABLISHED 27673/gedit  
    tcp6  0  0 192.168.7.2:80  192.168.7.11:34546  TIME_WAIT  -  
    tcp6  0  0 192.168.7.2:80  192.168.7.11:34547  TIME_WAIT  -  
    tcp6  0  0 ::1:6010  ::1:54824  ESTABLISHED -  
    tcp6  0  0 192.168.7.2:80  192.168.7.11:34544  TIME_WAIT  -  
    tcp6  0  0 ::1:46150  ::1:6010  ESTABLISHED 3904/gnome-commande
    tcp6  0  0 ::1:54824  ::1:6010  ESTABLISHED 17465/dbus-launch
    tcp6  0  0 ::1:6010  ::1:54826  ESTABLISHED -  
    tcp6  0  0 ::1:6010  ::1:46150  ESTABLISHED -  
    tcp6  0  0 ::1:54826  ::1:6010  ESTABLISHED 17465/dbus-launch
    tcp6  0  0 192.168.7.2:80  192.168.7.11:34543  TIME_WAIT  -  
    www-data@pi02:~/src/mainwork_12_10_2018/sonar/work$
     
    это www-data@pi02 - подвижная малина.
    А это:
    Код (C++):
    www-data@pi01:~$ netstat -nltpa
    (Not all processes could be identified, non-owned process info
    will not be shown, you would have to be root to see it all.)
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
    tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      -              
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -              
    tcp        0      0 192.168.0.57:59973      2.23.167.51:80          TIME_WAIT   -              
    tcp        0      0 192.168.0.57:58619      178.79.159.36:80        TIME_WAIT   -              
    tcp        0    376 192.168.7.1:22          192.168.7.11:43111      ESTABLISHED -              
    tcp        0      0 192.168.7.1:8080        192.168.7.11:51070      ESTABLISHED -              
    tcp        0      0 192.168.0.57:40333      185.40.28.2:80          ESTABLISHED -              
    tcp        0      0 192.168.7.1:8080        192.168.7.11:51073      TIME_WAIT   -              
    tcp6       0      0 :::22                   :::*                    LISTEN      -              
    www-data@pi01:~$
    www-data@pi01 первый элемент - не будет подвижен... как элемент связи и часть кластера.
    Так что при потное связи при удалении www-data@pi02 должен иметь какую никакую самостоятельность... для него и эта тема
    Кстати не обращайте внимания на nc - это циклическое сканирование порта 22 в сети с неким интервалом.
     
  9. А какая разница, раздает или получает, если отправляем мультикаст на группу?
     
  10. Igor68

    Igor68 Гуру

    И????? Как себе представляете??? Нет сети... и IP уже не действительны. Раздаёт сеть одна из малин. И все крутятся в ней. Выключите у себя роутер и пропингуйте тех, кто был в его сети! Поясните... как?
     
  11. Подождите, если одна малина работает на автономно, то для чего ей нужен доступ к другой малине? Если с контролем питания на другой малине вопросов не возникает, то как она может оказаться без питания?
    Сейчас я не помню поддерживает ли wifi модуль на малине одновременное использование режимов STA+AP, если поддерживает, то почему его не использовать?
     
  12. Два работают на бесперебойниках, у каждого свой провайдер, каждый из них работает в STA+AP, когда провайдер у одного отваливается, получает и-нет клиентом подключаясь к другому. Как то так. Батарейки в бесперебойниках меняю раз в 4-7 лет.
     
  13. Igor68

    Igor68 Гуру

    Как говорил можно и AP... но предполагается что сеть будет для кластера... там ещё 3 малины. И все в одной сети непрерывно и одна подвижная уходя из досягаемости должна перейти в безопасное состояние... ведь это внештатная ситуация. Можно сделать и AP на каждой... но опыта набора множества устройств(малин) в этом режиме с возможностью единой сети не имею. Максимум что делал это по wlan0(интегрирована) и все подключались к первой малине и она по wlan1(usb wifi) подключалась к роутеру. Сейчас кстати с ноутбука пишу ответ, будучи подключенным к первой малине. Через неё еще с того же ноута доступ к другой малине по SSH и HTTP. Был бы признателен за подсказку.
     
  14. Включил включил малину и измерял напряжение и ток от адаптера, получил 5,16V 0,27A
    Включил в разрыв питания диод (первый попавшийся выпрямительный UF5404), решил чуть уменьшить напряжение, он (диод) и был включен сначала, только закорочен, разомкнул коротыш и получил 4,27V 0,30A и тут же dmesg сказал 'Under-voltage detected!', и красная лампочка на малине погасла (предыдущих постах давали ссылки на проверку именно лампочки, видимо к сообщениям ядра нет доверия).
    Вернул напряжение обратно, опять закоротил диод, получил обратно 5,16V 0,27A, dmesg тут сказал 'Voltage normalised' и красная лампочка снова зажглась.
    Несмотря на то что на адаптере написано 5V 2,5A при старте получаю 'Under-voltage detected!' (может совпадение, но получаю это сообщение после инициализации usb устройств).
    Если нет свободного gpio для подключения выхода компаратора или adc и т.п. ориентируясь на лампочку, ловить просадки питания можно и на полностью заряженном аккумуляторе.
    Испытывал на 2018-10-09-raspbian-stretch-lite.img
     
  15. Igor68

    Igor68 Гуру

    Вот вполне устроило бы получать этот самый 'Under-voltage detected!' и 'Voltage normalised'... Этого для задачи вполне хватило бы. Где брать это сообщение... не хотелось бы в /var
     
  16. Не понял вопроса? dmesg не подходит? Вы имели ввиду /var/log/kern.log?
    Еще раз хочу обратить внимание на то, что при работе от довольно мощного (как я считал) адаптера, на старте ловлю 'Under-voltage detected!' и почему то после этого нет 'Voltage normalised' а система работает нормально и только при следуюшей просадке и восстановлении получаю и Under-voltage и Voltage normalised
     
  17. Igor68

    Igor68 Гуру

    Да что Вы! Как брать от него (dmesg) эти сообщения... ну допустим в bash? А Вы верно поняли /var/log/kern.log для этого не подходит. Собственно и вопрос как раз в теме: "Не представляю как забрать у системы сообщение о просадке питания"...
     
  18. Пробовал на баш-е
    Код (Bash):
    #!/bin/bash
    dmesg -wc |while read line; do
      if [[ $line == *"Under-voltage"* ]]; then
        echo "Power low"
      fi
      if [[ $line == *"Voltage normal"* ]]; then
        echo "Power normalized"
      fi
    done
     
    только срабатыват через раз, ни каких гарантий. Остаётся только на красную лампочку смотреть:confused:
     
    Igor68 нравится это.
  19. Igor68

    Igor68 Гуру

    Как идея... понравилась! Но насколько реально действует сказать не могу... добавил секунду в цикл:
    Код (Bash):
    #!/bin/bash
    dmesg -wc | while read line; do
      if [[ $line == *"Under-voltage"* ]]; then
        echo "Power low"
      fi
      if [[ $line == *"Voltage normal"* ]]; then
        echo "Power normalized"
      fi
      echo "---loop---"
      sleep 1
    done
    Кстати dmesg ни разу не применял... и нет пока сообщений. Либо grep ничего не вытащил, либо нет вообще сообщений о питании... либо для каждой версии свои строки-шаблоны.
    Пока не под root... попробую от root... на разных машинах...
     
  20. Igor68

    Igor68 Гуру

    Да вот кстати в моём случае:
    Код (Text):

    www-data@pi02:~$ dmesg | grep power
    [  81.847256] brcmfmac: power management disabled
    www-data@pi02:~$ dmesg | grep brcmfmac
    [    4.733050] usbcore: registered new interface driver brcmfmac
    [    4.909738] brcmfmac: Firmware version = wl0: Aug  7 2017 00:46:29 version 7.45.41.46 (r666254 CY) FWID 01-f8a78378
    [   81.847256] brcmfmac: power management disabled
    www-data@pi02:~$
    Что выключен? Да нет... это не про то...