Termometr na DS1820 – Magistrala 1-Wire

DS18B20 to produkowany przez firmę Maxim IC/Dallas Semiconductor termometr cyfrowy z interfejsem1-Wire. Mierzy on temperaturę od -55°C do +125°C, zapewnia dokładność 0.5°C dla temperatur z zakresu -10°C do +85°C. Czujniki mogą być oddalone od komputera nawet o 100 m! Jeżeli jednak chcemy go podłączyć do portu RS232, musimy wykonać przystawkę. Najprostszą wydaje się być DS9097 Serial (COM) port adapter (zobacz kartę katalogową). Co prawda układ ten nie jest zalecany w nowych wdrożeniach, a proponowany jest jego zamiennik – DS9097U-S09 Universal 1-Wire COM Port Adapter, ale jego główną zaletą jest to, że jest bardzo prosty do wykonania, a przez to także niedrogi.

Wykaz elementów

  • DS18B20 – termometr cyfrowy,
  • R1 – 1.5kΩ (brąz-zielony-czerw.-złoty),
  • D1 – 3v9/500mW – dioda Zenera,
  • D2 – 6v2/200mW – dioda Zenera,
  • D3, D4 – BAT85 – dioda Schottky,
  • żeńska wtyczka RS232 DB9F.

Jako sklep internetowy, polecam TME

Opcjonalnie:

  • Obudowa do wtyczki DB9F,
  • D5 – Dioda LED 5mm lub 3mm!,
  • R2 – 1kΩ (brąz-czar.-czerw.-złoty).

Narzędzia:

  • Lutownica + cyna,
  • Nożyk

ds18b20_elementy

Rys. 1 Potrzebne elementy elektroniczne. Źródło: kml

Schemat elektryczny

ds18b20_sch1

 

 

 

 

 

 

 

 

 

Rys.2 Źródło: Termometr na DS1820.

ds18b20-schematds9097e

 

 

 

 

 

 

 

 

Rys. 3 Źródło: Termometr do PC DS1820.

ds18b20-pajak-th

 

 

 

 

 

 

 

 

Rys. 4 Rozmieszczenie elementów “na pająka”. Źródło: kml

Mając wtyczkę żeńską (z dziurkami), kierujemy w swoją stronę piny, do których lutuje się elementy. Obracamy ją tak, by strona, która ma więcej pinów była skierowana do nas. Lewy dolny pin to GND.

rs232

 

 

 

 

 

 

 

Rys. 5 RS-232

IMG_20130925_152629

 

 

 

 

 

Rys. 6 Widok na mój czujnik (koszulka termokurczliwa)

IMG_20130925_152703 

 

 

 

 

 

Rys. 7 Polutowany układ, gotowy termometr

IMG_20130925_152720

 

 

 

 

 

Rys. 8 Polutowany układ, gotowy termometr #2

Podłączenie

Najprostsza metoda to podłączenie wtyczki bezpośrednio do portu RS232 (COM).

Oprogramowanie

# Windows – nie testowane

# Linux
Narzędzie DIGITEMP

apt-get update
apt-get install digitemp

Po czym po prostu wydajemy komendę odczytu temperatury:

digitemp_DS9097 -i -s /dev/ttyS0 -a

U mnie wynik polecenia wygląda następująco:

root@Debian:~# digitemp_DS9097 -i -s /dev/ttyS0 -a
DigiTemp v3.5.0 Copyright 1996-2007 by Brian C. Lane
GNU General Public License v2.0 - http://www.digitemp.com
Turning off all DS2409 Couplers
..
Searching the 1-Wire LAN
1059318102080065 : DS1820/DS18S20/DS1920 Temperature Sensor
109D428102080005 : DS1820/DS18S20/DS1920 Temperature Sensor
ROM #0 : 1059318102080065
ROM #1 : 109D428102080005
Wrote .digitemprc
2013-09-25 15:40:59 16.62
2013-09-25 15:41:00 22.19

Jak widać, dwa czujniki, jeden jest na zewnątrz drugi w mieszkaniu.

Miłych pomiarów!