Squidy Жалоба Опубликовано 2 июля, 2007 Как-то относительно давно нарвался у николоса на страницу с температурой онлайн, и захотелось собрать что-то подобное, у него была ссылка на оригинальную стать на linuxfocus и одним словом решил я всё это собрать. Хоть это всё уже и есть давно хочется попробовать сделать самому. Так что хочу выдать две благодарности Николасу за идею и Молекуле за-то что привезла комплектующие. Детали были куплены в магазине "Чип и Дип" Собственно, самое главное - датчик температуры DS18S20 ( DS1820 ) 2. Два диода Шотки 1N5818 3. Стабилитрон 1N5228 3.9 V 4. Стабилитрон 1N5234 6.2 V 5. Резистор 1.5 кОм. 6. 9 -pin'овый разъем ( для подключения к Com - порту материнской платы ) Я не нашел в магазине ни 1N5228 , ни 1N5234 , поэтому просто использовал аналоги с таким же напряжением. Cхема довольно простая: Ну и всё же я решил изготовить печатную плату просто для самоудовлетворения. Первым делом взял розетку сетевую самую обычную и выпаял всё из неё Потом взял кусок стеклотексталита и вырезал кусок Кусок вырезан Осталось теперь только нарисовать дорожки что-бы потом протравить плату, раньше в детстве я это делал путём рисования от руки, брали нитро краску и спичку и рисовали дорожки конечно качество было ужасным, ну у нас уже 21 век и мы будем дорожки делать по технологии "ЛУТ" (лазерно-утюжная технология) Я использовал программу Sprint-Layout 4.0 RUS и нарисовал себе платку кому надо можете скачать исходник У меня был выбор из какого журнала вырезать кусок из "хакер" или "7 дней" не долго думая покромсал 7 дней наклеил на лист бумаги и засунул в принтер (у меня HP LaserJet 1020) Напечатал то что нарисовал в программе ранее, получилось у меня вот Теперь взял утюг нагрел пластину и стал переводить всё на кусок стеклотекстолита Вообщем у меня получилось довольно симпотишно Поместил это всё в раствор хлорного железа и вообщем в итоге у меня получилось Обрезаем, сверлим лудим травим вообщем теперь осталось самое приятное В итоге плата у меня получилась такого вида Конечный вид девайса у меня получился такой, а датчик температуры подключается через коннектор у меня расстояние от датчика до схемы метров 10, датчик у меня на улице я его вынес гдето на пол метра Вообщем паяльник можно отложить теперь подключаем всё это к компьютеру и... ставим программу digitemp После компиляции из исходников, перед началом работы , необходимо проинициализировать датчик, выполнив digitemp -i -s /dev/ttyS1 ( или /dev/ttyS0 , в зависимости к какому Com порту подключен дачтик ): а потом уже можно снимать показания [squidy@squidy ~]# digitemp -a -q -c /usr/local/etc/digitemp.conf Jul 02 12:07:03 Sensor 0 C: 23.25 F: 73.85 я решил все данные хранить в БД поэтому пришлось использовать скриптик на перле, правда изза помех датчик может выдавать ошибку 85 С бывает редко но всё-же что-бы не писать ошибки в БД, решил эти значения отсекать digitemp_mysql.pl #!/usr/bin/perl -W # Структура БД # CREATE TABLE `temps` ( # `dtKey` int(11) NOT NULL auto_increment, # `time` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, # `SerialNumber` varchar(17) NOT NULL default '', # `Fahrenheit` decimal(3,1) NOT NULL default '0.0', # PRIMARY KEY (`dtKey`), # KEY `serial_key` (`SerialNumber`), # KEY `time_key` (`time`) #) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=806; # use DBI; # Информация о базе данных my $db_name = "server"; my $db_user = "ваш_юзер"; my $db_pass = "ваш_пароль"; # Путь до файла конфигурации и самой программы my $digitemp_rcfile = "/usr/local/etc/digitemp.conf"; my $digitemp_binary = "/usr/local/bin/digitemp"; my $debug = 0; # Соединяемся с БД my $dbh = DBI->connect("dbi:mysql:$db_name","$db_user","$db_pass") or die "I cannot connect to dbi:mysql:$db_name as $db_user - $DBI::errstr\n"; # Выдераем значения и пишем в БД при этом если значение равно 85 опросить датчик снова my $temperature; go_here: open( DIGITEMP, "$digitemp_binary -q -a -o \"%s %.1C\" -c $digitemp_rcfile |" ); while( <DIGITEMP> ) { print "$_\n" if($debug); chomp; ($serialnumber,$temperature) = split(/ /); my $sql="INSERT INTO temps SET SerialNumber='$serialnumber',Fahrenheit=$temperature"; print "SQL: $sql\n" if($debug); if ($temperature != 85) { $dbh->do($sql) or die "Can't execute statement $sql because: $DBI::errstr"; } } close( DIGITEMP ); goto go_here if $temperature == 85; $dbh->disconnect; Осталось добавить скрипт в кронд чтобы он выполнялся скажем каждые 10 минут и писал данные [squidy@squidy ~]# crontab -e */10 * * * * /usr/bin/perl /script/digitemp_mysql.pl Всё данные теперь пишутся, собираются, теперь можно строить графики, и выдавать их скажем на сайте У меня данные пока выводятся только на моём локальном сайте и выглядит это так Вставить Ник Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
bSd Жалоба Опубликовано 2 июля, 2007 (изменено) Николас такое делал года два назад у него вроде было с сохранением в бд в сыром виде и с графиком из GD Изменено 2 июля, 2007 пользователем bSd Вставить Ник Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Squidy Жалоба Опубликовано 2 июля, 2007 не, у него тоже ошибки отсекаются иначе график заключит, единственное из-за того что у нас дома в разных местах и этажи разные у нас показания отличаются немного на 1-2 градуса у меня ночью ниже температура у него ниже днём, хоть и датчик у меня в тени я просверлил сбоку балкона дырень и вынес датчик Вставить Ник Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Nikolas Жалоба Опубликовано 2 июля, 2007 Число датчиков растет, скоро можно будет строить распределение температуры по территории города Вставить Ник Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Squidy Жалоба Опубликовано 2 июля, 2007 Вот для этого и написал статью может ещё кто в городе собирёт можно будет замутить карту города с распределением температур и выдавать среднюю температуру по городу потомучто в районе набережной температура наверняка на цать градусов ниже чем у нас Вставить Ник Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
bSd Жалоба Опубликовано 2 июля, 2007 угу, нарисовать скалярное поле температур только дискретность надо поменьше, т.е. датчиков побольше ) Вставить Ник Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Squidy Жалоба Опубликовано 2 июля, 2007 правда сомневаюсь что найдётся много желающих собирать эти датчики хотя на самом деле довольный бюджетный проэктик на всё провсё ушло не больше 100р если не брать во внимание стеклотекстоли хлорное железо и прочую ерунду сам датчик стоял 70р Вставить Ник Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
e_man Жалоба Опубликовано 2 июля, 2007 даёшь в каждый чердак со свичем велкома по примочке с вынесенным датчиком Вставить Ник Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Nikolas Жалоба Опубликовано 2 июля, 2007 А в линете все могут лицезреть температурку и графики за сутки и трое суток по адресу: ссылка Вставить Ник Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
bSd Жалоба Опубликовано 2 июля, 2007 даёшь в каждый чердак со свичем велкома по примочке с вынесенным датчиком ну во-первых ещё добавить over ethernet часть, компутеры ставить - это жесть во-вторых с езернет частью это стоит не 100 руб., и главное не железо а софт для микроконтролера в-третих, кому надо измерять температуру(влажность и давление), правильно - Гидромету а потратить кучу бабок чтобы рисовать красивую карту для <блабла> могут только дураки из другой неупоминаемой здесь конторы ) Вставить Ник Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Slimer Жалоба Опубликовано 2 июля, 2007 Сквиди молодец, так держать! Не слушай никого, за статейку ПЯТЁРКА! Вставить Ник Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
St0rm Жалоба Опубликовано 2 июля, 2007 Я чет смотрел смотрел на все это и так и не понял, а ### простите меня это все надо? 100 р. тратить на изготовление того, что можно купить дешевле? Я понимаю паять (читай - делать) что-то стоящее... Вот я, например, думаю как бы слепить антену/усилитель к бюджетному bluetooth ключу? (не узконаправленную) Вставить Ник Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Squidy Жалоба Опубликовано 2 июля, 2007 паять и собирать что-то, дело не изза выгоды а изза процесса, если вам проще купить топайте в магазин, это болезнь так сказать сделать самому то, что можно купить и при том дешевле купить готовое изделие. и высказывания а аля а на ### это надо можно оставить и при себе что касается усилителя то собрать можно былобы желание Вставить Ник Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Kovrov Жалоба Опубликовано 3 июля, 2007 не, у него тоже ошибки отсекаются иначе график заключит, единственное из-за того что у нас дома в разных местах и этажи разные у нас показания отличаются немного на 1-2 градуса у меня ночью ниже температура у него ниже днём, хоть и датчик у меня в тени я просверлил сбоку балкона дырень и вынес датчик это не из за этажей разные градусы это DS1820 - жесть!!! якобы каллиброванные на заводе!!! Вставить Ник Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
St0rm Жалоба Опубликовано 3 июля, 2007 паять и собирать что-то, дело не изза выгоды а изза процесса, если вам проще купить топайте в магазин, это болезнь так сказать сделать самому то, что можно купить и при том дешевле купить готовое изделие. и высказывания а аля а на ### это надо можно оставить и при себе что касается усилителя то собрать можно былобы желание Воистину, клуб радиолюбителей... У меня приятель давление еще меряет и скорость ветра. Видимо, я вырос из того возраста, когда видя в радиолюбительской мурзилке схему я истекаю слюнами шлифуя паяльник напильником и шкуркой. Вставить Ник Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Kovrov Жалоба Опубликовано 3 июля, 2007 Не ну я тоже не понимаю за кой это надо то температуру то мерить зачем? так для опыта попробывать сетевые технологии это интересно.... я это называю собачьи радости ну на день ну на 2 -3, а потом все в помойку пойдет... есть другое предложение: поставить веб камеры с изернет интерфейсом и наблюдать за очредями на 538 (348)... Вставить Ник Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
St0rm Жалоба Опубликовано 3 июля, 2007 есть другое предложение: поставить веб камеры с изернет интерфейсом и наблюдать за очредями на 538 (348)... Хех... Что, статистику что ли собирать? С тем же успехом пожно с LPT управлять подрывом электролитных конденсаторов (скажем 5V), выброшенных на остановку 538 на тонких проводках через герконы на 220 В и наблюдать за зрелищем через веб-камеру. Гораздо смешнее. Че, еще никто не смеется? Хорошо! Тогда можно устроить следующее зрелище... потребуется один каскадер, 1 "нафталиновая" бомба и бачок с бензином. Значит каскадер наряжается в костюм шахида, ему в руки вручается чемодан с нафталинкой, а он сам обливается бензином. (нужные части тела смазать вазелином ) Сценка: шахид бежит на толпу, стоящую на 538, подрывает заряд ярко вспыхивая в большом облаке огня (горит нафталин), далее загорается бензин и шахид с безумным видом бежит на толпу. Вставить Ник Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
bSd Жалоба Опубликовано 3 июля, 2007 всё сторм, заява в ФСБ на тебя готова Вставить Ник Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
St0rm Жалоба Опубликовано 3 июля, 2007 Давно планирую "собрать" таки Ethernet-killer. ;-) Вставить Ник Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
bSd Жалоба Опубликовано 3 июля, 2007 после того как переключишься к неудачнегам Вставить Ник Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
St0rm Жалоба Опубликовано 3 июля, 2007 Ну ясен пень, не буду же я убивать хаб, на котором сижу... Вставить Ник Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Kovrov Жалоба Опубликовано 4 июля, 2007 наблюдать за зрелищем через веб-камеру. Гораздо смешнее. Че, еще никто не смеется? Хорошо! Тогда можно устроить следующее зрелище... а веб камера то зачем? тут все это на HDвидео писать - и в Голивуд отсылать за гонорары........ Вставить Ник Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Squidy Жалоба Опубликовано 4 июля, 2007 вчера ещё немного позаморачивался получилось вот: онлайн его можно наблюдать тут покачто ссылка Вставить Ник Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Igor Жалоба Опубликовано 10 июля, 2007 Предлагаю развить эту идею дальше. Взять микроконтроллер UB2022 (производитель UBICOM), воткнуть с одной стороны к нему датчик, с другой стороны Ethernet через реалтековский чип. Исходиники WEB-сервера под этот проц есть. Получиться датчик температуры, который можно втыкать в любой свитч. Вставить Ник Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
bSd Жалоба Опубликовано 10 июля, 2007 Предлагаю развить эту идею дальше. Взять микроконтроллер UB2022 (производитель UBICOM), воткнуть с одной стороны к нему датчик, с другой стороны Ethernet через реалтековский чип. Исходиники WEB-сервера под этот проц есть. Получиться датчик температуры, который можно втыкать в любой свитч. и выставить его с реальным адресом в инет, вот потеха то будет ping -f и нету датчика )) захлебнулсо ) Вставить Ник Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты