Обычное дело: мы используем cookie. Здесь можно узнать зачем
Хорошо

Система мониторинга для ухода за офисными растениями

Комплексное решение интернета вещей для автоматизации контроля за поливом растений в офисах, ресторанах и других коммерческих помещениях. Состоит из беспроводных Zigbee-датчиков, шлюза, а также мобильного приложения. Система позволяет создавать и просматривать графики полива, а также оповещает о необходимости полить то или иное растение вне графика.
Рассылка напоминаний через push-уведомления
Масштабируемая беспроводная архитектура
Предиктивная аналитика и графики дежурств

Введение

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

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

Запрос

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

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

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

Функции

Решение

Разработанная командой “КЕДР Солюшенс” система во многом напоминает “умный дом”, но специализированный на поливе растений. Элементы решения включают в себя:
  • датчики для отслеживания параметров почвы;
  • устройство-шлюз (хаб) для сбора и передачи данных на сервер;
  • веб-приложение для управления сервером;
  • мобильное приложение для пользователей.
Датчики на батарейном питании погружаются в почву, считывают данные и передают их по Zigbee на шлюз. Выбор этой технологии связи обусловлен ее ячеистой топологией (mesh-сеть). Устройства Zigbee могут передавать данные через соседние узлы, работающие как ретрансляторы. В условиях больших коммерческих помещений, где много стен и перегородок, это позволяет покрыть огромные площади, просто добавляя датчики. Zigbee может поддерживать до 250 узлов в одной сети, что критично для торговых центров или крупных офисов.

Шлюз выполняет роль маршрутизатора, перенаправляя данные с периферии на сервер. Устройство реализовано на базе системы на кристалле ESP32-S3. Этот чип поддерживает как BLE для связи с датчиками по Zigbee, так и Wi-Fi для выхода в интернет. Шлюз периодически запрашивает данные с датчиков, а затем передает их на сервер по протоколу MQTT.
Схема работы системы мониторинга для ухода за офисными растениями
Данные агрегируются в базе данных на сервере. Здесь хранится информация обо всех растениях, зарегистрированных в системе, а также данные о количестве поливов и другая информация. Эти данные также используются для аналитики, которая позволяет вычислять, насколько быстро высыхает почва, какой температурный режим поддерживается в помещении и т.д. Конечные пользователи могут установить серверное приложение на собственный сервер или воспользоваться облаком.

Для сотрудников, ответственных за полив, было разработано мобильное приложение. Оно позволяет зарегистрироваться в системе и просматривать график поливов. В настроенное время сервер присылает пользователю push-уведомление, что сегодня его очередь поливать растения. Чтобы зафиксировать в базе данных факт полива, пользователь должен просканировать в приложении QR-код растения и нажать на кнопку.

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

Этот же функционал реализован и в отдельном веб-приложении – для конечных пользователей, которым удобнее пользоваться персональным компьютером.
Схема регистрации полива в системе мониторинга для офисных растений
Если система зафиксирует, что уровень влажности в том или ином горшке слишком низкий (из-за особенностей микроклимата, самого растения или потому, что сотрудник забыл о своих обязанностях), на приложение приходит дополнительное push-уведомление о необходимости уделить внимание этому растению.

Разработка приложений на Flutter

В задачи проекта входила разработка мобильного пользовательского приложения под операционные системы Android и iOS, а также веб-приложения для управления сервером. В качестве инструмента мы выбрали Flutter. Это кроссплатформенный фреймворк для разработки приложений под различные операционные системы, который обладает несколькими преимуществами перед аналогами, в том числе кроссплатформенным фреймворком Qt.

Применение Flutter значительно ускоряет разработку мобильных приложений. Это достигается за счет нескольких факторов.
  • Во Flutter используется язык Dart. В отличие от C++, который используется для написания логики приложений в Qt, Dart – это современный объектно-ориентированный язык с интуитивно понятным синтаксисом. Он проще и требует меньше “кода-обвязки”.
  • Если в Qt разработчик пишет логику приложения на С++, а интерфейс – на QML, то во Flutter и то, и другое пишется на Dart. Не нужно переключаться между языками, настраивать сложные связи между ними и писать дополнительный “обслуживающий” код.
  • Есть готовые библиотеки для графических интерфейсов – как для iOS, так и для Android.
  • Кроссплатформенность во Flutter достигается за счет того, что готовое приложение запускается в виртуальной машине Dart VM. В результате графический интерфейс будет отображаться одинаково на любых платформах.
  • Функция горячей перезагрузки (Hot Reload) позволяет вносить изменения в код без необходимости заново компилировать приложение, запускать его, входить в учетную запись, открывать нужные страницы. Flutter перестраивает дерево виджетов с новым кодом, но не сбрасывает значения переменных: разработчик остается в том же подменю. Это значительно ускоряет работу над проектом.
  • Для Flutter создано множество готовых библиотек (так называемых packages), которые решают типовые проблемы мобильной разработки, характерные для Qt: взаимодействие с правами пользователя, считывание QR-кодов, подключение push-уведомлений, работа с камерой, отпечатками пальцев, MQTT, NFC и Bluetooth.
Для сравнения, реализация функции сканирования QR-кодов в приложении, разработанном для данного проекта, заняла 4 часа. Аналогичный функционал на Qt в другом проекте занял более 14 часов. Настройка работы push-уведомлений потребовала 9 часов. Такая же задача на Qt может занять более 50 часов. В обоих случаях сроки разработки увеличиваются из-за отсутствия готовых решений. Имеющиеся библиотеки так или иначе нужно дорабатывать.

Qt остается незаменимым фреймворком для разработки встроенной электроники с “тяжелой” логикой при ограниченных ресурсах: промышленных решений, медицинского оборудования и т.п. Flutter лучше подходит для разработки мобильных и веб-приложений для потребительского и коммерческого сегментов.

Выполненные работы

  • Проектирование шлюза
  • Разработка встроенного ПО для шлюза
  • Написание серверного приложения
  • Написание веб-приложения
  • Разработка мобильного приложения

Использованные технологии

Altium Designer
для создания принципиальной схемы и проектирования печатной платы.
ESP32-S3
в качестве микроконтроллера шлюза.
C++ и фреймворк Qt
для написания встроенного ПО.
Python
для разработки серверного приложения.
Dart и фреймворк Flutter
для разработки веб-приложения и мобильного приложения под ОС Android и iOS.

Итоги

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

Наша разработка позволила:

  • Создать масштабируемое решение, которое подходит для разных типов бизнеса – бизнес-центров, коворкингов, ресторанов и кафе, спа-комплексов, небольших частных клиник, шоурумов и др.
  • Сократить расходы на разработку и ускорить вывод продукта на рынок на более чем 100 часов благодаря выбору фреймворка Flutter в качестве инструмента разработки мобильного и веб-приложения.
  • Повысить качество сервиса и статус бренда: использование IoT-решений в фитодизайне подтверждает технологичность компании и гарантирует клиентам безупречное состояние зеленых зон в интерьере.
  • Минимизировать убытки конечных пользователей от гибели растений за счет автоматического отслеживания влажности и других параметров, а также графиков дежурств и системы push-уведомлений.
Сейчас заказчик тестирует систему. Если продукт покажет себя востребованным, он намеревается расширить функционал решения, в частности, добавить функцию автоматического полива.
Связаться с нами
Оставьте контактные данные, и мы свяжемся с вами в ближайшее время