Программируемая
облачная кнопка

В 2016 году к нам обратилась компания Unicorn за разработкой ПО для продукта «Sapfir» — отечественного аналога Amazon Dash Button. Sapfir – это решение призванное увеличить повторные заказы, благодаря геймификации. Проект разрабатывался совместно с АО «Сбербанк Технологии».

Для повышения лояльности клиента, компания может предоставить своему клиенту беспроводную Wi-Fi кнопку, по нажатию на которую будет автоматически выполнено то или иное действие пользователя. Например, служба такси может дать своему клиенту возможность по одному лишь нажатию на кнопку вызвать авто на домашний адрес своего клиента. Производитель бритвенных принадлежностей может добавить в корзину интернет-магазина комплект сменных картриджей особой серии лишь по нажатию на кнопку. Способов применения данной технологии масса, подробнее с ними можно ознакомиться на странице Amazon Dash: https://aws.amazon.com/ru/iotbutton/

Нашей задачей было разработать ПО для IoT-устройства на базе ESP8266, а также веб-сервис, который бы позволил партнёрам осуществлять настройку своих устройств и реализовать интеграцию с собственными сервисами посредствам API.

Функционал IoT-устройства

Решения для разных партнёров могут иметь разный набор аппаратных компонентов. Это необходимо учесть при разработке ПО, т.к. с целью унификации, а также удешевления стоимости обслуживания, все устройства должны иметь единую прошивку. Некоторые устройства могут исполнять лишь одну команду, другие — сразу несколько (имя несколько кнопок или посредствам переключения «барашка»). Некоторые устройства не имеют обратной связи и лишь передают команду на удаленный сервер, другие — могут получать ответ или произвольные уведомления, в этом случае загорается LED-индикатор или раздается звуковой сигнал. К слову, такие возможности являются конкурентным преимуществом перед Amazon Dash Button, которые в этот момент патентовали свое решение в РФ.

Естественно, в устройствах было предусмотрено автоматическое обновление прошивок «по воздуху». А все передаваемые и получаемые данные зашифрованы с помощью SHA512. При отправке команд, также передается уникальный идентификатор устройства не поддающийся перебору и уровень заряда устройства. При низком уровне заряда конечному пользователю придет уведомление о том, что устройство необходимо подзарядить (если оно имеет USB-порт) или партнёру будет предложено произвести замену устройства при следующем визите к конечному клиенту (если устройство не предусматривает зарядку по USB).

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

API и личный кабинет партнёра

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

При отправке запроса с устройства, он фиксируется в системе Sapfir. Далее в зависимости от идентификатора устройства определится партнёр, с которым связано данное устройство. Запрос шифруется пересылается в API партнёра. Таким же способом, используя API Sapfir и свой ключ доступа, партнёр может отправить запрос на устройство для того, чтобы оно издало звуковой сигнал или зажгло LED-индикатор.

В случае каких-либо ошибок, при работе с API или на устройстве в своем личном кабинете партнёр может увидеть подробное описание возникшей ошибки и устранить её причины.

Поделиться
Share on vk
Share on twitter
Share on facebook
Share on telegram
Share on whatsapp

Обсудите ваш проект с менеджером

    Я согласен на обработку персональных данных согласно политике конфиденциальности

    Служба поддержки