Arduino термометр народный мониторинг

Метеостанция на Arduino и MR3020 для народного мониторинга

Для отображения данных была собрана метеостанция на Arduino ( собирает показания с датчиков DS18B20, DHT11, BMP085). Отправка данных осуществлялась с роутера MR3020 с прошивкой CyberWrt. для передачи данных на сайт Народный мониторинг. Можно было использовать Arduino c Ethernet shield, но хотелось еще отправлять на сайт изображение с камеры.

В составе CyberWrt имеется модуль Термометр, Меня не устроил по причине того, что отправляет на сайт только температуру, мне необходимо еще влажность и атмосферное давление.

Решено было по cron получать данные по последовательному из Arduino и отправлять на сайт по протоколу HTTP POST/GET.

1. Установка прошивки CyberWrt на роутер MR3020

Роутер MR3020 имеет процессор Atheros AR7240 частотой 400 МГц, 32 МБ RAM, 4 МБ флэш-памяти, порт USB2.0, Wi-Fi 802.11 b/g/n 150Mbps, Ethernet-порт 100MBit. Кроме того может питаться от напряжения 5В USB-порта, или от внешнего питания в диапазоне от 3.7В-6В при токе в 100мА с включенным Wi-Fi или 80мА без него. То есть максимальная мощность 0.5 ватт.

Прошивка CyberWrt создавалась для того что бы уйти от пугающих новичков, терминальных программ и для более легкого и упрощенного использования. За основу была взята прошивка OpenWRT версии r37816.Все управление роутером производится из любого веб браузера через Веб-интерфейс, для этого не требуется установка дополнительных программ.

Так же доступен классический способ подключения через telnet, SSH, SCP
Сконфигурирована минимальная сборка пакетов для того что бы было достаточно свободного пространства и пользователь мог сам выбирать из репозитория нужные ему модули или утилиты. На роутере после прошивки CyberWrt доступно свободного места 1,2МБ (для сравнения, после установки OpenWrt остается свободного места 300 КБ).

Из веб-интерфейса установим нужные нам пакеты:

2. Метеостанция на Arduino.

К Arduino подключаем датчики DHT11, DS18B20, BMP085

Кроме того, данные из Arduino мы отправляем в виде максимально приближенном к протоколу отправки данных на сайт narodmon

Для отправки данных на сайт Народного мониторинга будем запускать по cron php-скрипт.

Данные, необходимые для передачи на сервер

Скрипт PHP

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

И как это выглядит

4. Изображение web-камеры на сайт Народного мониторинга.

Модуль «Драйвер Веб камеры» предназначен для работы с UVC Веб камерами. Я использовал Logitech C270/ Если подключена камера, то сразу после установки модуля вы увидите изображение.
В модуле можно изменить разрешение изображения камеры и количество кадров в сек. Можно так же остановить стриминг или запустить его когда Вам потребуется

Для подключения камеры на сайте Народный мониторинг

Открыть порты на роутере

Сервис имеет API, позволяющий получать показания список устройств и камер, а также показания датчиков и изображения с камер
Страница с описанием методов API и примерами

Читайте также:  Как лечить синовит голеностопного сустава народными средствами

Источник

Домашняя метеостанция на Arduino и отправка данных на «Народный мониторинг»

Автор: Kitsum, 27 сентября 2015 в Arduino

Рекомендованные сообщения

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Похожие публикации

Отладочная плата на базе, и смотрится хорошо, и удобства хоть отбавляй.

Заливаем прошивку, образ SPI Flash и подключаем четырьмя проводами датчики. Справится даже ребенок.
Ссылки:
Базовая плата для NodeMCU V3 с преобразователем питания 5-24V в 5V Отладочная плата ESP8266 от NodeMCU Естественно никто не запрещает Вам развести свою плату. Если Вы это сделаете, скиньте нам свое творение, возможно мы перейдем на него. В идеале, все должно размещаться в метеобудке.
Датчики взятые за основу
Теперь настал момент озаботиться, где описанные выше ребята будут жить. В прошлый раз мы использовали для этих целей, найденную в подножном корме, электрическую распределительную коробку. Кроме дешевизны в этом решении нет ничего положительного.
В этот раз мы воспользуемся более серьезным вариантом – «Метеорологическая будка Стивенсона». Она способна защитить датчики от прямых воздействий окружающей среды, но при этом имеет открытую структуру со стенками в виде жалюзи. Удобно, красиво и самое главное – правильно!
Будка печатается на 3D принтере по эскизам опубликованным на Thingiverse неким kowomike, спасибо добрый человек! Архив с эскизами можно будет скачать в конце поста.

