Подскажите, в какой точке предполагается контролировать питание? В повер-банке стоит какой нибудь литий и dc/dc step-up конвертер. Не зная характеристик конвертера сложно оценивать степень разряда по выходному напряжению, например при одном уровне заряда на малых и больших токах нагрузки напряжение на выходе dc/dc может быть ниже чем на средних токах.
Характеристика платы... точнее сама плата: https://ru.aliexpress.com/item/-/32..._expid=695225a9-e011-4f42-babe-ee94c434aed1-1 Сейчас испытано всё... только аккумулятор не 3800мАч, а 3000мАч... торгошня. Но надоело уже. 4 часа вчера от аккумулятора испытано. Проблематично работает малина в процессе зарядки, когда переключатель в OFF, но в положении ON и зарядка и работа без проблем. В какой-то момент при пиках нагрузки питание от аккумулятора... и потом тока хватает на всё. Конкретно ток не измерял... надо делать разрыв. А планируется... ну хотя бы регистрировать кратковременную просадку по питанию по USB самой малины. Надо просто выполнять POWEROFF для малины автоматически... но может и сохранение состояний. А может и остановить и выдачу питания по USB для ардуино, камеры и т.п. сделать сообщение(предупреждение) по сокету... ну и POWETOFF(HALT). Ну в принципе всё. Судя по всему контролировать можно только разрядку аккумулятора на плате... тут в теме был скрипт на питоне, который просто подсчитывал время в работе. Это хоть и вариант, но не совсем удобный. Удобно было бы регистрировать скачки по питанию... уверен они будут при посадке заряда при разном потреблении... просто короткие скачки, которые не приводят к перезагрузке малины.
Не представляю как по кратковременной просадке по выходному напряжению определить уровень заряда аккумулятора. На фото литий доступен и можно измерять напряжение на нем (на его разъеме). dc/dc step-up может высасывать его до вольта и если в это время ток потребляемый не высок - напряжение на выходе dc/dc может быть в норме. Вам точно нужно контролировать выходное напряжение? или может нужно фиксировать переход на автономное питание?
Понятное дело, что можно прикрутить и АЦП для измерения состояния батареи... можно доверить это и ардуине, которая на "спине" у малины и питается от неё по 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 карту не происходило отключение. Надо делать всё заранее...
Значит питание только автономное и нет ни одного свободного gpio чтоб подключить копеечную тиньку (видимо как раз про то самое ведро) по 1-wire, которая и будет измерять напряжение на аккумуляторе.
esp8266 и сам измеряет напряжение питания, только при включенном wifi жрет очень много, по сравнению с тинькой. Зафиксировав критический разряд мы рискуем включив wifi на esp8266 доесть остатки заряда. Это из серии: Трассировка показала, что причиной перезагрузки системы явилась трассировка. П.С. При пропадании питания оставляю esp8266 на суперкапе 1,5F при включенном wifi успеваю только 1-2 раза с интервалом в секунду отправить udp. wifi очень энергоемкий.
...да нет... 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 в сети с неким интервалом.
И????? Как себе представляете??? Нет сети... и IP уже не действительны. Раздаёт сеть одна из малин. И все крутятся в ней. Выключите у себя роутер и пропингуйте тех, кто был в его сети! Поясните... как?
Подождите, если одна малина работает на автономно, то для чего ей нужен доступ к другой малине? Если с контролем питания на другой малине вопросов не возникает, то как она может оказаться без питания? Сейчас я не помню поддерживает ли wifi модуль на малине одновременное использование режимов STA+AP, если поддерживает, то почему его не использовать?
Два работают на бесперебойниках, у каждого свой провайдер, каждый из них работает в STA+AP, когда провайдер у одного отваливается, получает и-нет клиентом подключаясь к другому. Как то так. Батарейки в бесперебойниках меняю раз в 4-7 лет.
Как говорил можно и AP... но предполагается что сеть будет для кластера... там ещё 3 малины. И все в одной сети непрерывно и одна подвижная уходя из досягаемости должна перейти в безопасное состояние... ведь это внештатная ситуация. Можно сделать и AP на каждой... но опыта набора множества устройств(малин) в этом режиме с возможностью единой сети не имею. Максимум что делал это по wlan0(интегрирована) и все подключались к первой малине и она по wlan1(usb wifi) подключалась к роутеру. Сейчас кстати с ноутбука пишу ответ, будучи подключенным к первой малине. Через неё еще с того же ноута доступ к другой малине по SSH и HTTP. Был бы признателен за подсказку.
Включил включил малину и измерял напряжение и ток от адаптера, получил 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
Вот вполне устроило бы получать этот самый 'Under-voltage detected!' и 'Voltage normalised'... Этого для задачи вполне хватило бы. Где брать это сообщение... не хотелось бы в /var
Не понял вопроса? dmesg не подходит? Вы имели ввиду /var/log/kern.log? Еще раз хочу обратить внимание на то, что при работе от довольно мощного (как я считал) адаптера, на старте ловлю 'Under-voltage detected!' и почему то после этого нет 'Voltage normalised' а система работает нормально и только при следуюшей просадке и восстановлении получаю и Under-voltage и Voltage normalised
Да что Вы! Как брать от него (dmesg) эти сообщения... ну допустим в bash? А Вы верно поняли /var/log/kern.log для этого не подходит. Собственно и вопрос как раз в теме: "Не представляю как забрать у системы сообщение о просадке питания"...
Пробовал на баш-е Код (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 только срабатыват через раз, ни каких гарантий. Остаётся только на красную лампочку смотреть
Как идея... понравилась! Но насколько реально действует сказать не могу... добавил секунду в цикл: Код (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... на разных машинах...
Да вот кстати в моём случае: Код (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:~$ Что выключен? Да нет... это не про то...