Для установки автономных регистрирующих устройств (далее ARU) на базе Birdnet-PI на длительное время именно в автономном режиме, без привязки к электросетям, надо озаботиться оптимизацией энергопотребления малинки (платы миникомпьютера Raspberry PI) и наращиванием емкости батарей. Энергопотребление малинки очень существенное и не позволяет использовать ее длительное время без определенных манипуляций. Так например, паэурбанка Romoss 40Ah (фактическая емкость для 5V — 20Ah), хватает на 45 часов непрерывной работы. В этой статье мы рассмотрим два наиболее простых способа продления автономной работы ARU. Итак, разбираемся в двух вещах:
- Наращивание емкости аккумуляторов
- Оптимизация энергопотребления
Под оптимизацией энергопотребления можно рассматривать два направления:
а) уменьшение потребления за счет отключения неиспользуемых портов и другого hardware
б) реализация схемы включения/выключения ARU по определенному алгоритму. Например на 5 минут включать, на 10 выключать. Или включать только в утренние и вечерние часы. Этот вариант в данной статье не рассматривается, хотя в этих ваших заграницах продаются специальные платы управления питанием, например Sleepy PI или Witty Pi.
- Наращивание емкости аккумуляторов
Это самое простое экстенсивное решение. Берем два пауербанка на 60/80 Ah, покупаем на aliexpress плату yx850 и нехитрым способом к этой плате прикручиваем два разъема USB-A (входы от банок) и один разъем USB-micro-B (питание Raspberry).
Подключаем две банки и на выходе малинку. При окончании заряда одной банки, плата переключается на другую. Потенциально можно собрать и больше банок, соединив их несколькими платами YX850.
Две банки Romoss 60Ah потенциально могут работать 7-8 суток.
2. Оптимизация энергопотребления
Это самая сложная и интересная часть. Все настройки, связанные с оптимизацией энергопотребления малинки надо делать через SSH непосредственно в операционной системе Raspberry PI OS. Как подключаться по SSH здесь описывать не буду.
Шаг 1. Устанавливаем Midnight Commander
sudo apt-get install mc
Шаг 2. Запускаем его
mc
Далее, кто работал с подобного рода файловыми менеджерами, тому будет проще. Кто не работал — разберетесь, кажется все интуитивно понятно.
Сначала правим файл настройки операционной системы, там отключаем Bluetooth, wifi и hdmi.
cd /boot
Находим файл config.txt, открываем по кнопке F4
Нам нужно сделать следующие настройки:
dtoverlay=disable-bt
dtoverlay=disable-wifi
dtoverlay=i2c-rtc,ds3231
gpu_mem=16
arm_freq=300
arm_freq_min=300
Нажимаем F2 и ESC, выходим из режима редактирования.
Отключаем HDMI. В командной строке пишем:
sudo tvservice -o
В папке /boot находим файл cmdline.txt, также по кнопке F4 открываем его на редактирование и в первой строке после console=tty1 пишем:
maxcpus = 1
Это заставит устройство использовать только один процессор из 4. Оно будет работать гораздо медленнее. Можно оставить два процессора, если хотите. Опять нажимаем F2 и ESC, выходим из редактора.
Но больше всего энергии потребляют разъемы eth и usb. Совсем их отключать — это значит у нас не подключить микрофон и потом не подсоединить к компу. Какой выход?
Смотрим на примере Raspberry PI 3B+ (на других версиях малинки возможно придется применять другие команды)
Если мы научимся включать/выключать левые два USB и вместе с ним разъем от LAN (Eth), то добьемся существенного снижения энергопотребления.
Для начала надо научиться подключаться к малинке через USB со смартфона Андроид. Берем USB шнур питания для смартфона, втыкаем его в смартфон одним концом, а другим концом в правый нижний разъем USB малинки (верхний будет для микрофона). В смартфоне идем в настройки ищем настройку включения USB-модема. Включаем. На смартфон устанавливаем приложение «Ping & Net» и либо в Network Info, либо в Subnet Scan ищем IP-адрес присоединенной малинки. У меня это обычно что-то типа «192.168.172.98». По этому же адрес со смартфона через браузер можно использовать Birdnet-PI, даже в полях.
Устанавливаем на телефон программу JuiceSSH. С помощью него можно подключиться к малинке и делать все тоже самое, что мы умеем с компьютера по SSH. Например выполнить вот такую команду:
echo 0 > /sys/bus/usb/devices/1-1.1/bConfigurationValue
Этой командой мы значительно снизили энергопотребление. Но вы не сможете теперь подключиться к компу через порт Eth до перезагрузки малинки. После перезагрузки работа USB/Eth восстановится. Правые два USB останутся работать после этой команды, их можно использовать для микрофона и подключения с телефона.
Вернуть к жизни отключенные USB можно перезагрузкой или командой:
echo 1 > /sys/bus/usb/devices/1-1.1/bConfigurationValue
В своей практике я использовал эту настройку следующим образом. В папке по умолчанию (BirdNET-PI, в которую можно перейти по команде «cd ~») сделал два файла: usb_off.sh и usb_on.sh. Настроил через crontab после перезагрузки запуск файла usb_off.sh. Таким образом, при включении сразу отключается USB (левые два)+Eth. При необходимости, я их могу включить со смартфона командой usb_on.sh.
Можно пойти другим путем, при установке и включении в полях ARU (ШМ), после включения подключиться смартфоном и выключить USB. До следующей перезагрузки он не будет работать.
PS А еще я отключил все ненужные службы Birdnet-PI в Tools->Services. В соответствии с этой инструкцией:
If you want a smoother interface, you can disable any services you don’t use, e.g., Live Audio Stream, Web Terminal, BirdNET Log (the «View Log» page), Streamlit Statistics (the «Species Stats» page), Chart Viewer (this creates the charts you see on the «Overview» and «Daily Charts» pages), Spectrogram Viewer (the «Spectrogram» page), or Pushed Notifications. You can easily disable these services as needed in «Tools» > «Services». Be sure to select «Disable» and not «Stop» to ensure the service is not started again on reboot.