Monitoring temperatury w Linuksie

ArticleCategory: [Choose a category, translators: do not translate this, see list below for available categories]

Hardware

AuthorImage:[Here we need a little image from you]

Stefan Blechschmidt

TranslationInfo:[Author + translation history. mailto: or http://homepage]

original in de Stefan Blechschmidt 

de to en Jürgen Pohl

en to pl Miros�aw Majka

AboutTheAuthor:[A small biography about the author]

B�d�c elektrykiem zosta�em posadzony przed monitorem stacji roboczej CAD w celu rozwijania pewnego prze��cznika i stacji kontroli. Najwyra�niej zarazi�em si� wtedy nieznanym "wirusem" i dobrze mi z tym.

Abstract:[Here you write a little summary]

Serwery linuksowe sprawuj� si� odpowiedzialnie i bezpiecznie, nie potrzebuj� specjalengo nadzoru, po prostu dzia�aj�, dzia�aj� i dzia�aj�... Ale co si� dzieje, kiedy ma�emu pingwinkowi zaczyna by� za gor�co? Ostatnie lato nam nie�le pokaza�o: powinni�my sprawi� naszemu ma�emu przyjacielowi system monitoringu temperatury. Ten artyku� poka�e Wam jak zainstalowa� w�a�nie taki system za cen� ok. 10 Euro.

ArticleIllustration:[One image that will end up at the top of the article]

title image

ArticleBody:[The main part of the article]

Komponenty

Brian C.Lane napisa� program dla czujnika temperatury DS1820 from DALLAS Semiconductor Nie jest trudno z�o�y� omawiany system kontroli temp. przy u�yciu dw�ch takich komponent�w i kilku innych cz�ci.

Uwaga:
Brian C.Lane zmodyfikowa� swoj� stron� i zaprzesta� rozwijania wersji u�ytej w tym artykule. Mo�esz zatem �ci�gn�� j� st�d: digitemp-1.3.tar.gz

Ci z Was, kt�rzy chc� u�y� aktualnej wersji digitemp-3.2.0.tar.gz mog� pobra� j� z http://www.digitemp.com/software.shtml .

Czujnik

Sensor pinout        Sensor picture
Czujnik zosta� oryginalnie wyprodukowany przez DALLAS Semiconductor, kt�ra to fimra zosta�a wcielona do Maxim/Dallas Semiconductor. Zgodnie ze specyfikacj�, czujnik mo�e mierzy� temperatur� w zakresie od -55°C do 125°C. Dane pomiarowe s� generowane jako cyfrowy sygna� d�ugo�ci 9 bit�w. Dodatkowo, ka�dy czujnik posiada 64 bitowy numer I.D., kt�ry pozwala pod��czy� wi�cej czujnik�w. Mo�liwe jest u�ycie stu czujnik�w na z��czu d�ugo�ci 300 metr�w.
Obw�d, kt�ry tutaj prezentujemy b�dzie dzia�a� tylko z dziesi�cioma czujnikami na z��czu 60 - metrowym. Obecnie u�ywam czterech czujnik�w na ok. 12 - metrowym z�aczu.

Mo�esz znale�� wi�cej informacji na temat samego czujnika w Specyfikacji.

Chcia�bym doda�, �� obw�d prezentowany tutaj mo�e mierzy� maksymaln� temperatur� w wysoko�ci 75°C, co powinno by� adekwatne dla naszego zastosowania.

Inne komponenty

Aby m�c pod��czy� czujnik do interfejsu szeregowego potrzebujemy kilku dodatkowych skladnik�w. Znajdziesz je w wi�kszo�ci sklep�w detalicznych z cz�ciami elektronicznymi, w internecie lub (najlepiej) w sklepie elektronicznym tu� za rogiem.

Ilo�� Identyfikator Typ Typ alternatywny
1 Opornik 1,5 k Ohm --------
2 Dioda Schottky 1N5818 BAT 43
1 Dioda Zener 1N5228 ZPY 3,9V
1 Dioda Zener 1N5234 ZPY 6,2V
1 Czujnik DS18S20 --------
1 Gnizdko, Szeregowe RS232C/9 --------
1 Pow�oka ��cznika SUB-D/9 --------
1 Deska do krojenia chleba Papier laminowany --------

Projekt interfejsu

Obw�d interfejsu jest stosunkowo �atwy do skonstruowania, wi�c wybra�em desk� do krojenia chleba jako podstaw�. Przepraszam za moj� ma�o sp�jn� prac� :-).


wykres obwodu


deska z przodu               deska z ty³u

Przy odrobninie umiej�tno�ci komponenty mog� zosta� zainstalowane we wtyczce interfejsu szeregowego.

Uwaga
Na tej stronie LinuxNetMag mo�emy znale�� artyku� o digitemp, jak r�wnie� i forum opisuj�ce obw�d przystosowany do pomiar�w wi�kszych ni� 75°C. Osobi�cie jeszcze nie testowa�em �w obwodu.

