Разработка и производство модемов для вендинга

Компания «Третий пин» помогли поставщику и оператору торговых систем разработать, произвести и организовать поддержку крупной партии модулей сбора данных и управления аппаратами.
разработка модемов для вендинга
МТУТА

Заказчик — поставщик и оператор вендинговых аппаратов

Вендинг — это модель для продажи товаров и услуг с помощью торговых аппаратов, которые обслуживают специальные компании-операторы. Они контролируют наличие ингредиентов, осуществляют инкассацию и следят за тем, чтобы автоматы приносили прибыль. У одной компании может быть несколько тысяч торговых аппаратов разных производителей, размещенных удаленно друг от друга.

Задача — разработка и производство крупной партии вендинговых модемов

В 2018 году вышли поправки к Федеральному закону 54-ФЗ о применении контрольно-кассовой техники. В новой редакции юридические лица и ИП, которые занимаются продажей товаров, в т.ч. через вендинговые аппарат, обязаны использовать онлайн-кассы и передавать данные о продажах в Налоговую через интернет.
Для того чтобы соответствовать требованиям законодательства и повысить эффективность обслуживания, операторы внедряют системы телеметрии. Специальные модули подключаются к вендинговому аппарату изнутри. Они собирают данные и передают их на платформу для хранения, обработки и визуализации.

Некоторые телеметрические модемы позволяют удаленно управлять торговым аппаратом и подключать внешние устройства. Например, терминалы бесконтактной оплаты и онлайн-кассы.

На момент старта проекта на рынке существовали готовые устройства для вендинга, которые не подходили заказчику из-за низкой функциональности и высокой стоимости. Поэтому было принято решение о реализации собственной системы мониторинга — модуля телеметрии и управления торговым аппаратом (МТУТА).
торговый аппарат для тестирования вендингового модема
Торговый автомат для отладки устройства

Сбор требований к устройству

При выполнении подобных проектов нет возможности предусмотреть и зафиксировать все требования к функционалу. Устройство должны использовать в развивающемся и меняющемся окружении, что приводит к обновлению, модернизации, добавлении новых и отключении незадействованных функций. Тем не менее, необходимо было фиксировать требования к аппаратной части. Для этого мы провели интервью с заказчиком и собрали данные для Технического Задания.
Функционал устройства:

  • двусторонний обмен данными с внешним сервером через GSM и Ethernet;
  • возможность взаимодействия со специализированными интерфейсами торгового автомата;
  • удаленная настройка, обслуживание и обновление по Bluetooth и USB;
  • подключение датчиков (температуры, открытия двери) и устройств (микрофона, камеры и т.д.);
  • световая и звуковая индикация и сигнализация;
  • питание от сети аппарата и батареи;
  • разные режимы работы.
схема работы системы МТУТА
Функциональная схема системы
Проработка архитектуры устройства с учетом себестоимости
Учитывая обширные сетевые возможности устройства, логичным шагом было бы использовать ОС Linux. В качестве вычислителя требовался мощный микропроцессор и многослойная печатная плата, стоимость которых выходила за допустимые рамки требуемой себестоимости.

Мы предложили разработку низкоуровневой операционной системы на базе FreeRTOS. Это позволило использовать относительно недорогой микроконтроллер из линейки STM32 и снизить требования к печатной плате изделия.
архитектура устройства
Структурная схема устройства

Разработка аппаратной части и подготовка к серийному производству

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

В итоге для устранения недочетов, выявленных при испытаниях и адаптации дизайна платы под требования серийного производства, в ходе проекта было сделано дополнительные проверки работоспособности узла. Это нормальный процесс для hardware, особенно в случаях, когда устройство является частью системы с множеством интерфейсов.

Ускорение процессов разработки софта за счет внедрения Continuous Integration

В проектах, где требуется реализовать много функционала, код пишут разные программисты одновременно. Чтобы это не влияло на результаты, сборка происходит в контролируемом окружении на отдельном виртуальном сервере. Такой подход называется Continuous Integration.

При его использовании снижается вероятность ошибок сборки прошивки по причине «человеческого фактора». Такой подход ускоряет процесс разработки за счет упрощения распределения задач между программистами и снижает количество ошибок за счет покрытия разработанного функционала автотестами.
этапы работы в рамках подхода Continuous Integration

Организация контроля качества на производстве с применением тестовых станций

Модемы собираются на контрактном производстве, которое взяло на себя обязательства по закупке компонентов и поставке печатных плат, монтажу и упаковке готовых изделий.

Для контроля качества каждое устройство проходит через этапы проверки, один из которых – функциональное тестирование. Тестовая станция состоит из оснастки с пого-пинами, которые подключаются к проверяемым точкам платы, ноутбука и набора оборудования для измерений и маркировки.
контроль качества

Процессы внедрения и тестирования функционала

Отдельную сложность представляет удаленный запуск новых функций, в условиях, когда оборудование уже находится в эксплуатации. Устройства, установленные у клиентов заказчика, в результате модернизации не должны лишаться способности обновлять собственную прошивку. В ином случае, оживление тысяч «кирпичей», разбросанных по всей стране, будет крайне затратным.

Чтобы избежать этого, помимо автотестов на сервере, каждый релиз должен пройти через QA-специалиста, проводящего тестирование функционала по заранее разработанной методике.


Кроме того, чтобы предотвратить массовые отказы, для проекта разрабатывается инструкция по обновлению, предполагающая развертывание новой функциональности на постепенно увеличивающемся количестве устройств. Новые версии программы сначала заливаются на тестовую группу аппаратов, к которой есть оперативный доступ. Если что-то идет не так, можно откатить обновления вручную. Это позволяет выявлять ошибки, которые не были пойманы во время тестирования.
тестирование функционала QA-специалистом

Результаты

МТУТА — эталонный пример embedded-проекта, где устройство работает как часть системы со сложной бизнес-логикой.

Это обязывает нас, как команду разработки, смотреть на шаг вперед и думать об организации процессов с учетом будущей поддержки и обновления большого количества, распределенных устройств, качественная и бесперебойная работа которых — залог успеха бизнеса заказчика.

На момент описания кейса крупная партия модулей телеметрии отгружены заказчику. Они работают по всей стране и помогают владельцу аппаратов эффективнее зарабатывать.

аппаратные части системы МТУТА
Другие кейсы