|  |    www.lissyara.su—> статьи—> Очумелые Ручки—> Компьютерные—> 1-Wire
 
 Изготовление простейшего контроллера шины 1-Wire для создания системы мониторинга температуры.
Автор: Капитан.
 
             Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
 Автор не несёт ответственности за возможные негативные последствия вызванные попытками  применить на практике материалы данной статьи!
 
 Железо
 Датчик подключается к COM порту компьютера. Мы будем собирать его навесным монтажом в корпусе разъёма DB9.
 Возможные грабли:
 Перед закупкой деталей убедитесь, что COM порт вашего сервера мониторинга имеет стандартное питание 9 В. Померьте напряжение между 4 и 5 контактом. Убил кучу времени пытаясь завести схему на сервере Hewlett Packard с 5-ти вольтовым портом. У стандартного порта напряжение между 4 и 5 контактом будет примерно 10-11,5 вольт
 
 Для стандартного порта схема простейшего контроллера выглядит следующим образом:
 
		
		
По сути - это просто преобразователь уровней.
 Для сбора схемы с одним датчиком были закуплены в «Чип&Дип» следующие детали:
 
 1.Диод  Шоттки  - 1N5818 – 2шт.
 2.Стабилитрон на 3,9 В - BZX55C3v9 – 1шт.
 3.Стабилитрон на 6,2 В  - BZX55C6v2 – 1шт.
 4.Резистор на 1,5 КОм – 1шт.
 5.Датчик температуры DS1820 – 1шт.
 6.Корпус разъема DB9 – 1шт.
 7.Разъем DB9 мама (Female) – 1шт.
 
 Всё это дело обошлось примерно в 420р. По ценам января 2011 года.
 
 Самая дорогая деталь – сам датчик (~280р.). Если необходимо наблюдать за температурой в нескольких точках, можно купить несколько датчиков и соединить их параллельно. Каждый датчик имеет уникальный идентификатор.
 Маркировка датчика DS1820
 
 
		
		
Маркировка полупроводников
 
 
		
		
“Штриху на корпусе соответствует катод.
 Я советую сначала скрутить все детали
в воздухе” с помощью пинцета или маленьких плоскогубцев
 
		
		
Лишние концы выводов деталей лучше откусить уже после пайки.
 Выводы, которыми схема будет припаиваться к разъёму, откусываем в последнюю очередь
 
 
		
		
 Сам разъём
 
 
		
		
 Возможные грабли:
 В советском радиолюбительском жаргоне используется слово МАМА для обозначения разъема с дырочками и, ПАПА – разъём со штырьками. Буржуины, соответственно, используют обозначения МУЖСКОЙ и ЖЕНСКИЙ пол. Так, что обозначения в каталогах F и M это не Father и Mother, а Female и Male. Будьте внимательны при заказе радиодеталей дистанционно! ;-)
 
 Для удобства монтажа я откусил неиспользуемые контакты разъёма
 
 
		
		
 Припаиваем схему к контактам разъёма
 
 
		
		
 Размещаем всё в корпусе
 
		
		
 Напаиваем датчик на кабель
 
 
		
		
В качестве кембриков я использовал изоляцию от более толстого провода. Третий вывод я не использовал.
 
 Я использую один датчик, поэтому просто втянул его в кабель, потащив за проводники с обратной стороны
 
 
		
		
Для придания эстетического вида можно использовать и термоусадку. Если красивость не важна, никто не запрещает использование изоленты.
 
 В работе это выглядит примерно так
 
 
		
		
 Если кто собирается вешать несколько датчиков в разных местах или экспериментировать с разными устройствами, рекомендую размещать схему вот в таком разъёме-переходнике
 
 
		
		
Это позволит более оперативно производить различные коммутации. Такой переходник знаком техническим специалистам телекоммуникационных компаний. Без такого к "кошкиной" консоли не подберёшься. ;-)
 
 Теперь софт
 В портах FreeBSD программы Digitemp нет.
 Придётся ставить вручную из исходников. Исходники можно скачать с сайта разработчиков по адресу:
 http://www.digitemp.com
 Для компиляции понадобится gmake, если не установлен, собираем из портов
 
 
		
| #cd  /usr/ports/devel/gmake
#make install clean
#rehash
 |  Начинаем ставить Digitemp.
 
		