Obw�d interfejsu szeregowego

Dla naszego obwodu interfejsu potrzebne s� tylko po��czenia czujnika, ��cze VDD mo�e by� usuni�te. Ja je po prostu odci��em :-).

nie u¿yty pin

Oto tabela obwodu karty interfejsu, czujnika i interfejsu szeregowego.

Opis DB-25 DB-9 Czujnik
DTR 20 4 Data (PIN 2)
RXD 3 2 GND (PIN 1)
TXD 2 3  
GND 1 and 7 5  

Instalacja oprogramowania

Oprogramowanie jest dost�pne jako archiwum tar, mo�na je zainstalowa� w nast�puj�cy spos�b:

 tar -xvzf digitemp-1.3.tar.gz
w aktualnym katalogu.

W nowo zainstalowanym katalogu digitemp1-3 znajduje si� kod �r�d�owy, dokumentacja i kilka skrypt�w Perla, jak r�wnie� pliki binarne digitemp, kt�re mog� zosta� u�yte od razu.

Je�li digitemp jest wywo�ywany bez parametr�w, wtedy zobaczysz przegl�d mo�liwych opcji.

DigiTemp v1.3 Copyright 1997-99 by Nexus Computing

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.)
                -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:43 Sensor 0 C: 23.66 F: 74.59

"Pomoc" podpowiada, �e zainstalowane czujniki musz� zosta� zainicjowane. Dlatego musimy zdefiniowa� interfejs, do kt�rego nasz obw�d jest pod��czony, jak r�wnie� parametry pocz�tkowe.

Polecenie

digitemp -i -s/dev/ttyS0
za�atwia to. W tym przypadku obw�d interfejsu jest pod��czony do pierwszego portu szeregowego.

Oprogramowanie wykrywa czujniki, wiadomo�� podobna do tej powinna si� pojawi�:

DigiTemp v1.3 Copyright 1997-99 by Nexus Computing

ROM #0 : 1032724700080086
ROM #1 : 1092214400080089
Zauwa�amy, �e program wykry� 2 czujniki. Dodatkowo w aktualnym katalogu zostaje utworzony plik .digitemprc, kt�ry b�dzie zawiera� dane o czujnikach, interfejsie i formacie danych wyj�ciowych.

Poleceniem ./digitemp -a mo�emy przeczyta� dane wyj�ciowe czujnika. Prosz� zauwa�y� znak ./, nadal jeste�my w katalogu, ktory nie jest cz�ci� zmiennej $PATH, czyli miejsc, gdzie pow�oka szuka plik�w wykonywalnych.

Dane wyj�ciowe pomiaru

DigiTemp v1.3 Copyright 1997-99 by Nexus Computing

Sep 24 21:53:35 Sensor 0 C: 37.94 F: 100.29
Sep 24 21:53:38 Sensor 1 C: 10.62 F: 51.129

Przystosowywanie systemu

Aby zintegrowa� nasz program z systemem, musimy dokona� kilku poprawek.

Najpierw musimy skopiowa� plik binarny digitemp w miejsce, kt�re pozwala na uruchomienie go bez redefiniowania �cie�ki. Ja wybra�em /usr/local/bin/ dla tego celu. Ci, kt�rzy nie s� pewni co do �cie�ki, mog� to sprawdzi� poleceniem echo $PATH . Ponadto, plik .digitemprc z danymi inicjacyjnymi powinien zosta� skopiowany do katalogu domowego u�ytkownika, kt�ry b�dzie dokonywa� pomiar�w. Aby zapisywa� dane do pliku a nie na terminal, prze��cznik -l[PATH/FILE NAME] powinien zosta� u�yty.

Automatyczne pomiary

Teraz przyda�oby si� zautomatyzowa� nasze pomiary. Dobrze wypr�bowany cron powinien spe�ni� swoj� rol�. Poprzez crontab -u [USER] -e mo�emy ustawi� to dla ka�dego u�ytkownika. Wpis w /etc/crontab

0-59/15 * * * * /usr/local/bin/digitemp -a -l/var/log/digitemp.log
inicjuje digitemp aby ten mierzy� temperatur� co 15 minut i aby zapisywa� wyniki do /var/log/digitemp.log .

Poleceniem tail /var/log/digitemp.log mo�emy sprawdzi� ostatnie linijki pomiar�w. Je�li plik /var/log/digitemp.log nie jest generowany, prosz� sprawdzi� prawa dost�pu do plik�w.

Komentarz na zako�czenie

Archiwum tar zawiera kilka skrypt�w Perla do graficznej interpretacji wynik�w. Nie b�d� ich tutaj opisywa�. My�l� nad napisaniem kolejnego artyku�u o tym jak zbiera� dane czujnik�w w bazie mySQL i jak interpretowa� je poprzez stron� www.

Tak� sztuczk� mo�na osi�gn�c dzi�ki Perlowi u�ywaj�� funkcji mySQL, CGI, graphic.

Do pobrania

Linki / Opinie