Giter Site home page Giter Site logo

iot_monitoring's Introduction

IoT_monitoring

Система мониторинга и сбора информации с устройств.

О проекте

В ходе стажировки мне была поставлена задача реализовать систему мониторинга за удаленными сетевыми инверторами имеющими COM порт и отдающими данные по нему. Данные статистики от инвертора необходимо переодически считывать, обрабатывать и сохранять в БД. В качестве иструмента для хранения информации необходимо использовать timebased базу данных Influxdb.

Описание системы

Система реализованна в виде 3 основных классов:

Monitor

Основной диспетчер системы. Запрашивет информацию от конечных устройств через определенные интервалы времени, и отправляет их на сохранение в бд.

Device

Шаблон класса опрашиваемого устройства. Описывает необходимую структуру реализации коннектора. Все коннекторы должны наследоваться от него и реализовывать описанные методы. В частности, на данном этапе реализован класс Inverter, который парсит и возвращает полученные данные от инвертора. Так как физическое подключение к инвертору пока оставлено за скобками, то данные от инвертора представлены в файле telemetry.txt Для работы с ним создан класс FakeInverter, который симулирует получение данных за последние 23ч с интервалом запросов в 10минут.

InfDBSession

Реализует сессию взаимодействия с БД. Сессия реализует методы:

  • add добавление в сессию объекта для записи
  • commit записывает в бд все добавленные объекты

Установка

Используется poetry для управления зависимостями.

Если poetry не установлен:

pip install poetry

Клонируем:

git clone https://git.pi3c.ru/pi3c/IoT_monitoring.git

cd IoT_monitoring

Создаем вирт. окружение с установкой зависимостей

poetry install --no-root

Запуск демо

Для тестового запуска

  • создать файл с секретами .env_test в корне проекта. В нем описать параметры подключения к influxdb
  • запустить тестовый режим с чтением данных из файла

poetry run manage.py --demo

ToDo

много чего :)

iot_monitoring's People

Contributors

pi3c avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.