Как выбрать сотовый модем для трекера на батарее
Reading time: 5 minutes
Last modified:
Трекер на батарее почти всю жизнь спит. Он просыпается, находит позицию, отправляет несколько байт и снова засыпает. Модем определяет, во сколько обходится каждое пробуждение, и регистрируется ли вообще SIM-карта, которую вы кладёте в коробку.
Мы делали два семейства GPS-трекеров: трекер птиц и животных GAT и автомобильный трекер Micare. С 2019 по 2024 год мы испытали в них разные связки модема и GPS. Здесь мы описываем, что сравнивали, что записано в наших задачах про каждое решение и где данных мало. Цифру приводим, только если наш трекер задач её фиксирует.
Задача: докладывать редко, работать годами
У обоих трекеров один профиль. Они сообщают позицию с большими интервалами, шлют тревогу, когда акселерометр фиксирует движение, и не должны требовать зарядки. Поэтому вопросы к модулю меняются:
- Время поиска вышки важнее пикового тока.
- Потребление во сне и в выключенном состоянии важнее скорости передачи.
- Сообщения маленькие, поэтому полноценный тариф на данные только добавляет расходы.
- GPS и сотовый модуль делят одну небольшую плату и одну батарею, поэтому мешают друг другу.
Что мы проверяли
Поколение 2G: SIM868, SIM808, A9G
В конце 2019 года мы начали с SIM868 и одной цели: получить GPS-фикс и отправить координаты по USSD в Emnify. Затем взяли SIM808. Задача на собственную логику для SIM808 закрыта с записью «решение не найдено».
A9G выделялся собственным C SDK: прошивка работает прямо на модуле. Мы потратили время на SDK, прошивку через TTL-конвертер и ошибки поиска GPS. README репозитория показывает цену: инструментарий в основном под Windows, самый свежий SDK 2019 года (старые версии нестабильны) и компилятор, который не ставится на Ubuntu. Вердикта по A9G в задачах нет, но такая цепочка сборки потребует поддержки на годы.
STM32 + SIM800 + L80-R
Следующая плата получила отдельный микроконтроллер, модем SIM800, GPS-модуль L80-R с внешней антенной и акселерометр ADXL345. Первый сюрприз описан ниже.
SIM7020C и SIM7080G
В 2023 году мы перевели прототип Micare с SIM800C на SIM7020C и поставили цель сравнить энергопотребление в режиме MQTT. Параллельно искали LTE-модули подходящего размера и составили шорт-лист: SIM7080G, SIM7000G и A7670. Образцы SIM7080G и SIM7020C приехали из Германии. В январе 2024 года задача заменила SIM800C на SIM7080G.
Таблица решений
| Модем | Что проверяли | Вердикт |
|---|---|---|
| SIM868 | Координаты GPS по USSD в Emnify | Задача закрыта; цель: рабочий стенд |
| SIM808 | GPS и своя логика; позже полная плата | Задача про свою логику закрыта без решения |
| A9G | SDK на модуле, прошивка, ошибки поиска GPS | Дальше не пошли; цепочка сборки тяжёлая |
| SIM800 + L80-R | Плата с внешним GPS-модулем, USSD и MQTT | Основа 2G-версии |
| SIM7020C | Потребление в режиме MQTT против SIM800C | Собрали прототип; числа в задачах нет |
| SIM7080G | Регистрация LTE-M и NB-IoT, MQTT, встроенный GNSS | Выбран для 4G-платы |
Что нас удивило
Стабилизатор напряжения ослепил GPS-антенну. STM32 требует 3,3 В, а остальные компоненты питались от батареи напрямую. Стабилизатор решил питание и добавил помехи, которые заглушили GPS-приёмник. Задача про эффективность GPS требовала изменить компоновку платы, чтобы компоненты не наводили помехи на антенну. Вторая задача предлагала Atmega328p: она работает от батареи без стабилизатора.
Новый модем не принял нашу SIM. SIM7080G зарегистрировался в роуминге с SIM 1NCE, которую прислал клиент. С SIM Emnify он не регистрировался, местная SIM тоже не заработала у трёх российских операторов. Та же SIM Emnify регистрировалась в телефоне. Старый SIM800 работал и с обычной местной SIM, и с Emnify и отправлял данные по MQTT. Смена модема меняет контракт на связь вместе с платой.
GPS-модуль потреблял больше в выключенном состоянии. На плате Micare вывод резервного питания у L80 потреблял 7 мкА. LC86G, который его заменил, потреблял на этом выводе 13 мкА и требовал отдельный стабилизатор. По документации выключенный стабилизатор должен потреблять не больше 1,5 мкА. Мы измерили около 7 мкА и завели задачу, чтобы понять причину.
Сотовые вышки дали плохие координаты. Для LBS мы разбирали отчёт модема о вышках (AT-команда CENG=3,1) и отправляли его в геолокацию Google. Все вышки принадлежали одному оператору, одна-две стояли рядом, остальные далеко. Сервис определил положение только по первой вышке. В задаче предложена команда CNETSCAN=1. LBS ушёл на прод в мае 2024 года и отображается только в веб-панели.
Приёмы, которые сокращают время работы модема
- GSM спит, пока GPS ищет фикс. Подключились, отправили тревоги, усыпили модем, дождались GPS, разбудили модем и отправили всё сразу. Задача называет поиск вышек и инициализацию GSM самой затратной по энергии операцией.
- USSD как канал данных. В GAT мы отправляли позиции через USSD-шлюз Emnify и разбирали их на сервере. Одна задача сравнивала время отправки по USSD с 3G и MQTT, результата в ней нет.
- Ограниченный поиск GPS. Прошивка Micare делает три попытки фикса. Если два фикса подряд не удались на статусном сообщении, устройство прекращает поиск и шлёт только статус.
- RTC против watchdog. Мы сравнили сон с watchdog и будильник RTC по документации и по замерам на устройстве.
Чек-лист перед выбором модема
- Принесите на стол свою SIM и своего оператора. У нас регистрация не прошла, хотя в телефоне SIM работала.
- Измеряйте выключенное и спящее состояние каждого модуля, включая GPS, и только затем ток в работе.
- Разнесите стабилизатор и GPS-антенну и проверяйте время фикса после каждого изменения платы.
- Решите, что устройство делает, если GPS не поймал фикс: лимит попыток, LBS или только статус.
- Выберите самый компактный формат сообщения, который разберёт сервер, и проверьте, нужен ли вообще тариф на данные.
- Проверьте, переживёт ли ваша цепочка сборки смену команды.
Чего мы не измеряли
В задачах нет ресурса батареи в поле ни для одной связки. Плата 4G оставалась в доработке, когда закрылась последняя задача, поэтому результат по ней мы не заявляем. Если вы делаете похожее устройство, проведите перечисленные проверки на своём железе.
Мы делаем прошивки, платы и облако для таких устройств. Смотрите разработку IoT-продуктов, трекер птиц GAT и GPS-трекер Micare. Чтобы обсудить ваш трекер, напишите нам.
Часто задаваемые вопросы
Какой модем лучше для GPS-трекера на батарее?
Лучшего по всем параметрам нет. 2G-модуль вроде SIM800C регистрируется почти с любой SIM-картой и управляется простыми AT-командами. LTE-M и NB-IoT модуль вроде SIM7080G рассчитан на новые сети, но в наших тестах отказался работать с SIM, которую принял 2G-модуль. Проверьте свою SIM и оператора на столе до заказа плат.
Зачем модему цикл сна в GPS-трекере?
Поиск вышек и регистрация в сети потребляют больше всего энергии. Мы будим модем, когда есть что отправить, и держим его спящим, пока GPS ждёт фикс.
Можно ли передавать данные без интернет-соединения?
Можно. В трекере птиц GAT мы использовали USSD через шлюз Emnify как дешёвый канал данных. Сервер разбирает USSD-строку в координаты. Ограничение: полезная нагрузка крошечная.
Что такое LBS и когда его применять?
LBS определяет место по сотовым вышкам. Модем сообщает, какие вышки он видит, и сервер оценивает позицию. Мы используем LBS как запасной вариант, когда GPS не поймал фикс. Точность низкая и зависит от того, какие вышки вернул модем.
Влияет ли GPS-модуль на разряд батареи?
Влияет, даже когда выключен. На плате Micare вывод резервного питания LC86G потребляет больше, чем у L80, который он заменил, а самому модулю нужен отдельный стабилизатор, и тот утекал в выключенном состоянии.