Termometr w komputerze...
Wstęp
Do wykonania układu potrzebne będą nastepujące elementy:
- dioda Zenera 3,3V
- dioda Zenera 5,1V
- dwie diody Schottkiego np. BAT85
- rezystor 1.5K (1/8W)
- czujnik temperatury np. DS18B20
- wtyk COM (DB9 żeński) z obudową
Cena układu
Na koszt wykonania całego układu składają się:
- Diody Zenera - za dwie sztuki około 0,40 PLN
- Rezystor - około 0,05 PLN
- Obudowa i wtyczka DB9 - około 1,30 PLN
- Diody Schottkiego - za dwie sztuki około 1,20 PLN
- Czujnik temperatury DS18B20 - około 5,00 PLN
Jak widać najdroższy jest właśnie czujnik... Koszt wykonania samego układu to około 3 PLN. Biorąc pod uwagę jego możliwości, łatwą obsługę i satysfakcję jaką daje zapewniam, że warto zbudować sobie taki układ.
Odczyt 1-wire przez RS232c
Do samego układu (zwanego często DS9097e) można podłączyć właściwie dowolne urządzenie pracujące na magistrali 1-wire. Z naszego punktu widzenia (pomiar temperatury) może to być jeden z czujników: DS1820, DS18S20, DS18B20, DS1821, DS1822.
Schemat układu
Schemat układu jest banalnie prosty - można go zlutować 'na pająka' wewnątrz wtyczki DB9.
Piny elementów serii DS18x20 można zobaczyć tutaj.
DS1820 nie jest już produkowany, zastąpił go nowocześniejszy DS18S20.
DS18B20 to udoskonalona wersja DS18S20 - można zwiększyć rozdzielczość
odczytów z 9 do 11 bitów. Poza tym jest całkowicie zgodny ze swoim
poprzednikiem i może go bezpośrednio zastąpić. Oba dysponują 0,5°C
dokładnością odczytów i nie wymagają kalibracji. Warto zauważyć, że
pomiędzy DS18B20 a DS18S20 nie ma zazwyczaj różnicy w cenie - warto
więc pomyśleć o nowszym układzie...
DS1821 i DS1822 to ubodzy krewni układów DS18x20 - np. dokładność
pomiarów ograniczono do 2°C...
Każdy z wymienionych elementów może być podłączony to przedstawionego
schematu a to czy da się z niego odczytać dane zależy wyłącznie od
programu jakim będziemy to robić. Ja używam Linuxa i chyba najlepszym
programem pod ten system jest Digitemp - nie ma żadnych zbędnych
wodotrysków - robi to co do niego należy i robi to dobrze. A poza tym
ma obsługę wszystkich wymienionych czujników i nie tylko ich...
Do magistrali 1-wire można podłączyć właściwie dowolną (na zwykle
warunki) ilość czujników - każdy z nich na własny ROM-ID po którym
program obsługujący układ może identyfikować każdy czujnik.
Oprogramowanie czujników
Tak wygląda przykładowa sesja z identyfikowania czujników na
magistrali w programie digitemp:
m@esmeralda digitemp-3.3.2$ ./digitemp_DS9097 -i -s /dev/ttyS0 DigiTemp v3.3.2 Copyright 1996-2004 by Brian C. Lane GNU Public License v2.0 - http://www.brianlane.com Turning off all DS2409 Couplers .. Searching the 1-Wire LAN 28941B60000000EF : DS18B20 Temperature Sensor 287F36600000002A : DS18B20 Temperature Sensor ROM #0 : 28941B60000000EF ROM #1 : 287F36600000002A Wrote .digitemprc
A tak wygląda odczyt temperatur:
m@esmeralda digitemp-3.3.2$ ./digitemp_DS9097 -a -s /dev/ttyS0 -q Oct 03 18:06:04 Sensor 0 C: 24.81 F: 76.66 Oct 03 18:06:05 Sensor 1 C: 18.88 F: 65.97
Przetworzone dane z czujników mogą prezentować się w ten sposob:
Prawda, że to wszystko jest banalne?
W przypadku jakichkolwiek pytań proszę o kontakt -- chętnie odpowiem i pomogę (w miarę możliwości).
Prawa autorskie
© Copyright by Miłowan Odya (jeśli nie zaznaczono inaczej)