А вот этот проект мы создавали в качестве внутренней разработки.
Предыстория
Изначально наша компания хотела создать продуктовое решение для применения в садоводстве и огородничестве. Идея была простой: создать портативное устройство с элементами искусственного интеллекта для отслеживания основных параметров окружающей среды без привязки к погодным сервисам, т.е. все показания должны быть актуальны непосредственно для того участка, на котором устройство размещено.
С помощью экрана, звуковой и светодиодной индикации устройство должно информировать пользователя в реальном времени о важных для него параметрах:
- температура и влажность воздуха и почвы в выбранных местах участка, подсобных помещениях, теплицах;
- локальный уточнённый прогноз погоды;
- критические параметры (например - приближение грозы, резкое похолодание, о создании условий для развития болезней, нарушения условий хранения, или приближение к таким критическим параметрам);
- рекомендации по выращиванию сельскохозяйственных культур, привязанных к текущей ситуации на участке (на основе данных о параметрах окружающей среды и состоянии выращиваемых культур).
Из-за загруженности команды на других проектах был создан только прототип метеостанции с базовым набором функций.
Создание прототипа
Создание прототипа устройства на базе ESP32 для отслеживания погодных данных по разным интерфейсам с группы датчиков, встроенных в само устройство, и установленных снаружи.
Станция спроектирована и построена на основе модуля ESP32-S3-N16R16. Для получения данных датчиков реализованы интерфейсы USB, WiFI, Bluetooth и LoRa. Внутри устройства находятся датчики температуры, давления, влажности, уровня СО2 и степени загрязнения воздуха (BME280, ENS160). Реализована возможность подключать внешние датчики по беспроводным интерфейсам. Для отображения результатов работы станции подключен E-inc дисплей с разрешением 800*600, RGB-светодиод и звуковой сигнализатор. Для управления устройством добавлены 4 кнопки. Питание осуществляется от встроенного АКБ и (или) внешнего источника питания. Корпус спроектирован и распечатан на 3D-принтере из пластика PETG.
Выполненные задачи
- Создание схемы устройства в KiCAD
- Разработка и разводка печатной платы устройства
- Создание Gerber файлов
- Составление спецификации материалов (BOM) для изготовления платы
- Дизайн и распечатка корпуса платы
- Сборка платы и компонентов
- Реализация коммуникации датчиков и устройства
- Реализация приёма, обработки, хранения и представления данных датчиков
- Реализация сценариев работы кнопок, светодиода и звукового сигнализатора.
Технические характеристики
- Модуль ESP32 S3 N16 R16
- Интерфейсы: USB, WiFi, Bluetooth, LoRa
- Встроенные многофункциональные датчики окружающей среды (BME280, ENS160)
- Внешние датчики температуры и влажности
- E-Ink экран с разрешением 800x600
- Питание: встроенный АКБ или внешний источник питания
- Память: 16Мб ОЗУ, 16Мб флеш
- Прочее: RGB-светодиод, звуковой сигнализатор, 4 функциональные кнопки
Используемые технологии
- KiCAD
- SolidWorks
- Espressif ESP-IDF SDK
- Visual Studio Code
- C++
- LVGL
- MQTT
Интеграция с облаком
Интеграция прототипа устройства на базе ESP32 для отслеживания погодных данных с облаком и разработка веб-приложения.
Хранение полученных данных реализовано в облаке при помощи сервиса Azure IoT, для удобного представления данных и поиска разработано веб-приложение (доступно по адресу: https://meteostation-20-net.azurewebsites.net/actual).
Веб-приложение состоит из двух частей:
- серверная часть (.NET Core 8) отслеживает получение новых данных с датчиков и отправляет их клиенту, а также предоставляет историю полученных данных по запросу клиента;
- клиентская часть (Angular) представляет данные, полученные по WebSocket. Запрос по данным погодной станции за прошлые временные периоды выполняется через WebAPI. Данные, полученные с устройства, представлены в виде таблиц и графиков.
Выполненные работы:
- Интеграция устройства с облачным хранилищем данных при помощи сервиса Azure IoT
- Разработка веб-приложения:создание серверной части .NET Core 8
создание клиентской части Angular.
Используемые технологии
- Прототип погодной станции на основе модуля ESP32 S3 N16 R16
- ASP.NET MVC
- C#
- Angular 18
- WebSocket
- WebAPI
- Azure IoT
Если есть вопросы по проекту или вы хотите обсудить свой, оставьте комментарий или напишите нам на почту: proto@mir.dev
А ещё мы вот такие проекты делали: