Jednoduché připojení teploměru Dallas DS18B20 k USB portu

22.9.2014

 

Potřebujete hlídat teplotu v serverovně? Nebo kontrolovat teplotu kdekoliv venku/v bytě? Mám pro Vás jednoduché (a hlavně levné) řešení.

Obvod Dallas DS18B20 je digitální teploměr od firmy Dallas Semiconductor. Je navržen pro komunikaci po 1-Wire sběrnici navržené také firmou Dallas. Ke sběrnici je možné připojit paralelně několik desítek zařízení. Cena tohoto obvodu, který umí měřit teplotu bez jakékoliv kalibrace až s přesností 0.0625°C je okolo 1$.

Připojit tento obvod přímo k PC je celkem jednoduché. Máme 2 možnosti. Pokud má počítač ještě sériový port, můžeme použít toto schéma:

Bohužel u moderních počítačů bychom již hledali sériový port marně. Naopak USB portů mají taková PC většinou několik. Jak tedy připojit teploměr k USB portu? Jde to velice jednoduše. Stačí koupit převodník USB - RS232. Na eBay jich najdeme několik. Stojí od 1$ do cca 5$. Pro naši potřebu nám stačí ten nejlevnější. Je jedno, jestli je osazen čipem CH340, FT232AM, nebo PL2102. Ty nejlevnější za 1$ jsou většinou osazeny čipem PL2303.

Všechny tyto převodníky dělají to, že převádí TTL signály na úroveň RS232 (COM portu). Lze je použít jak ve Windows, tak v Linuxu. Pro Windows je nutné stáhnout ovladače odpovídající čipu, v Linuxu je většina těchto převodníků už v jádře.

Převodník vypadá nějak takto:

Teploměr DS18B20 můžeme k převodníku připojit dvěma způsoby. Vždy je nutno propojit natvrdo signály RX a TX na převodníku. V prvním případě použijem třívodičové připojení. Vdd (3) teploměru připojíme na +5V převodníku, DQ (2) na zkratované signály RX a TX, a GND (1) na GND převodníku.

Nějak takhle:

V druhém případě použijeme pouze dva vodiče.

Zapojíme je podle tohoto schématu:

Odpor okolo 4K7 připojíme na +5V a zkratované signály RX a TX. U teploměru DS18B20 propojíme piny VDD (3)  a  GND (1). K těmto propojeným pinům připojíme jeden vodič, druhý připojíme na pin DQ (2). K převodníku potom připojíme vodič VDD/GND na GND, a druhý vodič DQ na zkratované RX a TX.

Bude to vypadat nějak takhle:

Po připojení k převodníku:

Konektor navlékneme do smršťovací bužírky, ohřejeme, a vzniklou dutinu vyplníme tavnou pistolí:

Toto zapojení jsem testoval se stíněným kabelem dlouhým asi 7 metrů. I na tuto délku to měří teplotu naprosto bez problému.

Zapojení je možné použít nejen pro teploměr DS18B20, ale i pro všechna další čidla, která komunikují po 1-Wire sběrnici. Jedná se například o převodník napětí DS2438, čidlo vlhkosti HIH4000, nebo čidlo tlaku MPX4115


 

Software a použití nebudu popisovat, je toho plný internet. Např. ZDE: http://trifid2.sweb.cz/teplomer/

Dám sem jenom odkaz na programy:

iButton-TMEX and Developers Tool Kit
Program pro 1-Wire sběrnice (nutné nainstalovat v každém případě)
Programem se dají i načíst hodnoty z čidla

DS18B20_Logger.zip
Krátký prográmek na otestování funkce

digitemp-3.6.0.zip
Klasick
ý DigiTemp. Jedná se verzi jak pro Linux, tak pro Windows !! Jenom pozor - ve Windows verzi se zadává číslo portu trochu jinak.
Je třeba ho zadat jako digitemp_DS9097.exe -a -s /dev/ttyS3 pro port COM4 (S0=COM1, S1=COM2, atd.)
Zbytek návodu je stejný jako na stránce trifid2

 






Na hlavní stránku