Фото готовой будки

Датчики располагаются на разных уровнях. В основании находится датчик освещенности BH1750 и смотрит ровно вниз. Мне кажется, так он будет меньше пачкаться и покрываться пылью и при этом смотреть наружу сквозь минимальное количество препятствий для солнечного света. Вообще размещение этого датчика, это целая головная боль. Как не крути, все будет не то. Оставил так, ведь по сути важны не сами показания, а тенденция изменения. Хотя кого я пытаюсь обмануть, точность важна всегда! Предлагайте свои варианты.
Намного проще обстоят дела с датчиком атмосферного давления BMP180 и влажности SI7021, кстати, с последнего мы также будем забирать данные о температуре. Их размещаем в оставшемся свободном пространстве будки, благо его там с избытком, но не в конусе т.к пространство в нем менее проветриваемое.

Разъемы для подключения внешних датчиков и питающей линии установил на местах где была пара штатных заглушек. Закрепил все через переходную пластину, выпиленную из куска фольгированного текстолита. Естественно, предварительно пластина была протравлена, а вся медь искоренена, ибо в этом случае она нам не друг.
Также была предусмотрена проставка из полиэтиленового поролона (используется в качестве упаковочного материала при транспортировке грузов) между текстолитом и корпусом, общей толщиной 5мм, а после затяжки крепежных винтов, его толщина не превышает 1мм. Это было сделано из-за опыта эксплуатации предыдущего (временного) бокса для этой метеостанции. Без проставки влага быстро найдет путь вовнутрь, и срок службы устройства снизится.
Производим примерку.
При окончательном монтаже обязательно необходимо удалить все не плотно прилегающие части полиэтиленового поролона, то есть те части, которые располагаются снаружи и не сдавлены крепежной текстолитовой пластиной. Это необходимо сделать для препятствования накоплению влаги в доступных для неё полостях. Также пришлось увеличить число крепежных болтов для более надежного прилегания текстолита, в противном случае он может выгибаться.
Все самое сложное позади, остается только вывести на один разъем шину i2c с питание 3.3 Вольта, а на другой подвести пины питания платы расширения. Но т.к у меня валялся «хвост» отрезанный когда-то от не рабочего блока питания маршрутизатора, и я не побрезговал им воспользоваться по прямому назначению.

Читайте также:  Воспитательные идеалы в народной педагогике древних славян

Далее останется все подравнять, проверить качество монтажа, возможность замены платы NodeMCU, если это будет необходимо при эксплуатации и самое главное, дважды проверить, что и куда припаяно. Мои кривые руки и невнимательность уже наказывали меня, а т.к ждать новые запчасти долго, повторять не хочется.

Общий вид получился таким
А вот как все выглядит в боевых условиях. Кстати, могу предложить идею с помещением в бокс мешочка содержащий впитывающий влагу гель, они часто встречаются в коробках с обувью. Если все герметично, то он впитает остатки влаги, а если нет, то лишним уж точно не будет.

Источник

Термометр для «Народного мониторинга»

На днях сделал термометр с выдачей данных на сайт «народного мониторинга». Что-то захватывает меня эта тема всё сильнее и сильнее. Есть мысль поставить подобную штуку на удалённом объекте вдали от зданий и сооружений что бы видеть реальные метеоданные. Подробнее об этой проблеме в недавнем посте.
В проекте это будет небольшая метеостанция с выдачей данных по радиоканалу. А пока чтобы отладить технологию собрал простой Интернет-термометр

Принципиальная схема термометра

Распаковал очередную arduino pro mini и понеслось. Самое тяжкое это впаивать штыри в плату, долго и нудно приходится возиться, хотя, казалось бы, что может быть проще. Ну не хочет припой к ним приставать, нужно наверное применять какие-нить правильные флюсы. Канифоль в данном случае не рулит.

Переходим к программной части. Написал скетч meteo.ino для ардуинки с использованием готовых библиотек 1-Wire и Dallas Temperature. Программа получилась весьма компактной.

