КОМПЬЮТЕРНЫЕ И ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ
(COMPUTER & INFORMATION TECHNOLOGIES) УДК 004.415.25
Дмитриев М.А.
студент
Владимирский государственный университет имени А.Г. и Н.Г. Столетовых
(г. Владимир, Россия)
Озерова М.И.
канд. тех. наук, доц. каф. Информационные системы и программная инженерия
Владимирский государственный университет имени А.Г. и Н.Г. Столетовых
(г. Владимир, Россия)
ПРОЕКТИРОВАНИЕ И РАЗРАБОТКА КОМПОНЕНТОВ СИСТЕМЫ АНАЛИЗА МИКРОКЛИМАТА В ПОМЕЩЕНИИ
Аннотация: описан вариант организации архитектуры системы сбора данных о микроклимате, который удовлетворяет поставленным требованиям и удобен в реализации. Представлены рисунки и рабочие куски программного кода для наглядности и упрощения разработки для читателей данной статьи.
Для реализации части сбора данных на основе микроконтроллеров необходимо ознакомиться со статьей «PROGRAMMING OF THE ESP8266 MICROCONTROLLER FOR THE MICROCLIMATE DATA COLLECTION SYSTEM.».
Ключевые слова: система сбора данных, микроконтроллеры, датчики, архитектура системы.
Системы мониторинга климата в помещениях становятся все более популярными из-за их полезности и важности для поддержания здоровой и комфортной среды в помещении. Эти системы могут измерять различные
параметры, такие как температура, влажность, качество воздуха и даже уровень шума, предоставляя ценную информацию об окружающей среде в помещении.
Одним из ключевых преимуществ систем мониторинга климата в помещениях является то, что они могут помочь выявить и устранить проблемы с микроклиматом в помещении, которые могут нанести вред здоровью человека. Например, высокий уровень влажности может привести к росту плесени и другим проблемам с качеством воздуха в помещении, в то время как низкая влажность может вызвать дискомфорт и проблемы с дыханием. Отслеживая эти параметры, можно предпринять шаги для решения этих проблем до того, как они станут серьезными. Были определены цели и задачи разрабатываемой системы.
Цель: сократить временные затраты на процесс сбора и мониторинга параметров микроклимата, ускорить процесс анализа параметров и, в случае необходимости, их изменения.
Задачи:
• проанализировать предметную область и выделить главный бизнес-процесс системы;
• автоматизировать процесс сбора показателей микроклимата;
• интеграция системы с микроконтроллером, отвечающим за сбор параметров микроклимата.
Схема аппаратной части системы включает в себя все необходимые компоненты для сбора данных микроклимата, указаны связи подключения к аналоговым и цифровым выходам (pin). Источник автономного питания (5V) проходит от самого микроконтроллера, подключенного к источнику питания, ко всем датчикам системы. Второй полюс питания (GND) к датчикам также идет от микроконтроллера ESP8266. Из особенностей можно выделить наличие одного аналогового выхода на микроконтроллере, который связан с датчиком освещенности, остальные датчики работают посредствам digital input (рисунок 1).
Рисунок 1. Диаграмма компонентов аппаратной части системы
Для обмена данными в данной системе будет использоваться архитектура REST. Это удобный способ, который подходит для интеграции приложений, чтобы все компоненты легко обменивались данными и приложение можно было масштабировать.
Рисунок 2. Архитектура обмена данными
В процессе проектирования интеграционного взаимодействия была разработана схема общей организации системы, на которой продемонстрирована полная архитектура программной системы, методы и принципы ее работы. Архитектура всех систем клиент-сервер. Схема общей организации системы представлена на рисунке 3.
Рисунок 3. Схема общей организации системы
Серверная часть приложения получает и обрабатывает запросы в REST контроллере. При необходимости, сервером выполняется GET запрос к микроконтроллеру для получения актуальных данных. Контроллеры передают логику взаимодействия на сервисы для дополнительной обработки данных, если она требуется, перед или после запроса в базу данных. Сервисы обращаются в репозитории JPA, которые в свою очередь реализуют как стандартные CRUD запросы к базе, так и дополнительно описанные при необходимости. Полученные данные отправляются в теле ответа на клиент. Клиент обрабатывает статус ответа и выводит пользователю информацию по результатам запроса. Диаграмма компонентов представлена на рисунке 4.
Рисунок 4. Диаграмма компонентов
Инструменты и технологии:
Для реализации серверной части приложения будет использоваться Spring Boot — это дополнение к фреймворку Spring, которое облегчает и ускоряет создание простого REST API на Java.
Для реализации клиентской части будет использоваться Android Studio на Java.
Для реализации части сбора данных на микроконтроллере будет использоваться Arduino IDE. Для построения схемы аппаратной части системы - программный комплекс для автоматизации печатных плат и электронного проектирования плат Altium Designer.
Зависимости pom.xml:
- spring-boot-starter-web - набор удобных дескрипторов зависимостей для создания RESTful сервиса;
- gson - библиотека для сериализации/десериализации;
- jpa - спецификация API Java EE, предоставляет возможность сохранять в удобном виде Java-объекты в базе данных;
- postgres - драйвер для подключения к базе данных.
В конце файла pom.xml присутствует секциия build. Она включает только один плагин spring-boot-maven-plugin - плагин, обеспечивающий поддержку Spring Boot в Apache Maven. Он позволяет упаковывать исполняемые файлы jar или war-архивы и запускать приложения Spring Boot.
Для реализации REST API для мобильного приложения подходит библиотека Retrofit2 (+ OkHttp для HTTP-запросов). Она позволяет легко получить и загрузить JSON (или другие структурированные данные) через веб-сервис на основе REST. В Retrofit настраивается, какой конвертер используется для сериализации данных. В данной системе для JSON используется Gson. Чтобы иметь возможность отправлять запросы
необходимо добавить настройку доступов в файле AndroidManifest.xml:
<uses-permission android:name="android.permission.INTERNET" />
Для взаимодействия сервера и микроконтроллера используется запрос
на базе HttpURLConnection.
HttpURLConnection con = null; try {
con = (HttpURLConnection) new URL(address).openConnection();
con.setRequestMethod("GET");
con.connect();
if (HttpURLConnection.HTTP_OK == con.getResponseCode()) { BufferedReader br = new BufferedReader(new
InputStreamReader(con.getInputStream()));
String line;
while ((line = br.readLine()) != null) {
Data dataFromESP = gson.fromJson(line, Data.class);
d.setTemperature(dataFromESP.getTemperatureO); d.setHumidity(dataFromESP.getHumidityO);
d.setCo2(dataFromESP.getCo2()); d.setLight(1024-dataFromESP.getLight()); d.setDate time(new Date());
if (d.getMicrocontroller().getLocationID() > 0) {
Location loc =
locationService.get(d.getMicrocontroller().getLocationID());
d.getMicrocontroller().setLocation(loc.getName()); }
}
} else {
System.out.println("failed: " + con.getResponseCode() + " error " +
con.getResponseMessage());
}
} catch (IOException e) { System.out.println(e); return null; } finally { if (con != null) {
con.disconnect();
}
}
Заключение
Таким образом, мы рассмотрели пример архитектуры системы, её серверной и клиентской части. Представлены куски кода, инструменты и технологии, которые помогут реализовать данную систему. При добавлении части микроконтроллера (сбор данных о микроклимате помещения), получится полноценная система сбора и анализа микроклимата на базе микроконтроллеров.
СПИСОК ЛИТЕРАТУРЫ:
1. ESP8266 прошивка, программирование в Arduino IDE [Электронный ресурс]. URL: https://habr.com/ru/articles/371853/ (дата обращения: 11.05.2023)
2. Hands-On RESTful API Design Patterns and Best Practices [Электронный ресурс]. URL: https://dokumen.pub/hands-on-restful-api-design-patterns-and-best-practices-javatrue-pdf-1nbsped-9781788992664.html (дата обращения: 01.05.2023)
3. How to make a Cross-Platform Mobile App in Java [Электронный ресурс]. URL: https://medmm.com/free-code-camp/how-to-make-a-cross-platform-mobile-app-in-java-5f8eae071ff2 (дата обращения: 05.05.2023)
Dmitriev M.A.
Vladimir State University named after A.G. and N.G. Stoletov
(Vladimir, Russia)
Ozerova M. I.
Vladimir State University named after A.G. and N.G. Stoletov
(Vladimir, Russia)
DESIGN AND DEVELOPMENT OF COMPONENTS OF THE INDOOR MICROCLIMATE ANALYSIS SYSTEM
Abstract: a variant of the architecture of the microclimate data collection system is described, which meets the requirements and is convenient to implement. Drawings and working pieces ofprogram code are presentedfor clarity and simplification of development for the readers of this article.
To implement the data collection part based on microcontrollers, you need to read the article "PROGRAMMING OF THE ESP8266 MICROCONTROLLER FOR THE MICROCLIMATE DATA COLLECTION SYSTEM".
Keywords: data acquisition system, microcontrollers, sensors, system architecture.