DS9097 można nazwać konwerterem RS232C<->1-wire. Jest to bardzo prosty układ pasywny, składający się z 4 diod, rezystora i gniazda DB9. Wszystkie elementy, łącznie z układem DS18b20 można kupić za mniej niż 6zł (ceny ze sklepu internetowego). W pobliskim sklepie RTV, w którym czasem kupuję części elektroniczne musiałbym za wszystko zapłacić nieco więcej, ale i tak poniżej 10zł. Schemat jest bardzo prosty i całość można polutować bez płytki drukowanej:
Niezbędne części:
Tak wyglądały moje elementy przed zmontowaniem:
Oznaczenia poszczególnych pinów w gnieździe DB9 ułatwiają montaż, często są one ponumerowane na plastikowej części:
Warto rozplanować montaż i przygotować elementy, by całość zmieściła się w pająku w obudowie gniazda. Ja na początku połączyłem ze sobą diodę Zenera 6,2V D2 i diodę Schottkiego BAT85 D3 (anoda do anody, katoda do katody), tak samo postąpiłem z R1 i D4:
W diodzie Zenera 3,9V D1 warto skrócić anodę do 5mm (nóżkę od strony obudowy bez czarnej kreski), drugą końcówkę, czyli katodę należy wygiąć w stronę anody i uciąć równo z nią. Odstęp między nóżkami powinien pozwalać na wsunięcie ich do 4 i 5 pinu gniazda DB9.
Lutowanie rozpocząłem od anody diody D1 wsuniętej w 5 pin DB9. Jej katoda została włożona do 4 pinu, razem z katodami diod D2 i D3 skróconymi do ok. 10mm od obudowy. Anody wygiąłem tak, by końcówka weszła do 2 pinu gniazdka. Końcówkę rezystora R1 i anody diody D4 skróciłem do 5mm, wsunąłem w pin 3 i zalutowałem. Pozostałą nóżkę okręciłem wokół anod diod D2, D3 i zespoliłem kropelką cyny. To miejsce stanowi masę dla układu U1 DS18b20 i należy tam przylutować jedną żyłę przewodu. Druga musi łączyć się z pinem 4 gniazdka, czyli z katodami D1, D2, D3. Opis może wydawać się zagmatwany, więc warto spojrzeć na poniższe zdjęcie:
Do końca przewodu dolutowałem czujnik DS18b20 – połączone nóżki 1 i 3 do żyły przylutowanej do pinu 2 gniazdka, środkową nóżkę do żyły połączonej z pinem 4. Poniższy rysunek rozwieje ewentualne wątpliwości w numeracji końcówek:
Budując mój konwerter, wzorowałem się na układzie Cezarego Jackiewicza, który można znaleźć na jego stronie: http://eko.one.pl/?p=Termometr.
Do DS9097 można podłączyć więcej niż jeden czujnik DS18b20, każdy z nich ma unikalny 64 bitowy adres. Łączy się je równolegle.
Tak prosty konwerter ma również ograniczenia – kabel z czujnikami nie może być dłuższy niż 30 metrów (nie sprawdzałem) a w tym modelu zasilania (czujnik pobiera prąd z linii danych) można mierzyć temperatury do 70°C.
Swój DS9097 zbudowałem właśnie ze względu na możliwość stworzenia systemu monitorującego temperaturę opartego na Linuksie, który można zainstalować na byle komputerze, terminalu czy routerze za kilkadziesiąt złotych.
Test konwertera przeprowadziłem na moim poczciwym IBM (o którym pisałem tu: Bardzo tani komputer dla elektronika amatora). Pracuje on pod kontrolą systemu Linux Mint 14. Zainstalowałem popularny digitemp (apt-get install digitemp) i podłączyłem mój układzik do 2 portu RS232, po wydaniu komendy:
digitemp_DS9097 -i -s /dev/ttyS1 -a
program zwrócił mi:
Czyli sukces! Wszystko działa. Gdybym podłączył układ pod 1 port RS, ttyS1 musiałbym zastąpić przez ttyS0. Jeśli wykonanie komendy zakończy się na Searching the 1-Wire LAN, to znaczy, że mamy błędnie zmontowany układ, lub próbujemy odczytać dane nie z tego portu COM. Jeśli otrzymamy komunikat o braku uprawnień do portu, najprościej będzie wykonać powyższą komendę jako root.
Nie każdy posiada port RS, postanowiłem więc sprawdzić, czy układ działa z przejściówką USB<->RS232 opartą o układ PL2303, a właściwie jego podróbkę (więcej o tym kablu pisałem tutaj: Kabel USB-RS232 Prolific PL2303 i błąd kod 10). Wtyk USB wsadziłem do komputera, do drugiego końca dołączyłem zbudowany konwerter i wydałem komendę:
digitemp_DS9097 -i -s /dev/ttyUSB0 -a
i otrzymałem wynik:
Łatwiej niż w Windowsach – nie trzeba instalować sterowników do przejściówki, ustawiać portu COM itp. Podłączasz i działa :).
Właśnie jesteśmy o krok od zbudowania prawdziwego systemu monitorowania temperatury z powiadamianiem w wersji ekonomicznej via e-mail, w wersji Pro via sms :). Zamiast prądożernego komputera, można wykorzystać router z możliwością instalacji Linuxa. Można też zbudować własną stację meteo dostępną z poziomu www z pomiarem temperatury, wykresami itp. Bardzo przydatne materiały znajdują się na linkowanej wcześniej stronie eko.one.pl.
Na Windowsy również można znaleźć wiele programów obsługujących DS9097, które umożliwiają pomiar i zapis temperatury. Wygooglałem na szybko dwa programiki, których autorem jest Grzegorz Podgórski – więcej można znaleźć na jego stronie: http://www.grzesiek21.republika.pl/termo.htm.
Moja platforma testowa to netbook MSI Wind U270 z Windows 7 x64 i przejściówką USB<->RS232 na PL2303 skonfigurowaną jako COM3. W przypadku problemów z tym kablem, polecam wpis: Kabel USB-RS232 Prolific PL2303 i błąd kod 10.
Jako pierwszy uruchomiłem program Maxitermo, który po krótkiej konfiguracji portu, ruszył bez problemu:
Program dość ciekawy – można sobie ustawić dowolne tło, np zdjęcie lub plan monitorowanego obiektu i rozmieścić prostokąty z pomiarami temperatury tam, gdzie rzeczywiście znajdują się czujniki. Na screenie pomiar temperatury za oknem.
Drugi program to Termo – aplikacja mimo swojego wieku, podobnie jak pierwsza, bez problemu uruchomiła się w 64 bitowym Windowsie.
Swój interfejs pomiarowy zbudowałem z myślą o całodobowym logowaniu temperatury zewnętrznej, coś na wzór rozwiązania, które można znaleźć na stronie eko.one.pl. Zaopatrzyłem się już w terminal HP5720, którego jednym z zadań będzie obsługa digitempa i serwera www. Opis takie rozwiązania zamieściłem tutaj: Odczyt temperatury przez internet.
Podziel się swoim zastosowaniem opisanego interfejsu DS9097, a może posiadasz inny układ?
Mamy w domu dość wiekowy (2012) Boombox Philips, model AZ385/12 używany przez dzieci głównie jako…
Mega tanie, bezprzewodowe moduły Internet of Things na dobre zadomowiły się w naszych sieciach. Od…
Pewnie nie każdy posiadacz tytułowej stacji lutowniczej wie, że posiada ona możliwość aktualizacji firmware'u. Producent…
Jakiś czas temu, przeglądając Aliexpress natknąłem się na ciekawy shield do Arduino Nano. Według opisu…
W mailach i komentarzach kilka razy przewijała się prośba o ten wpis. Chodzi o aktualizację…
Dziś tematyka audio, a nawet audiofilska. Uznany wzmacniacz słuchawkowy Lehmann Black Cube Linear o dość…
Zobacz komentarze
Artykuł bardzo fajny.
Jednak DS9097 jest jedynie konwerterem RS na 1 -wire, nie jest termometrem.
Czy się mylę?
Tak, DS9097 jest konwerterem, co też znajdziesz w tekście. Po podłączeniu DS9097 i DS18B20 otrzymujesz termometr.
Witam, czy mógłbym prosić o jakieś wsparcie? Posiadam MSI GE70 i Windows 8,1 x64. Zmontowałem układ z dwoma termometrami. Działa na linuksie (chociaż z opóznieniem). Niestety nie potrafię sobie poradzić pod Windowsem. Zainstalowałem poprawne sterowniki. Kabel jest wykrywany i "działa poprawnie" na porcie COM3. Wchodzę do aplikacji Maxitermo i tam "wyszukiwanie sensorów" bez końca. Nie wiem co jeszcze mógłbym zrobić...
Witam,
Czy ktoś ma zarchiwizowane te programy Maxitermo oraz TERMO? Niestety ze strony republiki nie można ich już pobrać :(
Jeśli tak to bardzo proszę o udostępnienienie.
Z góry dziękuję.