- Обзор моего проекта
- Предварительные просмотры
- функция фьючерсов
- Категория представления: MEAN/MERN Mavericks
- видео обзор проекта Видео
- Используемый язык
- Ссылка на код
- marco-bertelli / iotSensorBackend
- Бэкенд с node js и TS для хакатона redis
- SmartHome
- Обзорное видео
- Как это работает
- marco-bertelli / iotSensorFrontend
- Ангулярный ngx-админ фронтенд для вызова redis
- SmartHome
- Обзорное видео
- Как это работает
- marco-bertelli / iotSensorFirmware
- код прошивки для датчиков esp32
- SmartHome
- Обзорное видео
- Как это работает
- закрытие
Обзор моего проекта
привет, сегодня мы рассмотрим проект, который будет собирать данные о температуре и влажности в вашем доме в режиме реального времени!
прежде чем говорить в деталях о приложении, важно понять архитектуру.
Как мы можем видеть, есть много различных частей:
- Backend: написание с использованием node js и TS, интеграция с redis с помощью redis OM, интеграция с MongoDb, подключение Aws Iot в реальном времени MQTT и использование модели Tensorflow js. Используйте redis для чтения сообщений датчиков реального времени через MQTT канал «машины» и попытайтесь найти датчик, связанный с ним, если он найден, вставьте каталог полученных данных в MongoDb и redis для быстрого получения данных реального времени в графике фронтенда. Логика сигнализации связана с даталогами, если при создании даталога срабатывает правило сигнализации, то создается активная сигнализация и будет закрыта только тогда, когда поступит сигнал ниже порога срабатывания, все сигналы сохраняются и не удаляются.Tensorflow используется для чтения очень простой регрессионной модели и использования ее для прогнозирования на следующий час.Самые крутые возможности бэкенда это:
- Интеграция Aws Iot
- Интеграция Tensorflow Js для разбора существующей ML модели и использования ее в JS
- Интеграция Redis для кэширования данных и использования redis JSON и redis search для получения данных в реальном времени.
- Генератор моделей Redis, который берет существующую модель Mongoose и разбирает ее в модель Redis без логики кода!
- правила оповещения, которые хранятся в базе данных! пример:
{
"_id" : ObjectId("6300e639830e983ff546f7af"),
"sensorId" : ObjectId("62fce2bc830e983ff546f775"),
"rule" : {
">" : [
{
"var" : "temp"
},
25.0
]
},
"name" : "Bedroom High Temperature",
"type" : "rule"
}
Как вы видите, правило — это своего рода логика!, на самом деле это возможно с помощью модуля JSON логики.
- Frontend: получение данных из API бэкенда для создания графика на основе пользовательского диапазона времени, в графике вы можете выбрать датчик, данные которого вы хотите видеть, есть также средняя температура и влажность карты в нижней части приборной панели, которые показывают вам среднее значение в выбранном диапазоне. Есть также карта дома, чтобы увидеть расположение датчиков и иметь представление о пространстве, карта «SUN» показывает фактические значения, а не средние. Последняя карта показывает прогноз на следующий час. Все компоненты поддерживают функцию мульти-темы для персонализации пользовательского опыта.
Фронтенд также имеет мобильную поддержку, но только горизонтальную, а не вертикальную!
- Датчики: отправляют данные о температуре и влажности в реальном времени каждые 5 минут, интегрированы с Aws-Iot. Эти датчики сделаны с использованием Mongoose Os, действительно крутого фреймворка, который помогает увеличить скорость работы, используя аналогичный JS код. код см. в репо Firmware
-
Redis: используется для хранения кэша и частичных данных каталогов, чтобы ускорить время ответов и упростить поиск графических данных.
-
MongoDb: используется для хранения всех остальных данных, таких как датчики и сигналы тревоги.
Предварительные просмотры
Предварительный просмотр в реальном времени: Сайт
после входа на сайт выберите диапазон и наслаждайтесь им!
Теперь, когда мы знаем основу приложения, пришло время поговорить об интеграции с redis, это очень помогает для графиков данных в реальном времени, потому что, как мы уже говорили, данные частично сохраняются в redis, чтобы взять их для графиков, до redis только с mongo время отклика составляло 300 мс, после 120 мс, что очень здорово! Я также использую кэш redis для хранения наиболее важных и медленных конечных точек (например, tensorflow), и это было очень полезно, вот список конечных точек и используемого кэша:
- datalogs/:
- /predict: прогнозирование данных на следующий час, используя кэш redis для хранения данных в течение 15 минут.
- /ambient/now: фактические данные
- /:sensorId/:interval: получение даталогов датчика с использованием redis JSON и redis Search!
- /ambient/humidity/:interval: Средняя влажность
- /ambient/temperature/:interval: Средняя температура
- alarms/:
- /active: получить активные алармы, использовать кэш redis для хранения в течение 1 минуты
- /finished: получить завершенные сигналы тревоги: использовать кэш redis для хранения в течение 3 минут
- sensors/: получить список датчиков, использовать кэш redis для хранения в течение 30 минут.
Итак, полный список возможностей фронтенда вы можете попробовать в живом демо!
- График данных в реальном времени с датчиков моего дома по 1 или более датчикам за интервал времени
- 2D карта для получения представления о положении датчиков
- активные сигналы тревоги на данный момент!
- средняя температура и влажность в выбранном диапазоне
- карта с актуальной информацией
- прогнозирование на следующие часы с помощью ML!
функция фьючерсов
единственное, на что у меня не хватило времени, это сделать полную ML модель, на самом деле эта простая модель использует регрессию, но полная модель — это модель предвидения временных рядов!
Категория представления: MEAN/MERN Mavericks
видео обзор проекта Видео
Используемый язык
Node js / TS для бэкенда
Angular для фронтенда
Mongoose Os для кода прошивки
Ссылка на код
Живой предварительный просмотр: Сайт
после входа на сайт выберите диапазон и наслаждайтесь!
Репо BackeEnd:
marco-bertelli / iotSensorBackend
Бэкенд с node js и TS для хакатона redis
SmartHome
это проект, который получает данные о температуре и влажности в реальном времени от esp32 с помощью датчика температуры DHT22 AM2302. после этого данные сохраняются в redis и MongoDb и обрабатываются с помощью фронтенда (см. информацию о фронтенде в другом репозитории).
Обзорное видео
Вот короткое видео, которое объясняет проект и то, как он использует Redis:
Как это работает
Перед началом работы важно понять архитектуру приложения:
как мы видим, есть много различных частей:
-
Backend: написание с использованием node js и TS, интеграция с redis с помощью redis OM, интеграция с MongoDb, подключение Aws Iot в реальном времени MQTT и использование модели Tensorflow js. Используйте redis для чтения сообщений датчиков реального времени через MQTT канал «машины» и попытайтесь найти датчик, связанный с ним, если он найден, вставьте каталог полученных данных в MongoDb и redis для быстрого…
Репо FrontEnd:
marco-bertelli
/
iotSensorFrontend
Ангулярный ngx-админ фронтенд для вызова redis
SmartHome
это проект, который получает данные о температуре и влажности в реальном времени от esp32 с датчиком температуры DHT22 AM2302. после этого данные хранятся в redis и MongoDb и обрабатываются из фронтенда (см. другие репозитории для получения дополнительной информации о фронтенде).
Обзорное видео
Вот короткое видео, которое объясняет проект и то, как он использует Redis:
Как это работает
Перед началом работы важно понять архитектуру приложения:
как мы видим, есть много различных частей:
-
Backend: написание с использованием node js и TS, интеграция с redis с помощью redis OM, интеграция с MongoDb, подключение Aws Iot в реальном времени MQTT и использование модели Tensorflow js. Используйте redis для чтения сообщений датчиков реального времени через MQTT канал «машины» и попытайтесь найти датчик, связанный с ним, если он найден, вставьте каталог полученных данных в MongoDb и redis для быстрого…
Репо прошивки:
marco-bertelli
/
iotSensorFirmware
код прошивки для датчиков esp32
SmartHome
это проект, который получает данные о температуре и влажности в реальном времени от esp32 с датчиком температуры DHT22 AM2302. после этого данные хранятся в redis и MongoDb и обрабатываются из фронтенда (см. другие репозитории для более подробной информации о фронтенде).
Обзорное видео
Вот короткое видео, которое объясняет проект и то, как он использует Redis:
Как это работает
Перед началом работы важно понять архитектуру приложения:
как мы видим, есть много различных частей:
-
Backend: написание с использованием node js и TS, интеграция с redis с помощью redis OM, интеграция с MongoDb, подключение Aws Iot в реальном времени MQTT и использование модели Tensorflow js. Используйте redis для чтения сообщений датчиков реального времени через MQTT канал «машины» и попытайтесь найти датчик, связанный с ним, если он найден, вставьте каталог полученных данных в MongoDb и redis для быстрого…
Модель Tensorflow: если вы хотите получить больше информации о tensorflow, посетите модель здесь: colab
закрытие
если вам понравился проект или у вас есть вопросы, оставьте лайк и комментарий!
мы будем благодарны за любую помощь!
- Ознакомьтесь с Redis OM, клиентскими библиотеками для работы с Redis как с многомодельной базой данных.
- Используйте RedisInsight для визуализации ваших данных в Redis.
- Зарегистрируйтесь для получения бесплатной базы данных Redis.