Comments 50
Нечто похожее сделано и на моем роутере для народного мониторинга. Только вот вебсервер стал часто отваливаться. Какой ваш датчик?
В данный момент подключен DS18B20.
Спасибо!
Сегодня попробую свой WR703N подключить к народному мониторингу
Сегодня попробую свой WR703N подключить к народному мониторингу
Я вам так скажу — в свете роста интереса общества к бескорыстной помощи, имеет смысл готовить почву к стандартным USB-датчикам, который каждый желающий сможет (если захочет) воткнуть к себе в комп. Ну и софт, само собой.
Температура, влажность, скорость ветра — да метеорологи будут счастливы.
Плюс туда же — радиоактивный фон, загазованность, шум и т.п.
Мегасеть с мегавозможностями, которые принесут реальную пользу.
Температура, влажность, скорость ветра — да метеорологи будут счастливы.
Плюс туда же — радиоактивный фон, загазованность, шум и т.п.
Мегасеть с мегавозможностями, которые принесут реальную пользу.
Смысл моего шаманства — обойтись без включенного компа.
Да, Ваше «шаманство» безусловно нужно и полезно.
Но если проэкстраполировать ситуацию на несколько лет вперед, то, думаю, что наличие в условном городе Эн 1000 компов со стандартными датчиками, которые то включаются, то выключаются, но в любой момент времени какие-то работают — более вероятно, чем наличие 100 постоянно работающих роутеров с Вашими или схожими устройствами.
Тем не менее: «Пусть расцветают все цветы» (с) Мао Цзе-дун
Но если проэкстраполировать ситуацию на несколько лет вперед, то, думаю, что наличие в условном городе Эн 1000 компов со стандартными датчиками, которые то включаются, то выключаются, но в любой момент времени какие-то работают — более вероятно, чем наличие 100 постоянно работающих роутеров с Вашими или схожими устройствами.
Тем не менее: «Пусть расцветают все цветы» (с) Мао Цзе-дун
Согласно информации «О проекте» сервис не предназначен для прогнозирования. Нашей целью не является конкурирование с гисметео и прочими службами с оборудованием за 30-50килоруб и более(хотя и его можно подключить к проекту).
Ориентир на частное использование и мониторинг множества объектов или множества точек одного объекта на карте/схеме для наглядности, а публичная карта — демонстрация возможностей. Приватных датчиков(скрытых от публичного просмотра) в разы больше.
Ориентир на частное использование и мониторинг множества объектов или множества точек одного объекта на карте/схеме для наглядности, а публичная карта — демонстрация возможностей. Приватных датчиков(скрытых от публичного просмотра) в разы больше.
вот вам замена send.php на bash
#!/bin/bash
exec 3<>/dev/tcp/narodmon.ru/8283
printf "#01-23-45-67-89-AF\n#0123456789ABCDEF#" >&3
cat "/home/pi/temperature/temp_out" >&3
printf "\n#0123456789ABCDEF#" >&3
cat "/home/pi/temperature/temp_in" >&3
printf "\n##" >&3
Спасибо, вечером обязательно попробую
еще вариант?
#!/bin/bash
digitemp_DS9097 -i -s /dev/ttyATH0
sleep 1s
RES=`./digitemp_DS9097 -a`
rqstr="ID=xxxxx&yyyyy="
echo $rqstr$RES
wget --post-data "$rqstr$RES" http://narodmon.ru/post.php
POST порой проще в реализации и универсальнее, но за это приходится расплачиваться скоростью обработки и нарушением балансировки нагрузки на прием/отображение/вывод данных ибо еще и с Сosm HTTP POST поток данных идет постоянно.
/dev/ttyATH0 это опечатка? работает только на ttyUSB0. Переменной RES ничего не присваивается — line 4: ./digitemp_DS9097: not found и в ECHO соответственно отсутствует. И я не понял что делает последняя строка — wget: can't open 'post.php': File exists
digitemp_DS9097 -i -s /dev/ttyATH0
sleep 1s
RES=`digitemp_DS9097 -a`
rqstr="ID=xxxxx&yyyyy="
echo $rqstr$RES
wget --post-data "$rqstr$RES" http://narodmon.ru/post.php -O /dev/null
/dev/ttyATH0 — досадная опечатка;
RES=`digitemp_DS9097 -a` убрать "./" слеш для случая когда digitemp_DS9097 и скрипт в одной папке
wget --post-data "$rqstr$RES" narodmon.ru/post.php -O /dev/null — тут опция -O /dev/null не создавать файл post.php — скорее всего нет прав его перезаписать
Что-то куда-то отправляется, но не принимается сервером. Возможно из-за не правильного формата данных, т.к. вывод команды digitemp_DS9097 -a -A -l /temperatura/1wire_log такой Jan 22 19:25:45 Sensor 0 C: -8.63 F: 16.48. Здесь необходимо вырезать числовое значение температуры по типу как у меня сделано и запихивать в RES. А дальше смотреть что получилось.
В этот скрипт явно надо добавить построение списка датчиков и их опрос.
Переписывать скрипт при добавлении/выходе из строя очередного датчика не есть хорошо.
Переписывать скрипт при добавлении/выходе из строя очередного датчика не есть хорошо.
/dev/tcp/narodmon.ru/8283
На plan9 работает?
На plan9 работает?
Автору статьи огромное спасибо за обзор и проделанную работу, к тому же у самого на полочке лежит MR3020 и ожидает своей участи по еще более бюджетному(без малинки, ардуино, внешних контроллеров) варианту подключения к проекту используя лишь простейший мост UART->1-wire выведенный наружу используя audio jack и герметизированный вариант термодатчика.
Быть может кто сможет придумать как аккуратно вывести и подключить I2C сенсоры DHT22(влажность) и BMP085(атм.давление) былоб просто замечательно, а также трансформатор тока SCT-013 для замера потребления энергии. А также с возможностью передачи данных через USB 3G модем, подключаемый к роутеру.
Для читателей и будущих пользователей сервиса — оставляю тут ссылку на сам проект narodmon.ru, на сообщество vk.com/narodmon и на десктопную утилиту (описание, загрузка) под win/wine(nix ожидается), Android-клиент на подходе, будем рады и разработчикам для других платформ.
Быть может кто сможет придумать как аккуратно вывести и подключить I2C сенсоры DHT22(влажность) и BMP085(атм.давление) былоб просто замечательно, а также трансформатор тока SCT-013 для замера потребления энергии. А также с возможностью передачи данных через USB 3G модем, подключаемый к роутеру.
Для читателей и будущих пользователей сервиса — оставляю тут ссылку на сам проект narodmon.ru, на сообщество vk.com/narodmon и на десктопную утилиту (описание, загрузка) под win/wine(nix ожидается), Android-клиент на подходе, будем рады и разработчикам для других платформ.
Так и не нашел спецификации на протокол, можно прямую ссылку?
DHT11 брат близнец DHT22, у роутера есть GPIO. На него и посадить датчик. В статье Исследование Wi-Fi-роутера TP-LINK TL-MR3020 написано как его использовать и как написать программу. Протокол — есть, коза процедуры — есть, как скомпилировать — есть осталось соединить.
У DHT11 просто ужасные техданные, особенно в плане точности измерений. Не рекомендую тратить на него время зазря.
сравнивать лучше при отрицательных температурах, где погрешность выше, а не в условиях близких к идеальным
DHT11 не меряет отрицательные температуры (datashit) еще раз повторюсь это дешевый комнатный термометр, с округлением до целых градусов (влажность до целых процента). График показывает что в диапазоне комнатных температур он округляет довольно неплохо…
Зато DHT22 имея тот же протокол меряет отрицательные и точность до десятых
Зато DHT22 имея тот же протокол меряет отрицательные и точность до десятых
Протокол доступен после регистрации.
хороший проект! готов поучаствовать, но хотелось бы увидеть еще и расширенный вариант например для удаленного контроля котельными, температура, давление в системе отопления, давление холодной воды и т.п возможно ли это? готов внести свой вклад!
Спасибо за отзыв!
Расширенный вариант как водится врядли будет бесплатным ибо трудозатраты возрастают, а вот простые триггеры-уведомления по email по превышении/понижении установленных пределов — ожидаются в ближайшее время.
PS SMS-шлюзов бесплатных в Инете не нашлось, но для желающих по тарифам раза в 2 ниже розничных операторских можно сорганизовать. Пока SMS-уведомлений/регистраций нет ибо желающих маловато… но все может измениться КТТС.
Расширенный вариант как водится врядли будет бесплатным ибо трудозатраты возрастают, а вот простые триггеры-уведомления по email по превышении/понижении установленных пределов — ожидаются в ближайшее время.
PS SMS-шлюзов бесплатных в Инете не нашлось, но для желающих по тарифам раза в 2 ниже розничных операторских можно сорганизовать. Пока SMS-уведомлений/регистраций нет ибо желающих маловато… но все может измениться КТТС.
В процессе поиска оптимального варианта передачи данных на narodmon.ru c минимумом используемых пакетов в OpenWRT родился такой вот скриптец: /usr/narodmon.sh
NNNN — TCP порт листенера, последний пакет отправленных данных и результат его отправки пишутся в /var/log и перекрываются в целях экономии места на роутере.
#!/bin/sh
# run every 10 min
ifconfig | grep HWaddr | awk '{FS=" "; if(NR==1) {print "#"$5}};' > /var/log/narodmon
digitemp_DS9097 -q -i -a -s /dev/ttyUSB0 | awk '{FS=" "; if($2==":") { mac[NR-1]=$1;}; if($4=="Sensor") { print "#"mac[$5]"#"$7;}}' >> /var/log/narodmon
echo "##" >> /var/log/narodmon
cat /var/log/narodmon | nc narodmon.ru NNNN > /var/log/narodmon.log
NNNN — TCP порт листенера, последний пакет отправленных данных и результат его отправки пишутся в /var/log и перекрываются в целях экономии места на роутере.
также не забывает создать файлик /etc/crontabs/root с содержимым:
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
*/10 * * * * /bin/sh /usr/narodmon.sh > /var/log/cron.log
А еще для того, чтобы не ждат 10-15 мин пока сработает cron желательно прописать в /etc/rc.local запуск скрипта отправки показаний сразу же после включения и инициализации роутера:
# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
/bin/sh /usr/narodmon.sh > /var/log/autorun.log
exit 0
Дабы не скидывать на сервер неполные данные(например когда digitemp дал сбой), то желательно встроить проверку, заменив последнюю строку скрипта с отправкой данных на сервер на проверку кол-ва строк в сформированном пакете данных(должно быть >2 строк в случае одного датчика):
LC=`cat /var/log/narodmon | wc -l`
if [ $LC -gt 2 ]
then cat /var/log/narodmon | nc narodmon.ru 8283 > /var/log/narodmon.log
fi
На надо писать свой драйвер, он есть в стандартных репозиториях OpenWRT.
Sign up to leave a comment.
Отправка данных о температуре с роутера TL-MR3020 и Raspberry Pi на «Народный мониторинг»