Автор |
Сообщение |
Admin
Site Admin
Зарегистрирован: 25.04.2006
Сообщения: 361
|
Вт Dec 21, 2010 22:29 Электронный термометр на DS-18B20 |
|
Идея измерять температуру на улице с помощью компьютера у меня возникла давно, интернет подсказал что существуют специальные датчики температуры. Это датчики DS18B20 ( DS1820 ) от Dallas. Сенсор использует шину, разработанную Dallas - 1-Wire. Эта же шина используется в других их устройствах, например в домофонных ключах iButton. Но это в общем не важно.
Вернемся к датчику DS18S20, он позволяет измерять температуры от -55 C to 125 C.
Согласно специцикации 1-Wire длина линии может быть до 300м, и к одной линии можно подключать 100 до датчиков параллельно!
Что может быть удобней?
Значит осталось подключить датчик к компьютеру и найти программу для считывания и вывода данных.
Я нашел два вида схем подключения датчиков в COM-порту компьютера: Первая - более простая, с "паразитным" питанием датчика, использует два провода. Плюс схемы - простота и малое количество деталей. Минус схемы - длина провода до датчика не более десяти метров, и количество датчиков, которые можно подключить тоже ограничено небольшим числом.
Второй вариант посложнее, датчик питается по линии, поэтому используется три провода, но зато длина линии заявлена до 300метров и можно подключать большое число датчиков.
Первый вариант схемы:
Необходимые элементы:
1. COM-разъем 9 -pin'овый, DB9-F ( с дырками который:) )
2. Два диода Шотки 1N5818 (1N5819).
3. Стабилитрон 1N5228 3.9 V , (или другие подходящие).
4. Стабилитрон 1N5234 6.2 V , (или другие подходящие).
5. Резистор 1.5 кОм.
6. Естественно датчик DS18S20.
Второй вариант (две аналогичные схемы)
У меня необходимости в длинной линии не было, я остановился на первом варианте схемы. Если решите повторять - то выбор ваш, что вам нужно:)
Я не стал придумывать что-то сложного и собрал все прямо в корпусе от разъема COM-порта.
Далее нам необходима программа для работы с ним, в интернете их множество, но не все работают и не все бесплатны.
Под windows я пробовал:
Термометр http://arv.radioliga.com/content/view/68/44/
Термосервер http://arv.radioliga.com/content/view/89/44/
Но лично мне стало этого мало, просто смотреть изредка за температурой совсем не интересно:)
Под рукой был linux-сервер на ubuntu, и меня посетила мысль посмотреть как обстоит дело с мониторингом температуры на нем.
Оказалось очень даже неплохо, есть продукт Digitemp - позволяющий работать с этитими датчиками.
( Скачать его можно здесь: http://www.digitemp.com/software.shtml )
Попробовал его - работает с несколькими датчиками.
Написал простой php-скрипт который отображал темперару одного уличного датчика, т.е. по http обращении сервер отдавал температуру.
Можно прямо с броузера смотреть. А можно и програмку небольшую написать которая будет отображать температуру поверх других окон на экране. Такую програмку и написал наш модератор AragornSamara
Скачать ее можно в конце сообщения, файл: prog_view_temp.rar
Пара скринов с нее (кстати накладывается на экран видеонаблюдения)
Для получения данных написал на perl небольшой скрипт получения данных от Digitemp:
Код: |
#!/usr/bin/perl
# Hardware monitor script for cacti
my %data;
$in = `digitemp_DS9097 -s /dev/ttyS0 -r2000 -q -a -o "%.2C"`;
@data = split(/\n/, $in);
open(FIL,">/home/beriv/temp_beriv.log");
flock(FIL,2);
printf FIL "temp1:%.2f temp2:%.2f temp3:%.2f ", $data[0], $data[1], $data[2];
close(FIL);
printf "temp1:%.2f temp2:%.2f temp3:%.2f", $data[0], $data[1], $data[2];
|
Он выполняется через cron каждую минуту - чаще не стоит, т.к. при более частом опросе датчики нагреваются сами.
Скрипт записывает данные в лог файл.
А уже с него читает php-скрипт temp_view.php данные по запросу от программы, описанной выше (ну или броузера).
Его простое содержание:
Код: |
<?
$f=file("/home/beriv/temp_beriv.log");
$f=explode("temp3:",$f[0]);
echo $f[1];
?>
|
Заодно эти файлы прикрепил к сообщению.
Дальше думая, неплохо бы было собирать какую-нибудь аналитику с этих данных. И тут мне тоже помог linux - я применил пакет статистики Cacti - он мне строит графики температуры, за час, за сутки, месяц, год.
(Кстати очень мощный пакет статистики, можно опрашивать перефирические устройства, например на предмет пропускной способности, загрузки процессора, "времени пингов" и на основе всего этого строить графики).
Пример графика годовой температуры от Cacti
правда видно не работал летом сервер, а потом датчик уличный почему-то сглючило и он показвал 85 градусов постоянно. А так график вполне реальный
Чуть позже напишу и размещу информацию о настройке Digitemp и пакета Cacti пошагово. |
Описание: |
Программа отображения температуры отдаваемой скриптом по http |
|
Скачать |
Имя файла: |
prog_view_temp.rar |
Размер файла: |
91,12 KB |
Скачано: |
729 раз(а) |
Описание: |
perl- скрипт работы с Digitemp |
|
Скачать |
Имя файла: |
script_view_temp.rar |
Размер файла: |
907 Байт |
Скачано: |
672 раз(а) |
|
_________________ http://radionet.com.ru |
|
|
|
lev
Moderator
Зарегистрирован: 13.07.2009
Сообщения: 130
Откуда: Самара
|
думал о подобном, но дальше макетки не пошло |
|
_________________ RN4HEH |
|
|
|
dizelist
Moderator
Зарегистрирован: 17.05.2006
Сообщения: 251
Откуда: САМАРА
|
Теперь, уважаемому Admin'у остаётся сделать последний шаг!
Прицепить оный скрипт к движку форума, чтобы всякий уважающий себя радиогубитель мог получать фактическую погоду в Самаре, заглянув на наш форум! |
|
|
|
|
|
Admin
Site Admin
Зарегистрирован: 25.04.2006
Сообщения: 361
|
dizelist, легко:) только нужно ли это? к нам заходят не только с Самары, а со всей России, будет ли это интересно им? |
|
_________________ http://radionet.com.ru |
|
|
|
dizelist
Moderator
Зарегистрирован: 17.05.2006
Сообщения: 251
Откуда: САМАРА
|
"Это будет интересно нашим соотечественникам, находящимся вдали от Родины" предлагаю создать опрос! |
|
|
|
|
|
lev
Moderator
Зарегистрирован: 13.07.2009
Сообщения: 130
Откуда: Самара
|
даёшь датчики в каждой комнате дома нашего уважаемого админа |
|
_________________ RN4HEH |
|
|
|
parus
Зарегистрирован: 11.07.2011
Сообщения: 2
Откуда: Калуга
|
подниму-ка древнюю тему…
У меня такой-же стоит на сервере(в сервачной и на улице датчики висят). Интересно, логи ещё собираются в mysql. Пойду гляну.
Добавлено спустя 10 минут 30 секунд:
О, работает, с Thu, 27 Nov 2008 15:49:15 GMT каждые 10 минут(ну кроме отключенного света и прочих неприятностей) снимает:) |
|
_________________ Невозможно заточить карандаш тупым топором, столь-же тщетно пытаться заточить его десятком тупых топоров. |
|
|
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы можете скачивать файлы
|
|