The post has been translated automatically. Original language: Russian
The Integra Sources team is pleased to share a fresh technical case in which we combined the Internet of Things and modern approaches to cross-platform development. In this article, we will explain how we designed a monitoring system for plant care in commercial spaces.
Product Concept
Green spaces in modern offices, hotels and restaurants have long been an important part of corporate culture. Plants improve the microclimate and create a comfortable atmosphere. But it is difficult to take care of plants in commercial premises. Due to the lack of clear coordination, some flowers can be watered several times a day, while others can be forgotten for a week.
The customer of the project, who is professionally engaged in phytodesign and integrated landscaping of business facilities, faced exactly this problem. The uneven distribution of employee responsibilities led to wilting of plants and financial losses. The client has set our team the task of designing a monitoring system that will turn intuitive flora care into a transparent process based on accurate data.
System development
The Integra Sources team has implemented a complete IoT solution, the architecture of which resembles a classic smart home ecosystem. It includes several key elements:
- Wireless sensors. Compact sensors are immersed directly into the soil. They are powered by batteries and measure critical parameters: ground humidity, temperature, light level and air humidity. We have chosen Zigbee technology for data transmission. Its cellular topology allows devices to relay the signal through neighboring nodes. This is an ideal solution for large-scale offices and shopping malls with multiple partitions, as the coverage area can be easily increased by simply adding new sensors.
- The gateway device. The device is based on the ESP32-S3 chip. It collects telemetry from peripheral sensors and sends it to the server via the MQTT protocol via Wi-Fi.
- The server part and the database. All incoming information is aggregated on the server (both cloud and on-premise deployments are available). The system analyzes the drying rate of the soil and the external conditions, forming predictive analytics.
- User interfaces. We have created a cross-platform mobile app and a web version for PC. The Flutter framework was used to accelerate the development of mobile software for Android and iOS, as well as the web administration panel.
The use of Flutter significantly accelerated the project. Thanks to the unified Dart codebase, the team did not have to write the interface and logic separately, as happens when working with the popular Qt framework. This reduced overall labor costs and accelerated the production of ready-made software by more than 100 hours.
How the finished product works
Using the administrator mode in the mobile and web application, you can add plants and users to the database, as well as configure watering schedules. In the same place, the administrator can create QR codes for the subsequent identification of each plant. They can be printed on a printer.
When the duty schedule is set up, the server sends a reminder to the employee's mobile app at the right moment. To confirm watering, the user scans an individual QR code attached to the pot, and thus records the action in the system. If the sensors detect a drop in soil moisture outside the schedule, the system sends a push notification out of turn.
Project results
The customer's idea was translated into a stable functioning prototype, ready for serial implementation. The following features of the project can be noted:
- The created IoT platform can be easily scaled to different commercial spaces, from small coworking spaces to business centers and medical clinics.
- Choosing Flutter as the main software development tool has saved over 100 working hours, reducing the cost of the project and bringing the release closer.
- Automatic monitoring of environmental parameters and a smart reminder system minimize the risks of loss of expensive plants due to the human factor.
- The integration of modern Internet technologies into phytodesign emphasizes the high status of the customer's brand and guarantees its customers the perfect condition of green areas.
At this stage, the developed solution is undergoing active testing. In the future, it is planned to develop the project and add direct automatic irrigation modules.
Из чего формируется бюджет разработки?
Общая стоимость создания любого электронного изделия состоит из нескольких ключевых статей расходов:
- Фонд оплаты труда профильной инженерной команды;
- Закупка электронных компонентов и сопутствующих материалов;
- Изготовление и сборка прототипов;
- Покупка специализированных лицензий на программное обеспечение;
- Прохождение обязательных сертификационных испытаний.
Наибольшую долю в этом списке занимает именно оплата труда. В отличие от веб-разработки или создания мобильных приложений, где базовый продукт зачастую можно запустить силами одного–двух универсальных специалистов, сфера встроенных систем требует привлечения экспертов с глубокими, узкоспециализированными техническими знаниями. Схемотехника, программирование микроконтроллеров на языках C/C++, беспроводная связь – все это направления с высочайшим порогом вхождения, что напрямую определяет высокий уровень заработных плат на рынке.
Более того, создание устройства – это многоэтапный процесс, где на каждом шаге требуется своя уникальная экспертиза. Типовой проект включает в себя следующие фазы.
1. Системная аналитика и архитектура решения
Далеко не всегда проект начинается с детально проработанного технического задания. На практике клиенты чаще приходят с описанием бизнес-задач и общим видением функционала. Перевести эти пожелания на язык инженерных метрик – задача системного аналитика.
Он собирает и формализует требования, детально изучает сценарии использования, анализирует экономическую целесообразность и техническую реализуемость концепта. Результатом его работы становится архитектурный каркас будущего устройства и выбор базовых технологий. Аналитик сопровождает проект на всех фазах, гарантируя, что финальный продукт соответствует бизнес-целям заказчика.
2. Проектирование печатных плат
Когда концепция утверждена, к работе подключается инженер-схемотехник. Его задача – разработать принципиальную электрическую схему и выполнить топологию (трассировку) печатной платы. Это не просто механическое соединение дорожками радиодеталей. На этом этапе специалист должен решить комплекс сложнейших задач:
- Обеспечить надежность и отказоустойчивость цепей при скачках напряжения;
- Рассчитать отведение тепла для предотвращения перегрева компонентов;
- Продумать защиту от электромагнитных помех (как внешних, так и генерируемых элементами самой платы);
- Учесть требования фабрики для беспрепятственного производства продукта.
3. Разработка встроенного ПО
Для работы аппаратному обеспечению требуется прошивка. Программист микроконтроллеров вдыхает в устройство жизнь. В зависимости от ресурсов и назначения прибора, прошивка может создаваться “на голом железе” (bare-metal) или на базе специализированной операционной системы.
Главный вызов здесь – жесткая оптимизация кода. Программа должна эффективно использовать ограниченный объем памяти и вычислительную мощность процессора, а также минимизировать энергопотребление, что критически важно для автономных устройств, работающих от аккумуляторов. При наличии экрана программист также создает пользовательский интерфейс.
4. Создание прикладного ПО
Современные встроенные системы часто требуют интеграции с мобильными приложениями, десктопным софтом или сложной серверной инфраструктурой с базами данных для сбора телеметрии. Для решения этих задач привлекаются отдельные команды разработчиков высокоуровневого ПО.
5. Обеспечение качества и комплексное тестирование
Проверкой работоспособности и надежности созданной системы занимается QA-инженер (тестировщик). Его цель – убедиться, что устройство функционирует строго в соответствии с ТЗ и безопасно в эксплуатации. Он проектирует тестовые стенды, создает сценарии проверок (тест-кейсы) и проводит испытания оборудования в реальных условиях или условиях, максимально приближенных к реальным. Обнаруженные баги документируются и отправляются на устранение разработчикам, после чего циклы тестов повторяются до достижения полной стабильности системы.
Сертификация как отдельный вызов
Сертификация – неизбежный и юридически сложный этап для любого коммерческого электронного продукта. Часто этот процесс требует привлечения юридического сопровождения и оплаты дорогостоящих испытаний в лабораториях.
При этом если в ходе тестов устройство не укладывается в нормативы (например, по уровню радиопомех), проект возвращается на доработку. Избежать колоссальных затрат на этом этапе можно только одним способом: закладывать жесткие сертификационные требования в ТЗ еще до начала проектирования, чтобы команда разработчиков изначально учитывала их в архитектуре платы.
Итеративный подход и специфика аппаратных ошибок
Разработка электроники принципиально отличается от создания программного обеспечения. В программном проекте критический баг можно исправить за несколько часов, переписав код и оперативно выпустив обновление. В аппаратных проектах любая пропущенная на этапе разработки ошибка приводит к физическому браку. Обнаружение дефекта после отправки файлов на производство означает потерю недель или даже месяцев на повторное изготовление новой партии плат на заводе, не говоря уже о прямых финансовых убытках.
Именно поэтому создание электроники – это всегда итеративный процесс. В идеальной практике устройство проходит несколько последовательных стадий эволюции:
- Макет – часто громоздкая, собранная из макетных плат конструкция, созданная исключительно для проверки жизнеспособности концепции и тестирования отдельных компонентов.
- Функциональный прототип – полноценная печатная плата, реализующая базовые возможности устройства. Она обычно не соответствует некоторым требованиям, но позволяет программистам начать полноценную отладку встроенного ПО.
- Экспериментальный образец – устройство, максимально приближенное к финальным требованиям. На этой стадии обычно выявляются и устраняются финальные мелкие недочеты.
- Серийный образец – эталонное изделие, полностью соответствующее ТЗ, прошедшее все проверки и готовое к массовому выпуску на заводе.
В среднем для успешного запуска продукта плата переживает от 2 до 3 физических итераций.
Какие ошибки раздувают бюджет?
Отсутствие проработанного технического задания
Постоянные изменения концепции и добавление новых функций в разгар разработки ломают архитектуру, заставляя команду переписывать код и заново перерисовывать схемы. Базовые границы, цели и ограничения продукта должны быть жестко зафиксированы до старта работ.
Избыточный функционал
Стремление внедрить в первое же устройство все мыслимые функции переусложняет схему, увеличивает перечень используемых компонентов и снижает общую надежность. Разумнее начинать с MVP (минимально жизнеспособного продукта).
Отказ от платформенного подхода
Если планируется линейка схожих приборов, проектировать каждый с чистого листа экономически невыгодно. Правильная стратегия – разработка модифицируемой платформы с переиспользуемыми модулями и библиотеками. Первый шаг будет дороже, но расходы на последующие модификации сократятся в разы.
Изобретение велосипедов
Попытки разработать кастомные решения там, где можно применить проверенные серийные компоненты, стандартные модули связи (Wi-Fi, LTE) или готовые программные библиотеки, приводят к потере времени и лавинообразному росту багов.
Ошибки при выборе компонентной базы
Использование редких, ультрасовременных, но дефицитных или экзотических чипов ставит крест на коммерческой рентабельности и серийности изделия. При подборе компонентов необходимо анализировать их жизненный цикл, доступность у крупных поставщиков и возможность быстрой замены аналогами.
Откладывание тестирования на финальные стадии
Если команда пренебрегает промежуточными проверками и ревью схем, мелкие недочеты накапливаются и кочуют из одной итерации платы в другую. Тестирование должно идти параллельно разработке.
Игнорирование сертификации на старте
Если вспомнить о регуляторных требованиях только перед выходом на рынок, высока вероятность, что устройство провалит тесты в лаборатории, и команде придется полностью переделывать топологию платы.
Резюме
Высокая стоимость разработки электроники – это прямое следствие сложности самого процесса. Он требует синхронной работы междисциплинарной команды дорогих специалистов, а ошибки здесь стоят на порядок дороже, чем в сфере разработки ПО.
Единственный способ оптимизировать бюджет и минимизировать риски – это прагматичный, зрелый подход: детальная проработка требований на начальном этапе, максимальное использование готовых аппаратных модулей и программных решений, адекватный подбор доступных компонентов и тестирование на всех этапах работы.