Владимир (vladikoms) wrote,
Владимир
vladikoms

Category:

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

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

narmon

После некоторых размышлений беспроводную метеостанцию решил построить на базе своего переделанного маршрутизатора и ардуиновского контроллера. Ардуинка собирает данные со всевозможных датчиков и общается с маршутизатором через UART. На маршрутизаторе крутится скрипт, который периодически опрашивает ардуинку и посылает данные по Wi-Fi "кому надо", т.е. на сайт народного мониторинга. В целом такая схема построения мне кажется оптимальной - она достаточно гибкая и легко масштабируемая.

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

term_sch

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

DSC00947

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

DSC00962

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

meteo

Теперь переходим к OpenWrt. Все готовые скрипты, которые нашел в Интернете, не понравились. Их много и они какие-то громоздкие, хочется получить простое и изящное решение. Поэтому написал собственный скрипт sender.php. В его задачу входит запрос температуры от arduino, получение ответа и передача данных на сайт narodmon.ru. Поместил этот скрипт в директорию веб-сервера /www. Главное - не забыть установить права на выполнение командой chmod 777 sender.php

sender

Для периодической отправки данных настроил планировщик cron на автозапуск скрипта sender.php через каждые 5 минут. Чаще низя - забанютъ. Когда отлажу систему сделаю отправку через 10 минут

crontab -e

cron

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

mysensors

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

DSC00966

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

DSC00980

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

NRF24L01

Продолжение следует...

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

Еще статьи по теме:

1. Анемометр для метеостанции. v.1.0
2. Метеостанция для "Народного мониторинга"

Tags: arduino, linux, openwrt, метеостанция, электроника
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic
  • 2 comments