Автономная метеостанция на Arduino, Node.js, MongoDB, Vue.js, Quasar framework

Хотите легко и играючи познакомить себя или вашего ребенка с современным веб-программированием с бэкендом на Node.js и фронтендом на Vue / Quasar, а также с микроконтроллерами ардуино? Вы приблизитесь к пониманию, если повторите этот проект наружной автономной Wi-Fi метеостанции на солнечных батареях или реализуете эту задумку со своими датчиками.

Может быть, вы хотите следить за погодой или датчиками освещенности, открыванием дверей или окон, включением электроприборов или уровнями углекислого газа в течение ночи? Хотели бы вы иметь графики этих событий для мониторинга или анализа за определенный период?
Если спаять пару датчиков и немного их запрограммировать, то можно записать показания этих датчиков в базу данных для анализа, ну или просто наблюдать и делать прогнозы.

image
Упрощенно процесс записи в базу данных рассмотрим на примере записи состояния двери (открыта/закрыта):

1. Ардуина периодично соединяется по WiFi с интернетом и отправляет POST запрос на бекенд с данными состояния двери. Например, пока дверь закрыта периодично отправляет в данных единичку, когда открыта — ноль.

2. Программа на сервере принимает эти данные, добавляет к ним текущее время и складывает в базу данных.

3. Все.

image

Чтобы посмотреть данные, в браузере нужно перейти по адресу фронтенда, после чего в браузер загрузится Javascript приложение. Есть возможность сохранить это Frontend приложение на свой компьютер или телефон и в дальнейшем этот шаг не выполнять.

image

Теперь браузерное Javascript приложение может получать данные с Backend:

1. Backend приложению на сервере отправляем запрос, например такой: «отправь нам состояние двери с 20.00 31.12.2019 по 08.00 01.01.2020 с шагом 30 минут».

2. Backend приложение забирает эти данные из базы данных и отправляет нам. По примеру выше следующее: «20.00 31.12.2019 — закрыта, 20.30 31.12.2019 — закрыта, 21.00 31.12.2019 — открыта, 21.30 31.12.2019 — закрыта, ..., 08.00 01.01.2020 — закрыта».

3. Мы смотрим на данные, возможно в виде графика, и видим, что дверь открывалась между 20.30 — 21.00 31.12.2019.

4. Если нужно узнать точнее, то повторяем запрос за меньший период и с меньшим шагом.

5. Все.

image

Какие электронные компоненты вы можете использовать?
Как развернуть бэкэнд и фронтэнд для обучения бесплатно?
Как сделать электронную схему?
Обсудим в комментариях?
Ссылка на пример Meteo.
Ссылка на исходники, инструкции, пример и прочее.
Tags:
автономная система, ардуино, бэкенд, nodejs, mongodb, фронтенд, vuejs, quasar

You can't comment this post because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author's username will be hidden by an alias.