Энергопитание GPS-трекера на батарее: сон и ключи

Reading time: 8 minutes

Last modified:

Трекер, который отправляет позицию раз в сутки, должен работать годами. Наша таблица потребления показывает предел: при одной отправке в сутки половина суточной энергии уходит на отправку, половина на сон. Снизите затраты на отправку, и нижнюю границу задаст ток сна. Снизите ток сна, и нижнюю границу задаст отправка.

В статье разобраны решения по питанию в двух линейках трекеров: GAT (трекер птиц и животных) и Micare (трекер автомобилей). Если мы считали сами, пишем об этом. Выбор модуля мы разобрали в сравнении модемов. Здесь речь о том, как им управлять.

Куда уходит энергия

В трекере четыре потребителя: микроконтроллер, GPS-приёмник, сотовый модем и акселерометр. Акселерометр остаётся под питанием ради пробуждения. Долгие и дорогие фазы: два поиска, GPS ищет фикс, модем ищет вышку.

В июне 2022 мы измерили прототип GAT в нескольких состояниях прошивки. Среднее потребление колебалось от 5,5 до 44 мА:

Состояние прошивки Среднее потребление
МК не спит, GPS не выключается, модем бодрствует при поиске GPS 44 мА
То же, но модем спит при поиске GPS 37 мА
МК не спит, GPS выключается между отправками 25 мА
Пробуждение раз в 30 с, сон модема, разрыв сессии GPRS каждый раз 21,6 мА
Пробуждение раз в 30 с, сон модема, сессия GPRS сохраняется 5,5 мА

В показаниях учтены светодиод модема и погрешность USB-тестера. Сравнивайте по ним состояния, но не считайте батарею. Состояние на 44 мА к тому же работало через раз, с просадками напряжения.

Последние две строки показывают самый сильный эффект. Разрыв сессии GPRS и повторное подключение при каждом пробуждении стоили примерно в четыре раза больше тока, чем удержание сессии. Поиск вышек и инициализация модема съедают больше всего.

В июле вторая таблица превратила те же замеры в энергию на событие. Колонка в ней подписана «мА», но суммы сходятся только как миллиампер-часы, так мы её и читаем:

Событие Длительность Энергия
Поиск GPS и отправка 40 с  0,756 мАч
Тревога, 2 мин сна, проверка статуса 149 с  0,244 мАч
Тревога STOP, поиск GPS и отправка 40 с  0,488 мАч
Сутки сна 86 360 с  0,7197 мАч

Из этих чисел мы рассчитали две величины. Сорок секунд поиска GPS дают в среднем около 68 мА. Строка сна даёт около 30 мкА. Эту цифру мы получили делением, прибором её никто не снимал.

Одна отправка в сутки стоит 0,756 + 0,7197 = 1,4757 мАч. Таблица переводит это в 745 суток, или 24,5 месяца, и отсюда следует ячейка около 1100 мАч. Одна отправка в минуту стоит 44,5 мАч в сутки, примерно в 30 раз больше, и таблица даёт 0,8 месяца. При таком темпе ток сна почти не влияет. При одной отправке в сутки он весит столько же, сколько сама отправка.

Отключение питания ключами MOSFET

В прошивке ATmega328 из репозитория GAT заданы два вывода под MOSFET: один для GPS, один для модема. При старте оба стоят в LOW, поэтому ничто не питается, пока прошивка не включит. Перед каждым сном процедура сна выключает оба. Отдельный тестовый скетч на STM32 делает то же через вывод затвора на модеме, под флагом сборки, и ждёт пять секунд перед отключением питания.

GAT использует оба инструмента. Модем засыпает по линии DTR, пока GPS ищет фикс, а MOSFET снимает питание на долгий сон. Тест SIM7080G на Micare говорит в пользу снятия питания, а не режима сна самого модема. Выключение командой дало 3,12 мкА, как и PSM, а отключение питания ничего не изменило. Регистрация в сети заняла одинаковое время во всех трёх вариантах. Мы отклонили PSM по четырём причинам:

  • модем может не войти в режим, и не все операторы его поддерживают;
  • вход занимает лишние время и энергию;
  • минимум таймера по стандарту 20 секунд, а наблюдаемый вход занял около 30;
  • если код не ждёт входа, он оказывается в неуправляемом состоянии, потому что модем может уснуть, а может нет.

При интервале отправки 10 минут в режимах ARMED и DISARMED выиграло выключение питания модема.