Вот как выглядит раздел «Мои датчики» на сайте

Оставил систему тестироваться на сутки

Скачал мобильное приложение с Play Market. Теперь прямо на смартфоне можно глянуть график изменения температуры. Вот так за сутки гуляла комнатная температура, вечером приоткрыл окно и пошло резкое снижение показателя

Что дальше? Дальше буду подключать другие датчики, которых у меня пока нет. Они ещё долго будут ехать с Китая. Еще неплохо было бы сделать руками какой-нить чашечный анемометр на оптопаре для замера скорости ветра. В последствии от Wi-Fi можно отказаться и использовать для передачи данных специализированные радиомодули, например NRF24L01

Программные файлы загрузил на Яндекс.Диск, если кому надо, качайте

Читайте также:  Борьба с вредителями огурцов в теплице народными средствами

Источник

19dx.ru — R0WBH

Личный блог Гладышева Дмитрия

Подключение Arduino к отечественному проекту Народного мониторинга

Хочу рассказать ещё об одном сервисе для удалённого мониторинга температуры, преимущественно за окном. На этот раз проект отечественный, что не может не радовать.

Последнее обновление: 16 июля 2014 (v1.3)
Исправлена ошибка с дробными показаниями температуры

6 октября 2013 (v1.2)
При наличии нескольких термодатчиков данные передаются на сервер одновременно со всех, а не по очереди, как было раньше.

25 февраля 2013 (v1.1)
Исправлена ошибка с округлением отрицательной температуры до десятых долей градуса.

Немного о проекте

Сервис располагается по адресу http://narodmon.ru

Проект начался с обсуждения темы «Народный мониторинг температуры (vs прогноз) в различных городах. Нужен ли?» на Хабрахабре. На тот момент целью проекта являлось лишь информирование пользователей в Интернет о реальной погоде в данный момент времени в определенном месте, где есть участники данного проекта. C дальнейшим ростом аудитории разработчиков электронных устройств для работы с данным проектом, а также пополнением базы пользователей, возникла необходимость расширить рамки проекта с целью передачи сбора показаний с датчиков различного типа с более универсальным протоколом с крайне низкими требованиями к каналу передачи данных вплоть до GPRS/EDGE/3G/UMTS.

Собираем устройство

Нам понадобятся следующие компоненты:

Все компоненты соединяются между собой также как и в предыдущей статье: Arduino: цифровой термометр с web-мониторингом. Немного повторюсь:

Термодатчик подключается по шине 1-wire по схеме с паразитным питанием. При этом, можно использовать несколько таких датчиков (все они соединяются параллельно двумя проводами) и считывать с каждого отдельную температуру. Подключать можно к любому цифровому входу микроконтроллера, кроме 10, 11, 12 и 13, которые используются для нужд Ethernet Shield.

Прошивка

Теперь заливаем в Arduino следующий скетч:

Обратите внимание на следующие строки:

Здесь необходимо будет придумать MAC-адрес для Arduino (рекомендую взять для этого MAC-адрес вашего компьютера), указать номер входа, к которому подключен термодатчик, а также частоту обновления информации. По MAC-адресу устройство будет идентифицироваться в проекте, поэтому он должен быть уникальным.

Теперь регистрация на сайте

Заходим на сайт, жмём кнопочку «Вход», затем «Я тут впервые». Вводим свой E-Mail и ждём пока на почту свалится письмо с паролем.

Теперь нажимаем кнопку «Мои датчики», затем «Добавить». Вводим MAC-адрес, который указан в прошивке. Теперь система должна отобразить подключенные термодатчики и температуру на них. Можно указать местоположение термометра на карте и дать подписи датчикам.

Щёлкнув по пузырьку с температурой на карте, можно просмотреть дополнительную информацию:

Также можно просмотреть график изменения параметра:

и отчёт о переданных числовых данных:

Работа проверялась с Arduino IDE v1.0.1

25 октября 2012 в 15:21

if (b1==0)
….
замени на
if(с1>9)с1 += 0x37;
else с1 += 0x30;
или
c1 += c1>9?0x37:0x30;
если компилятор переварит.

25 октября 2012 в 22:10

Спасибо, попробую как будет время. Делал на скорую руку, поэтому для меня важен был результат, а не удобочитаемость кода)

Источник

Поделиться с друзьями
Расскажем обо всем понемногу