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

 

Состав комплекса:

  • механизм замка на базе шагового двигателя, микроконтроллера Atmel Atmega238 и оптопары;

  • Raspberry Pi с сервисом управления устройствами:

    • вышеупомянутый замок двери (управляется по USB-UART);

    • модуль считывания RFID-меток на базе Impinj Indy R2000;

    • ультразвуковой датчик дистанции;

    • датчик открытия двери;

  • Orange Pi с установленной ОС Android 7 и сенсорным монитором;

  • платежный терминал для приема платежей с пластиковых карт и бесконтактных носителей;

  • LTE/Wi-Fi-маршрутизатор на базе OpenWRT с поддержкой VPN.

 

В рамках данного проекта было разработано следующее ПО:

  • сервис управления аппаратной частью, работает на Raspberry Pi и взаимодействует с интерфейсом для упрощения работы с устройствами. Реализует специализированный протокол для считывания RFID-меток через модуль, обеспечивает уведомление о происходящих событиях (наличие пользователя вблизи автомата, открытие/закрытие двери, управление доступом через устройство замка);

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

  • серверная часть, фиксирующая факт продажи и предоставляющая сведения о соответствии RFID-меток описанию конкретных продуктов, а также журналирование событий и ошибок в процессе работы.

 

Языки разработки: C (микроконтроллеры), Erlang (серверная часть и общение с устройствами), Kotlin (Android-приложение).

СУБД: sqlite3

Протоколы: HTTP/REST между интерфейсным приложением и сервером, HTTP/WS между Android-приложением и управлением аппаратными элементами.