У ключей свои отказы, мы встретили три:

  • Бросок тока. Конденсаторы за транзистором потребляли большой зарядный ток при включении. Лучшим решением оказалось их удаление.
  • Перезагрузки. На плате с LC86G микроконтроллер перезагружался, когда питание GPS шло через транзистор. Мы заменили транзисторы на LDO с выводом включения, и перезагрузки прекратились.
  • Утечка в выключенном состоянии. Вывод резервного питания GPS потреблял 7 мкА на старом L80 и 13 мкА на LC86G. LDO в выключенном состоянии должен потреблять не больше 1,5 мкА, а мы измерили около 7 мкА. Программное исправление по выводу резервного питания снизило потребление.

Сон GSM до фикса GPS

Самую дешёвую экономию на GAT дала смена порядка действий. Порядок из четырёх шагов: подключить модем, отправить тревоги, усыпить модем на время поиска GPS, разбудить его и отправить всё вместе. Цель: меньше поисков вышек и меньше инициализаций модема.

Результат на стенде: шаг с 44 до 37 мА в таблице выше, около 16 процентов по нашему расчёту.

В похожем тесте мы сравнили параллельную работу GPS и модема с последовательной. Параллельный вариант выполнил ту же работу на 50 секунд быстрее и потребил на 4 мА больше.

Сон и источники пробуждения

В нашем репозитории лежит прошивка ATmega328 с версиями 1.4.x, которые работают на Micare, а микроконтроллер Micare работает на 8 МГц. Процедура сна делает пять вещей:

  1. Отключает АЦП и последовательные порты.
  2. Программно выключает детектор пониженного напряжения (brown-out).
  3. Входит в режим power-down.
  4. Просыпается по прерыванию watchdog каждые четыре секунды и считает циклы до конца заданного времени сна. Комментарий в коде ограничивает один сон 45 сутками.
  5. Просыпается сразу по переднему фронту от акселерометра или по кнопке.

Акселерометр (ADXL345) работает как датчик движения. Трекер спит до движения, отправляет тревогу и ищет фикс GPS. Тесты привели к двум решениям. Перед каждым сном прошивка читает вывод прерывания акселерометра: если триггер пришёл во время подготовки, устройство иначе уснёт до следующего. А на Micare мы разделили прерывание акселерометра и прерывание GPS, а также линию UART модема и линию GPS. В прошивке для обоих прерываний был назван один вывод.

На Micare мы добавили внешние часы DS3231. Перед сном прошивка заводит будильник на интервал, который сервер задаёт для каждого режима. Источники пробуждения: акселерометр, кнопка и будильник RTC. Часы синхронизируются по времени GPS при успешном фиксе. Синхронизацию по вышкам и NTP мы исключили: часы достаточно точны без неё.

RTC против watchdog

В мае 2024 мы сравнили два способа сна по документации и на устройстве.

Источник Ток
DS3231, даташит 0,84 мкА
DS3231, измерение 0,6–0,8 мкА
Watchdog включён, даташит при 1,8 В  3,5 мкА
Watchdog, отдельная проверка (устройство выключено кнопкой) около 5 мкА

Показание watchdog нестабильно. Ток медленно падает после ухода микроконтроллера в сон, поэтому показание зависит от момента замера. При 3,3 В цифра из даташита выше, чем при 1,8 В. Разница около 4,3 мкА (5 минус 0,7). За год это примерно 38 мАч, и это расчёт, около 3 процентов от ячейки 1200 мАч, под которую мы считали корпус GAT. Экономия небольшая. Прошивка просыпается по будильнику RTC. К тому же RTC хранит календарное время, а watchdog только отсчитывает интервалы.

RTC принёс и проблему. GPS-модуль вернул неверную дату после неудачного фикса, а единственной проверкой в прошивке было «год больше 2022». Одно устройство сохранило метку времени 2057 года и не смогло вернуться к текущему времени без сброса EEPROM.

FRAM вместо EEPROM

Трекер без сети должен хранить отчёты и отправлять их позже. На ATmega328 мы сначала использовали внутреннюю EEPROM. Вокруг неё нам пришлось сделать: проверку переполнения (запись просто не происходит, потому что EEPROM и flash разделены), лимит 70 записей, кольцевой буфер в отдельной библиотеке и обход нестабильной нулевой ячейки, которая ломала нашу проверку «EEPROM чистая».

На плате 4G мы перешли на внешнюю FRAM по I2C. Один тест показал, что чип вмещает 544 записи, каждая из позиции и метки времени. Затем нас ждал конфликт: FM24CL16B отвечает по восьми адресам I2C от 0x50 до 0x57, а ADXL345 стоит на 0x53, поэтому память и акселерометр делили адрес.

Ограничение попыток

