[LinuxFocus-icon]
<--  | Strona G³ówna  | Mapa Serwisu  | Indeks  | Szukaj

Nowo¶ci | Archiwum | Linki | O Nas
[an error occurred while processing this directive]
Stefan Blechschmidt
Stefan Blechschmidt
<sb/at/sbsbavaria.de>

O Autorze:

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.



Translated to English by:
Miros³aw Majka <mirek/at/ozimek.net.pl>

Zawarto¶æ:

 

Monitoring temperatury w Linuksie

title image

Notka:

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.


_________________ _________________ _________________

 

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

 

Dyskusja dotycz±ca tego artyku³u

Komentarze do dyskusji:
 Strona talkback 

<--, back to the index of this issue

Strona prowadzona przez redakcjê LinuxFocus
© Stefan Blechschmidt, FDL
LinuxFocus.org
t³umaczenie:
de --> -- : Stefan Blechschmidt <sb/at/sbsbavaria.de>
de --> en: Jürgen Pohl <sept.sapins/at/verizon.net>
en --> pl: Miros³aw Majka <mirek/at/ozimek.net.pl>

2003-10-28, generated by lfparser version 2.43