
Для обеспечения автоматизированной продажи замороженных продуктом питания через вединговую холодильную установку был разработан и спрототипирован программно-аппаратный комплекс и написано соответствующее программное обеспечение.
Состав комплекса:
-
механизм замка на базе шагового двигателя, микроконтроллера 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-приложением и управлением аппаратными элементами.