Две ошибки с расходом батареи были циклами без выхода. Одна версия прошивки пыталась подключиться к вышке без ограничения, не доходила до процедуры сна и разряжала ячейку. Теперь на вышку даётся три попытки. Для GPS: если фикс не получен два раза подряд на 24-м статусном сообщении, устройство перестаёт искать и отправляет один статус. Оба правила ничего не стоят в железе.

Процент заряда по напряжению

Цифра заряда в приложении влияет на решение клиента: заряжать или заменить. В марте 2024 мы измерили полный цикл разряда ячейки Micare и подготовили формулу. В серверном коде два преобразования. Первое: полином четвёртой степени выше 3,5 В и линейный участок от 3,4 до 3,5 В для последних процентов. Второе линейное: от 3,6 В (0 процентов) до 4,0 В (100 процентов). Сервер выбирает по версии прошивки: полином с 1.4.46 и выше, линейное ниже.

В апреле клиент пожаловался на отображение. Устройство, у которого ячейка опустела месяцы назад, показывало в приложении 40 процентов, а ниже 20 процентов устройства почти не могли отправить данные. Клиент написал, что показанные 40 процентов означают ноль. Порог 3,4 В в полиноме это минимум SIM800C из нашей таблицы расчёта ёмкости.

Расчёт ячейки для одной отправки в сутки

Ранняя таблица GAT считала батарею на шесть и двенадцать месяцев при одном пинге в сутки. Она брала среднее 73,84 мкА и отсечку 3,4 В и требовала 1600 мАч на шесть месяцев и 2900 мАч на двенадцать. Для пяти пингов в сутки взяты 129 мкА и 2900 и 5700 мАч.

Проверьте арифметику, и найдётся разрыв. 73,84 мкА за шесть месяцев дают 323 мАч, а за двенадцать 647 мАч. Таблица просит примерно в пять раз больше. Это большой запас. Мы приводим таблицу, потому что разрыв показывает правило: записывайте запас рядом с формулой. Поздняя таблица с 1,48 мАч в сутки даёт заметно меньшую ячейку. Две оценки расходятся.

Чек-лист

  1. Измерьте каждое состояние, включая сон и выключено, убрав светодиод модема из расчёта или учтя его.
  2. Запишите энергию каждого события и суточный итог в одной таблице до выбора ячейки.
  3. Отключайте GPS и модем ключами, затем измерьте выключенное состояние вместе с утечкой самого стабилизатора.
  4. Держите конденсаторы за ключом маленькими или ограничьте бросок тока.
  5. Усыпляйте модем на время поиска GPS или выключайте его, и сравните с PSM у вашего оператора.
  6. Проверяйте вывод акселерометра перед сном.
  7. Ограничивайте каждый цикл повторов.
  8. Синхронизируйте часы по фиксу GPS и отбрасывайте даты, которым нельзя верить.
  9. Переводите напряжение в проценты по измеренной кривой разряда и проверяйте под нагрузкой.
  10. Записывайте запас рядом с формулой батареи.

Мы делаем прошивки, платы и облако для таких устройств. Смотрите разработку IoT-продуктов, трекер птиц GAT и GPS-трекер Micare. Чтобы обсудить ваш трекер, напишите нам.

Часто задаваемые вопросы

Что выгоднее: отключать питание модема ключом или использовать его режим сна?

На плате Micare с SIM7080G выключение модема оказалось лучше PSM. Команда PowerOFF и PSM дали одинаковые 3,12 мкА, но PSM включался только через 30 секунд, и его поддерживают не все операторы. Время повторной регистрации в сети не зависело от варианта. При интервале отправки 10 минут мы выбрали выключение питания.

Сколько экономит сон GSM-модема во время поиска GPS?

В стендовом тесте GAT среднее потребление упало с 44 до 37 мА, когда модем спал, пока GPS искал фикс. Это около 16 процентов. Цифра получена делением двух замеров, снятых USB-тестером, поэтому считайте её грубой.

RTC лучше watchdog микроконтроллера для сна?

В Micare RTC выиграл и по документации, и на стенде. DS3231 по даташиту потребляет 0,84 мкА, мы измерили 0,6–0,8 мкА. Для watchdog даташит даёт 3,5 мкА при 1,8 В, а отдельная проверка показала около 5 мкА. Показания watchdog плавают: ток медленно падает после ухода МК в сон.

На сколько хватит батареи трекера при одной отправке в сутки?

По таблице GAT одна отправка с 40-секундным поиском GPS стоит 1,48 мАч в сутки. Это около 24 месяцев на ячейке примерно 1100 мАч. Это расчёт по стендовым замерам, а не полевой результат.

CimpleO IoT
Энергопитание GPS-трекера на батарее: сон и ключи
OCT 06 2026 · 8 MIN
Table of Contents