Цифровой термометр задумывался изначально как бытовой прибор, который всю свою жизнь должен был провисеть где-нибудь на кухне у окошка, потому что владельца такого термометра, прежде всего, волнует, какая температура за бортом, на улице. Будет ли сегодня тепло в майке или надо одеть еще пиджак и галстук? Поэтому термометр имеет внешний датчик температуры, расположенный, например, на внешней стороне окна. Но многие хотят знать температуру и по эту сторону окна, тоесть внутри квартиры...
Рассматриваемая ниже схема позволяет подключать до 10 датчиков к одному COM-порту, подключение нужно производить параллельно указанному на схеме датчику температуры DS1820. Согласно спецификации, данный датчик работает при температурах от -55 C to 125 C, кроме того , каждый сенсор имеет собственный 64 битный ID, что позволяет и использовать одновременно несколько цифровых датчиков.
Принципиальная электрическая схема цифрового термометра на базе датчика DS-1820:
Используемые детали и компоненты:
U1 - стабилитрон BZX55C3V9 или 1N5228 (или любой аналог на 3,9 вольта);
U2, U4 - диод Шотки 1N5817 (вариант 1N5818 или 1N5819);
U3 - стабилитрон BZX55C6V2 или 1N5234 (или любой аналог на 6,2 вольта);
R1 - резистор мощностью 0,125 Вт и сопротивлением 1,5кОм;
DS1820 - цифровой датчик температуры или его аналоги (например, DS18S20);
COM - 9ти-пиновый COM-разъём для подключения к компьютеру.
Провод для подключения датчика (или нескольких) цифрового термометра можно делать длинной до 60м, для более длинных подключений будет необходимо подавать питание на третью ножку DS1820. До указанной длинны данная схема питает микропроцессорный датчик паразитным током по шине данных.
Данная схема не требует никаких настроек и начинает работать сразу после сборки.
Дополнительно несколько рекомендаций по поводу расположения датчиков цифровых термометров. Внешние термометры нужно укрыть от прямых солнечных лучей и от потоков воздуха комнатной температуры, дующих сквозь щели в рамах, если они устанавливаются на окне. Внутренние термометры необходимо так расположить так, чтобы они были максимально удалены от нагревающихся элементов.
Как снимать показания температуры с цифрового термометра?
Для этого существует программа Digitemp, которая распространяется под лицензией GPL. Скачать ее можно с официального сайта: www.digitemp.com . Кроме основной версии под Linux на сайте так же присутствует и версия под Windows.
После компиляции из исходников, перед началом работы , необходимо проинициализировать датчик, выполнив digitemp -i -s /dev/ttyS1 ( или /dev/ttyS0 , в зависимости к какому Com порту подключен дачтик ):
# digitemp -i -s /dev/ttyS1
DigiTemp v1.8 Copyright 1996-2005 by Brian C. Lane
GNU Public License v2.0
ROM #0 : 12301300000634
|
После этого можно снимать показания температуры, запустив программу с ключём "-а"
# digitemp -a
DigiTemp v1.8 Copyright 1996-2005 by Brian C. Lane
GNU Public License v2.0
Nov 13 15:42:18 Sensor 0 C: 8.69 F: 47.64
|
А запустив программу digitemp без ключей мы получим детальное описание всех команд:
# digitemp -i -s /dev/ttyS1
DigiTemp v1.8 Copyright 1996-2005 by Brian C. Lane
GNU Public License v2.0
Usage: digitemp -s<device> [-i -d -l -r -v -t -p -a]
-i Initalize .digitemprc file
-s/dev/ttyS0 Set serial port
-l/var/log/temperature Send output to logfile
-f5 Fail delay in S
-r500 Read delay in mS
-v Verbose output
-t0 Read Sensor #
-a Read all Sensors
-d5 Delay between samples (in sec.)
-c/path/configfile Configuration file
-q Quiet, no copyright banner
-n50 Number of times to repeat
-o2 Output format for logfile
-o"output format string" See description below
Logfile formats: 1 = One line per sensor, time, C, F (default)
2 = One line per sample, elapsed time, temperature in C
3 = Same as #2, except temperature is in F
#2 and #3 have the data seperated by tabs, suitable for import
into a spreadsheet or other graphing software.
The format string uses strftime tokens plus 3 special ones for
digitemp - %s for sensor #, %C for centigrage, %F for fahrenheight.
The case of the token is important! The default format string is:
"%b %d %H:%M:%S Sensor %s C: %.2C F: %.2F" which gives you an
output of: May 24 21:25:3 Sensor 0 C: 23.66 F: 74.59
|
Из вышенаписанного можно увидеть, что если мы желаем снимать температуру только в градусах цельсия (ºC), надо округлять градусы до десятых и необходимо убрать печать информационного баннера о версии программы - то достаточно запустить программу digitemp с следующими ключами:
# digitemp -a -q -o "%.1C"
8.4
|
Это очень удобно для сбора статистики, которую в последующем можно анализировать и представлять в графическом виде для удобства восприятия.