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

Упрощенно процесс записи в базу данных рассмотрим на примере записи состояния двери (открыта/закрыта):
1. Ардуина периодично соединяется по WiFi с интернетом и отправляет POST запрос на бекенд с данными состояния двери. Например, пока дверь закрыта периодично отправляет в данных единичку, когда открыта — ноль.
2. Программа на сервере принимает эти данные, добавляет к ним текущее время и складывает в базу данных.
3. Все.

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

Теперь браузерное 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. Все.

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

Упрощенно процесс записи в базу данных рассмотрим на примере записи состояния двери (открыта/закрыта):
1. Ардуина периодично соединяется по WiFi с интернетом и отправляет POST запрос на бекенд с данными состояния двери. Например, пока дверь закрыта периодично отправляет в данных единичку, когда открыта — ноль.
2. Программа на сервере принимает эти данные, добавляет к ним текущее время и складывает в базу данных.
3. Все.

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

Теперь браузерное 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. Все.

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