| #mkdir  /usr/temporaly_source_code_folder
#cd  /usr/temporaly_source_code_folder
#fetch http://www.digitemp.com/software/linux/digitemp-3.6.0.tar.gz
#tar -xzvf digitemp-3.6.0.tar.gz
 |  После разархивирования у нас появится папка /usr/temporaly_source_code_folder/digitemp-3.6.0
 
		
| #cd digitemp-3.6.0
#gmake ds9097
 |  После компиляции в папке появится исполняемый файл digitemp_DS9097. Проверяем:
 Программа выведет встроенный Help. Всё ОК.В принципе,  кроме этого файла нам больше ничего и не нужно.Создаём рабочую папку нашей системы наблюдения за температурой.
 
 
		
| #mkdir /usr/local/etc/digitemp/
#cp digitemp_DS9097 /usr/local/etc/digitemp/digitemp
#rm –r  /usr/temporaly_source_code_folder
#cd /usr/local/etc/digitemp
 |  Контроллер присоединён к COM1, выполняем его инициализацию.
 
		
| # ./digitemp -i -s /dev/cuau0
 |  Будет выведена информация о найденных датчиках и создан файл конфигурации .digitemprc примерно следующего содержания:
 
	
		| TTY /dev/cuau0 READ_TIME 1000
 LOG_TYPE 1
 LOG_FORMAT "%b %d %H:%M:%S Sensor %s C: %.2C F: %.2F"
 CNT_FORMAT "%b %d %H:%M:%S Sensor %s #%n %C"
 HUM_FORMAT "%b %d %H:%M:%S Sensor %s C: %.2C F: %.2F H: %h%%"
 SENSORS 1
 ROM 0 0x28 0x4B 0xD1 0xC7 0x02 0x00 0x00 0xF0
 
 |  
Как видно, у меня один датчик. Нумерация датчиков начинается с нуля.Пробуем снять показания.
 
 
		
| #/usr/local/etc/digitemp/digitemp -a -c /usr/local/etc/digitemp/.digitemprc
DigiTemp v3.5.0 Copyright 1996-2007 by Brian C. Lane
GNU Public License v2.0 - http://www.digitemp.com
Jan 27 12:51:38 Sensor 0 C: 23.62 F: 74.53
 |  Что и требовалось . . .
 Практическое применение схемы для формирования графиков изменения температуры описано в статье:
 http://www.lissyara.su/articles/freebsd/programms/mrtg+digitemp/
 Система оповещения о превышении температуры на основе Nagios описана в статье:
 http://www.lissyara.su/articles/freebsd/programms/nagios+digitemp/
 
 Лирическое отступление
 Шина 1-Wire (один провод) была разработана в недрах капиталистической фирмы Dallas Semiconductor в 90-х годах прошлого века. Она представляет из себя сеть, с одним ведущим устройством (мастером) и несколькими ведомыми. На самом деле для осуществления связи используется минимум два провода: линия данных и земля, из-за этого в некоторых русскоязычных источниках я встречал термин "двухпроводная шина". Предусматривается и возможность дополнительного питания устройств по отдельному проводу (3-й вывод датчика). Однако ведомые устройства умеют накапливать энергию импульсов данных во встроенных ёмкостях (паразитное питание). Существуют и устройства со встроенными аккумуляторами. Стандарт предусматривает передачу данных на расстояния до 300-м (в рассматриваемой схеме конечно меньше) со скоростью 16,3 Кб/с. Фирма гарантирует уникальность идентификатора каждого устройства. Самым распространённым устройством, с которым, наверняка, каждый сталкивался, является DS1990A в корпусе MicroCAN - домофонная таблетка. Таблетка содержит внутри только уникальный код, который отдаёт по запросу. С помощью DS9097 его можно читать, однако соответствующего софта под FreeBSD я не нашёл :(
 
 
 
 размещено: 2011-02-03,последнее обновление: 2011-02-16,
 автор: Капитан
 
 |  | 
	
		|  |   Этот информационный блок появился по той простой причине,
			что многие считают нормальным, брать чужую информацию не уведомляя автора
			(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
			Я не против распространения информации — только за. Только условие простое — извольте
			подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
			незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
			Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
 © lissyara 2006-10-24 08:47 MSK
			
 |  | 
Комментарии пользователей [19 шт.]