О клиенте
«Планика» — производитель и поставщик экокаминов, которые изготовлены по инновационной технологии, не требующей дымохода, электричества или газа. Биокамины и топливо для них производятся на основе запатентованных технологий и промышленных образцов, которые разработаны самой компанией.
Ситуация до начала проекта
Клиент обратился в «СофтЭксперт», чтобы подобрать пульт для индикации параметров и управления биокамином. Пульт должен был отображать и изменять следующие параметры:
- режим работы камина (спящий режим, заправка, розжиг, работает, гашение);
- уровень топлива в камине;
- высоту пламени;
- таймер работы камина;
- ошибки и сбои в работе камина.
Мы предложили разработать мобильное приложение, которое включало бы в себя функции пульта. Это решение удобно для пользователей экокаминов и позволяет реализовать больше функциональных возможностей.
Цель и задачи проекта
Цель — разработать мобильное приложение с функциями пульта управления системой биокамина.
Задачи проекта:
- Разработка макетов дизайна экранов приложения.
- Разработка протокола обмена с устройствами поверх MQTT.
- Разработка интерфейса приложения (общий интерфейс iOS, Android).
- Реализация протокола обмена с устройством (отдельно для iOS, Android).
Выбор технического решения
Приложение создано на платформе Xamarin.Forms, которая позволяет настроить одну единственную логику приложения с применением C# и .NET сразу для всех популярных платформ мобильных устройств (Android, iOS).
Преимущества использования Xamarin.Forms:- в процессе разработки создается единый код для всех платформ;
- Xamarin предоставляет прямой доступ к нативным API каждой платформы.
В качестве протокола обмена выбран протокол MQTT. MQTT — это легкий, компактный и открытый протокол обмена данными, созданный для передачи данных для устройств с ограниченной мощностью CPU и/или временем автономной работы, где требуется небольшой размер кода, и есть ограничения по пропускной способности канала. В качестве СУБД использована SQLite.NET, которая представляет простое ORM-решение (Object Relational Mapping) для Xamarin. Она позволяет работать с базой данных, как с хранилищем объектов, и манипулировать данными, как объектами стандартных классов C# без использования выражений на языке SQL.
Реализация проекта
С учетом обозначенных в техническом задании задач, процесс реализации проекта поделили на этапы. Разработали сценарий использования приложения, предложили несколько вариантов цветового оформления, после чего дизайнер создал макеты дизайна в выбранном серо-голубом цвете. Отдельный блок работы был посвящен отрисовке специальных иконок и виджетов, в том числе для регулировки высоты пламени, отображения уровня топлива, запуска и отображения статуса заправки, для кнопки установки блокировки и для sleep-таймера.
В интерфейсе приложения отображается список доступных каминов и есть виджет для добавления новых (по серийному номеру и IP-адресу). Можно настроить подключение как напрямую к камину, так и через IP-адрес роутера.
Реализован протокол сохранения в локальной базе данных мобильного приложения списка каминов, данных по настройкам каждого камина, обновление данных о каждом камине при получении этих данных, информации об ошибках.
Протокола обмена с устройствами (поверх MQTT) включает в себя:- Команды управления (включение/выключение, запуск розжига и гашения камина, управление температурой нагрева испарителя, переход в режим заправки, изменение имени камина, включение защиты от детей, установка таймера отключения).
- Команды получения данных с датчиков (уровень топлива в баке, высота пламени, название и серийный номер камина, отображение текущего режима работы камина, обработка и отображение ошибок).
- Команды управления подключением (изменение SSID и пароля, подключение камина к роутеру, отключение от роутера для работы напрямую).
Подключены всплывающие окна для подтверждения пользователем действий, информирования о работе приложения, а также сообщения об ошибках. Отдельно для iOS и для Android реализованы команды подключения, разработаны фоновый сервис MQTT брокер (посредник), фоновый сервис MQTT клиент (подписчик) для получения данных с устройства, а также механизм публикации управляющих команд.
Результат
Мобильные приложения с функционалом пульта управления особенно популярны, они поддерживают и продолжают концепцию умного дома. Такие приложения удобны как для пользователя, который может легко контролировать устройство в привычном формате, так и для производителя, чтобы получать обратную связь, отслеживать ошибки и сбои в работе системы, адаптировать приложения для новых моделей устройств.