Skip to content

Курсовая работа по диспилине "Микропроцессорные системы"

Notifications You must be signed in to change notification settings

proooooogiba/plant_monitoring

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Система мониторинга состояния комнатного растением

workplace.png

Тулчейн

Для разработки проекта использовался фреймворк idf-esp в IDE CLion. Настройка проекта и среды для разработки в CLion:

process_of_developmnet

Прошивка и отладка

При разработке в CLion общий конфиг в дереве проект - sdkconfig, кастомные переменные(например настройка Wi-Fi) туда нужно переносить самостоятельно. Локальные конфиги Kconfig.projbuild - в проекте не импортируются автоматически.

Для прошивки платы используется конфигурация - flash с заданным elf файлом:

img.png

Команда для запуска отладки - мониторинга:

cd ~/esp/esp-idf && . ./export.sh && cd ~/esp/plant_monitoring_project && idf.py monitor

Примечания

Фреймворк esp-idf установлен в пути: ~/esp

Проект расположен в пути: ~/esp/plant_monitoring_project

Выйти из режима отладки можно с помощью комбинации CTRL + ]

Без IDE с плагином esp-idf можно попробовать выполнить следующие команды:

idf.py -p 1220 flash monitor # загрузка + отладка, номер порта можно увидеть подлючив плату esp и написав команду  ls /dev/tty.*.

Библиотеки для работы с перефирией

В проекте использовалась Библиотеки esp-idf включающая в себя драйверы дял работы с периферией.

  • Настройка dht-драйвера (!Важно - подключать необходимо имена на порт GPIO-4, иначе может вылететь ошибка драйвера)

Структура проекта

В проекте использовались следующие датчики:

Алгоритм работы:

  1. Микроконтроллер снимает показания с датчиков по соответствующим портам GPIO
  2. Микроконтроллер с помощью встроенного Wi-Fi модуля отправляет эти метрики в формате JSON по протоколу mqtt на сервер
  3. На сервере с помощью утилиты mqtt-exporter метрики экспортируются в prometheus
  4. Prometheus используется в качестве источника данных в grafana и таким образом метрики появляются на борде

img.png

STA

Station mode(STA) - режим работы, при котором устройство ESP32 подключается к существующей сети Wi-Fi, функционируя как клиент. В этом режиме ESP32 не создает свою собственную сеть, а вместо этого использует доступ к уже имеющейся точке доступа (например, роутеру) для обмена данными с другими устройствами в сети.

Mqtt-Broker

Пример отправки метрик mqtt-брокеру

Пример отправки метрик температуры и влажности mqtt-брокеру без авторизации в формате JSON:

host = vm4481772.25ssd.had.wf:1883 mqtt_topic = esp32/plant_monitoring/metrics

# Задаем переменную хоста
HOST="vm4481772.25ssd.had.wf:1883"

# Определяем JSON данные
DATA='{\"temperature\":90.25,\"humidity\":46.37, \"crit_debug\":0.0}'

# Определяем топик
TOPIC="esp32/plant_monitoring/metrics"

# Формируем команду mosquitto_pub
COMMAND="mosquitto_pub -L mqtt://$HOST/$TOPIC -m \"$DATA\""

# Выполняем команду
eval "$COMMAND"

Для удобства скрипт выделен в отдельный файл. Для валидирования доставки отправки метрик можно воспользоваться MQTT-Explorer.

Настройки MQTT-explorer:

img.png

Во вкладке advanced подпишитесь на топик /esp32/plant_monitoring/metrics и удалите топик SYS.

Деплой

Для деплоя сервиса был арендован виртуальный сервер. ПО протоколу ssh c помощью утилиты scp была рекурсивна перенесена директория deploy c помощью команды

shell scp -r deploy root@ip-address:~/esp

Деплой включает в себя следующие сервисы:

  • mosquitto-exporter - экспортирует метрики
  • prometheus - бд для хранения метрик
  • grafana - сервис отображения метрик
  • alertmanager - сервис настройки алертов

Мониторинг

Дэшборд графаны выглядит следующим образом:

grafana_dashboard.png

Доступ к системе мониторинга датчиков:

РПЗ

About

Курсовая работа по диспилине "Микропроцессорные системы"

Resources

Stars

Watchers

Forks

Packages

No packages published