Hlavní navigace

Nejjednodušší online teploměr (2)

11. 4. 2003
Doba čtení: 4 minuty

Sdílet

Po přečtení článku "Nejjednodušší online teploměr" jsem se rozhodl k napsání tohoto článku. Hned na úvod se ale sluší poznamenat, že se chci pouze podělit se svými zkušenostmi, jak lze provozovat podobný teploměr, nechci se pouštět do diskuse, zda je ještě jednodušší, levnější apod. Nejde o nic jiného než o některým známý projekt DigiTemp, jehož autorem je Brian C. Lane.

Úvod

Jádrem celého DigiTempu je osvědčená řada „digitálního teploměru“ (DS18S20 a další) výrobce Dallas Semiconductor. V krátkosti některé vlastnosti:

  • jedná se o integrovaný mikroprocesor s unikátním číslem a kalibrací přímo na čipu,
  • komunikace probíhá po datové sběrnici 1-wire, tzn. odpadá „venkovní“ nepřesnost a kalibrace,
  • základní přesnost měření je +/-0.5 &degC; (dá se softwarově zvýšit),
  • možnost nastavení dolní a horní teploty pro funkci teplotního komparátoru apod.

Pro detailnější informace (o komunikačním protokolu) doporučuji katalogové listy této součástky nebo ještě lépe součástek ostatních, které komunikují po již zmíněné datové sběrnici 1-wire.

Hardware

Připojení čidla jsem realizoval přes tzv. pasivní adapter DS9097, který se připojuje na sériový COM port. Jak již bylo poznamenáno, každý „teploměr“ má jedinečné číslo již z výroby. Toho se s výhodou využívá pro připojení více čidel přes jediný adapter. Počet čidel je teoreticky neomezený, prakticky je limit pouze v délce a kvalitě kabelů k čidlům. Vlastní adaptér si popíšeme trochu podrobněji, jelikož dle mých zkušeností je konstrukce navržena „dosti fest“, tzn. vyžaduje přesné specifikace ani ne tak vlastních součástek, ale především „kvality“ COM portu, a zde je jádro problému. Adaptér je třeba v případě nutnosti doplnit o trimr podle obrázku. Výhodou je, že se při jeho nastavování obejdete i bez měřícího přístroje. Pokud budete mít štěstí, bude vám adaptér fungovat ihned napoprvé i bez zmíněné úpravy.

schéma DS9097


Další možností je použít tzv. aktivní adaptér DS9097U, což ale nebyla moje volba. Tento adaptér sice nabízí možnosti připojení dalších čidel fy Dallas, nicméně stojí řádově stovky Kč. Pro základní měření teploty zcela dostačuje pasivní adaptér za pár Kč.

Software

Dříve byly udržovány samostatné verze pro každý adaptér (způsob komunikace s pasivním resp. s aktivním adaptérem je zcela odlišný). Verze 3 a vyšší byla zcela přepracována a nyní již podporuje oba adaptéry. Není asi třeba zdůrazňovat, že se jedná o konzolovou aplikaci, která sama o sobě „pouze“ získá hodnoty z jednotlivých čidel.

To, co vás ale možná nadchne (stejně jako mě), je provázanost se známým a používaným projektem pro tvorbu grafů RRD TOOL – autor Tobi Oetiker (známější asi projektem MRTG). Tím jsme ale malinko odbočili. Celou sílu projektu DigiTemp vidím v jednoduchosti instalace, žádné kalibraci a právě v již zmíněné návaznosti na RRD Tool. Kdy můžete získat celkem slušný grafický výstup, aniž byste museli cokoli dalšího programovat (viz obrázek)

grafický výstup


Celý projekt je šířen jako Open Source pod GNU licencí.

Instalace

Vlastní instalace je poměrně jednoduchá, já jsem použil instalaci ze zdrojového kódu. Ta je zde částečně popsána. Jediné, co musíte mít, jsou přístupová práva k sériovému COM portu.

make ds9097

nebo make ds9097u dle použitého adaptéru,

digitemp -sttySx -i

pro vytvoření konfiguračního souboru a především pro zjištění připojených čidel. Pokud vše funguje, měli byste vidět něco podobného:

Searching the 1-Wire LAN
105E52460008004F : DS1820 Temperature Sensor
10F367460008000F : DS1820 Temperature Sensor
ROM #0 : 105E52460008004F
ROM #1 : 10F367460008000F
Wrote .digitemprc

Pokud nelze nalézt čidla, máte nejpravděpodobněji problém s adaptérem a budete ho muset doplnit o trimr. K jeho nastavení stačí celý postup několikrát opakovat s jeho současným otáčením, až se čidla detekují. To je jediný možný zádrhel na celém zapojení.

# zjisteni teploty kazdych 5min
00-59/5 * * * * /log_temp
01-59/5 * * * * /temp-minmax
01-59/5 * * * * /temp-minmax-7d

Toto je příklad crontabu, který spouští perlovské skripty (jsou součástí DigiTempu) pro načtení teplot z čidel s následným uložením do databáze.

Mechanická konstrukce

Vlastní adaptér jsem postavil systémem vrabčího hnízda přímo do konektoru Cannon SUB-9. Proto nemá smysl hovořit o postupu konstrukce. V zadní části konektoru (viz levý obrázek) je trochu vidět svorkovnice, ke které se připojují čidla. Pro vlastní připojení čidel jsem zvolil kvalitní stíněný mikrofonní kabel. Pravý obrázek ukazuje tepelně smršťovací bužírku, která je přetažena přes kabel a pouzdro TO92 čidla. Vodotěsné to asi úplně není, ale funguje to i venku.

zadní část konektorutepelně smršťovací bužírka


Ještě je dobré se zmínit, kde lze součástky sehnat. Všechny normální v GME nebo v GESu. S čidlem to už je malinko problém, ale řešitelný. Já jsem kontaktoval přímo dovozce fy Dallas. Jedná se o firmu HT Eurep, což je sice velkoobchod, ale jsou ochotni prodat i kusově. Cena čidla se pochopitelně liší dle typu, množství apod., ale dá se sehnat řádově od 150 Kč/ks. Celkovou cenu teploměru určuje de facto pouze počet a typ připojených čidel.

UX DAy - tip 2

Závěr

Považuji tento projekt za zdařilý, o čemž svědčí i řada spokojených uživatelů. Zde mi nedá, abych neřekl, že jsme mezi nimi také (odkaz Czech Technical University in Prague na autorových stránkách). Pokud budete spokojeni taktéž, autor rád přidá odkaz i na váš teploměr. Za zmínku ještě stojí to, že software DigiTempu existuje nejen pro Linux, ale i pro DOS a Windows. Asi jedinou drobnou (ale řešitelnou) vadou na kráse zůstává možný problém s pasivním adaptérem.

Rád bych poznamenal, že nemám nic společného s žádnou z uvedených firem.

Byl pro vás článek přínosný?

Autor článku