Список форумов RadioNet
Search datasheet   New!
Список форумов RadioNet
РЕЙТИНГ ТЕНДЕРЫ ИССЛЕДОВАНИЯ DATASHEETS КАТАЛОГ СХЕМ СХЕМЫ ФОРУМ ДОСКА ОБЪЯВЛЕНИЙ
 FAQ  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Войти и проверить личные сообщения  •  Вход
 Электронный термометр на DS-18B20
Уважаемый гость, если Вы хотите что-то написать необходимо зарегистрироваться!
Автор Сообщение
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 до датчиков параллельно!
Что может быть удобней? Smile

Значит осталось подключить датчик к компьютеру и найти программу для считывания и вывода данных.

Я нашел два вида схем подключения датчиков в COM-порту компьютера: Первая - более простая, с "паразитным" питанием датчика, использует два провода. Плюс схемы - простота и малое количество деталей. Минус схемы - длина провода до датчика не более десяти метров, и количество датчиков, которые можно подключить тоже ограничено небольшим числом.
Второй вариант посложнее, датчик питается по линии, поэтому используется три провода, но зато длина линии заявлена до 300метров и можно подключать большое число датчиков.

Первый вариант схемы:
Image
Необходимые элементы:
1. COM-разъем 9 -pin'овый, DB9-F ( с дырками который:) )
2. Два диода Шотки 1N5818 (1N5819).
3. Стабилитрон 1N5228 3.9 V , (или другие подходящие).
4. Стабилитрон 1N5234 6.2 V , (или другие подходящие).
5. Резистор 1.5 кОм.
6. Естественно датчик DS18S20.

Второй вариант (две аналогичные схемы)
Image

Image

У меня необходимости в длинной линии не было, я остановился на первом варианте схемы. Если решите повторять - то выбор ваш, что вам нужно:)

Я не стал придумывать что-то сложного и собрал все прямо в корпусе от разъема 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
Пара скринов с нее (кстати накладывается на экран видеонаблюдения)
Image Image

Для получения данных написал на 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
Image
правда видно не работал летом сервер, а потом датчик уличный почему-то сглючило и он показвал 85 градусов постоянно. А так график вполне реальный



Чуть позже напишу и размещу информацию о настройке Digitemp и пакета Cacti пошагово.




prog_view_temp.rar
 Описание:
Программа отображения температуры отдаваемой скриптом по http

Скачать
 Имя файла:  prog_view_temp.rar
 Размер файла:  91,12 KB
 Скачано:  730 раз(а)


script_view_temp.rar
 Описание:
perl- скрипт работы с Digitemp

Скачать
 Имя файла:  script_view_temp.rar
 Размер файла:  907 Байт
 Скачано:  672 раз(а)


_________________
http://radionet.com.ru
 
lev
Moderator


Зарегистрирован: 13.07.2009
Сообщения: 130
Откуда: Самара

Сб Dec 25, 2010 21:37    

Smile думал о подобном, но дальше макетки не пошло


_________________
RN4HEH
 
dizelist
Moderator


Зарегистрирован: 17.05.2006
Сообщения: 251
Откуда: САМАРА

Пн Dec 27, 2010 19:03    

Теперь, уважаемому Admin'у остаётся сделать последний шаг!

Прицепить оный скрипт к движку форума, чтобы всякий уважающий себя радиогубитель мог получать фактическую погоду в Самаре, заглянув на наш форум!

 
Admin
Site Admin


Зарегистрирован: 25.04.2006
Сообщения: 361


Вт Dec 28, 2010 10:24    

dizelist, легко:) только нужно ли это? к нам заходят не только с Самары, а со всей России, будет ли это интересно им?


_________________
http://radionet.com.ru
 
dizelist
Moderator


Зарегистрирован: 17.05.2006
Сообщения: 251
Откуда: САМАРА

Вт Dec 28, 2010 16:04    

"Это будет интересно нашим соотечественникам, находящимся вдали от Родины" Smile предлагаю создать опрос!

 
lev
Moderator


Зарегистрирован: 13.07.2009
Сообщения: 130
Откуда: Самара

Чт Dec 30, 2010 22:59    

Laughing даёшь датчики в каждой комнате дома нашего уважаемого админа


_________________
RN4HEH
 
parus



Зарегистрирован: 11.07.2011
Сообщения: 2
Откуда: Калуга

Вс Июл 17, 2011 15:53    

подниму-ка древнюю тему…
У меня такой-же стоит на сервере(в сервачной и на улице датчики висят). Интересно, логи ещё собираются в mysql. Пойду гляну.

Добавлено спустя 10 минут 30 секунд:

О, работает, с Thu, 27 Nov 2008 15:49:15 GMT каждые 10 минут(ну кроме отключенного света и прочих неприятностей) снимает:)


_________________
Невозможно заточить карандаш тупым топором, столь-же тщетно пытаться заточить его десятком тупых топоров.
 
 





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