čtvrtek 2. května 2013

Velké digitální měření teplot s čidly DS18B20

Delší dobu jsem nosil v hlavě myšlenku měření teploty na klíčových místech otopné soustavy v mém domě. Kotel s relativně vysokým a hlavně neměnným výkonem plus velké množství vody v podlahovém vytápění (majícím velkou tepelnou setrvačnost) totiž způsobují cyklické přechody mezi stavem "je tu chladno, proč ještě kotel netopí" a stavem "je tu zbytečné horko, proč kotel topil tak moc". Chtěl jsem pochopit, jak vlastně celá ta otopná soustava funguje, protože věřím, že by se její regulace dala značně vylepšit - a na to jsem potřeboval vědět, jak se mění teplota v čase, tedy potřeboval jsem teplotu měřit, trvale zaznamenávat a průběžně zobrazovat.

Už dříve jsem sem tam narazil na informace o digitálním měření teploty, ale nakonec mě rozhýbaly k akci až následující dvě věci - jednoduchý český návod na Teploměr pro PC a levná čidla DS18B20 v mém oblíbeném e-shopu. Měl jsem radost, že jeden kus krásného integrovaného digitálního teplotního čidla s 12bitovou přesností a unikátním 64bitovým identifikačním číslem vyjde z Číny jen na 50 Kč, tak jsem tam začátkem listopadu 2012 objednal hned 4 kusy. A protože jsem chtěl čidla připojit k mému novému serveru, který bohužel nemá žádný sériový port, objednal jsem rovnou v Číně i adaptér z RS232 na USB, abych měl kam převodník pro DS18B20 zapojit (spoiler alert: dobře si ho prohlédněte, protože to je naposledy, co ho vidíte).


Týden před Vánoci zboží konečně dorazilo, ovšem tehdy jsem na něj z pochopitelných důvodů neměl čas. Ke stavbě převodníku pro připojení digitálních čidel na sériový port jsem se tak dostal až na Silvestra, takže jsem to udělal nedočkavě, rychle a bezohledně, starou dobrou metodou vrabčího hnízda tak, aby výsledek pasoval do plastového krytu konektoru Canon.



Při testech vše perfektně fungovalo, tak jsem neváhal připojit všechna 4 čidla naráz - jak vidno, zapojují se jednoduše paralelně - a odečítat teplotu na všech současně, abych se ujistit, že ukazují stejně. A skutečně, kalibraci mají výtečnou, rozdíly v teplotách byly maximálně desetinu stupně Celsia. Dokonce jsem použil i právě koupený teploměr a porovnával naměřené hodnoty čidel s ním, pořád všechno bezvadně sedělo. Byl jsem tedy připraven začít čidla rozmisťovat po domě.


Důležitá poznámka o sběrnicích: tato skvělá čidla mají tři vývody - zem, napájení a jeden vývod datový, který umožňuje obousměrnou komunikaci po speciální jednodrátové ("1-Wire") sběrnici vyvinuté právě pro tato čidla. Takže na propojení čidla (či mnoha čidel) s počítačem stačí tři dráty - napájení, zem a data. Ale výrobci čidel (firmě Dallas) se zdály tři dráty ještě moc, a tak vymyslel tzv. pasivní režim, kdy stačí pouhé dva(!) dráty - čidlo se totiž dokáže napájet z komunikace na datovém vodiči (nabije si v sobě kondenzátor a pak z toho chviličku žije). No a protože se v návodech psalo, že pasivní režim je super a sexy, šel jsem do něj taky a rovnou natáhl z pracovny do sklepa ke kotli jen dva dráty (upřímně řečeno jsem neměl moc na výběr, z nouze jsem použil kablík původně myšlený na přenos zvuku z PC v pracovně do TV v obýváku, ještě než jsem před 8 lety postavil MythTV HTPC přímo v obýváku).

Mechanickou část bych rád přeskočil, protože jsem ji tak trochu nedořešil. Nejdřív jsem si koupil skvělou hliníkovou lepicí pásku, o které jsem se domníval, že povede teplo, a tou jsem čidla přilepil přímo na měděné trubky s otopnou vodou. To se ukázalo nedostatečné - čidla se pod lepicí páskou uvolňovala, ztrácela 100% kontakt a měřené hodnoty se rychle začaly lišit od skutečnosti. Tak jsem to pojistil kovovou sponou (tou na zahradní hadice), kterou jsem ale nedokázal utáhnout dost pevně a zároveň dost šetrně - měl jsem pocit, že při utahování to čidlo rozdrtím. Tohle bych ještě rád nějak vylepšil. Stejně tak jsem nevyřešil rozumně nějaké konektory, takže jsem nakonec čidla napájel na dráty natvrdo. To má své výhody (žádné selhávající kontakty), ale i nevýhody (výměna čidel, přemístění čidel, výměna vodičů - všechno znovu pájet).

Pokojové rozvody k čidlům jsem udělal chytřeji: použil jsem existující ethernetové rozvody - tedy CAT5 kabeláž. Pro čidlo jsem po dlouhém váhání a pročítání zkušeností jiných vybral vodiče č. 4 a 5 (modrý a modrobílý), které jsou v normální počítačové síti nepoužité a zároveň jsou spolu hezky zkroucené (takže jsem si říkal, že sběrnice bude odolná vůči případnému okolnímu elektromagnetickému rušení). Čidla jsem nacvakl přímo do RJ45 konektoru a zastrčil do ethernetové zásuvky. Tím můžu měřicí bod jednoduše stěhovat po celém domě, kdekoliv je existující rozvod LAN...

Záhy jsem rozmístil všechna 4 čidla (voda do topení, voda z topení, voda z kotle a vzduch v obýváku), měření fungovalo skvěle, grafy ukazovaly nečekané souvislosti, bylo to úchvatné. Zachtělo se mi měřit ještě víc a tak jsem začal shánět další čidla. Velmi překvapivě jsem našel DS18B20 v místním obchůdku fy Official a to za ještě lepší cenu než v Číně - pouhých 37 korun!


Nakoupil jsem jich další hromádku, k tomu relé na 230V a začal plánovat, že počítač převezme úlohu termostatu v obýváku, který dnes řídí topení kotle pouze podle teploty vzduchu. Jistě dokážu naprogramovat dramaticky účinný a nesmírně inteligentní software, který bude řídit kotel tak skvěle, že doma nebude ani zima ani horko!

Na dobrou regulaci vytápění by se ale opravdu hodilo znát venkovní teplotu (abych tak trochu zapojil i ekvitermní regulaci), takže jsem protáhl 1-Wire sběrnici o dalších pár metrů ze sklepa až ven na stěnu domu a tam přidal další čidlo. Zároveň jsem natáhl další větev sběrnice doma a kromě obýváku začal měřit teplotu i v horním patře, protože obývák má největší solární zisk ze všech místností a to velmi často doplete regulaci kotle, který pak netopí, protože celý den svítilo Slunce.


A v tom se to celé po..kazilo. Teplotu měřím každou minutu a grafy zobrazuji za posledních 12 hodin, 48 hodin, a celý týden. A naráz začalo být nepřehlédnutelné, že software Digitemp občas vyčte z čidel naprostý nesmysl. Postupně jsem se pokoušel ty nejviditelnější hrubky odstraňovat - například "127,94" stupňů Celsia jsem brzy vyhodnotil jako chybu čtení, kdy z čidla soft vyčte jen 12 binárních jedniček. Stejně tak jsem brzy začal z grafu vynechávat hodnotu "85,0", o které jsem se dočetl, že přímo značí Error, tedy chybu čtení čidla.

Bohužel i přes tyto úpravy se pořád množily chyby, kdy teplota na některém čidlu v naprosto náhodné momenty "ustřelila" třeba o padesát stupňů Celsia jedním či druhým směrem, ačkoliv při dalším čtení o minutu později už bylo vše opět v pořádku. Tyto chyby měly také tendenci se akumulovat, kolikrát když se objevily, tak se pak objevovaly pořád, množily se a někdy pomohl až restart PC (?!). Jindy zase zmizely po několika hodinách samy. Byla to noční můra a pokusům a ladění jsem věnoval nesmírné množství energie a času. Podle tohoto by opravdu nešlo řídit kotel...


Začal jsem cíleně hledat další podobné nešťastníky na Internetu a brzy jsem našel celou řadu materiálů, ze kterých poměrně jednoznačně plynulo, že použití pasivního módu (tedy jen dvou drátů k čidlům) je naprosto hloupé a funguje to v podstatě jen náhodou a jen na velmi krátkých (desítky centimetrů) sběrnicích s jen pár čidly. Jenže já už v té době měl mohutně rozvětvenou síť čítající jistě desítky metrů nejméně třemi směry, a 8 čidel online. Aha, takže takto velké sběrnice nemohou v pasivním módu fungovat kvůli odporu a kapacitě vedení. Ach jo! Naštěstí nešťastníci měli několik tipů na řešení, které jsem postupně vyzkoušel:

1) pro 1-Wire sběrnici použít kroucenou dvoulinku, protože ta eliminuje rušení, co se může po cestě indukovat. Takže jsem pracně přepájel celé vedení ve sklepě od čidla k čidlu. Výsledná změna žádná, nebo možná dokonce k horšímu. Hledal jsem tedy dál a pak jsem se dočetl, že problém způsobuje kapacitance dlouhého vedení, která v podstatě "zaoblí" hrany digitálního signálu tak moc, že se stane nečitelným. Takže chyba, zpět na stromy!

2) pro 1-Wire sběrnici použít NEkroucenou dvoulinku, protože má menší kapacitanci. Opět jsem pracně přepájel celé vedení ve sklepě. Neměl jsem sílu předělat čidla nacvaknutá v RJ45 konektorech, takže jsem místo toho vypojil domácí měření úplně. Sběrnice se tím dramaticky zjednodušila a chyb čtení opravdu výrazně ubylo. Ovšem jak regulovat topení bez vnitřní teploty? Hledal jsem tedy další tipy a našel...

3) přidat kondenzátor před čidla. To se mi zdálo divné, vždyť jinde vysvětlovali, že to přestává fungovat právě proto, že dlouhá sběrnice už má příliš velkou kapacitanci, no ale zkusil jsem přidat kondenzátor tuším 22nF k nejvzdálenějšímu čidlu. Sběrnice totálně vytuhla, takže tudy ne.

4) No a poslední tip, který jsem našel, bylo přidat rychlou diodu v závěrném směru před každé čidlo (to myslím doporučuje sám autor Digitempu). Prý to ořeže nějaké zlé napěťové špičky na sběrnici nebo co. Koupil jsem tedy 8 Schottky diod a postupně je začal dávat paralelně k nejvzdálenějším čidlům. To se mi zdálo, že zabralo, ale spíš jsem měl jen štěstí na několikadenní klid před bouří, neboť chyby na sběrnici se (zřejmě po zapojení jedné domácí větve ke sběrnici) opět vrátily...

Začátkem února jsem se po stovkách pokusů dostal do stavu, že pokud jsem odpojil dvě domácí větve zapojené přes CAT5 a nechal jen větev sklepní, tak to fungovalo téměř bez chyb, ale jakmile jsem sběrnici zapojil "do hvězdy", chybové byly i desítky procent ze všech měření. Bylo to bohužel v souladu s tím, co jsem se nakonec dočetl o pasivních 1-Wire sběrnicích na webu, kde jasně doporučují žádné zbytečné odbočky či dokonce rozbočky a celou 1-Wire sběrnici jen jako jeden (nepříliš dlouhý) drát.

Už to peklo nebudu dál protahovat. Po mnoha týdnech v podstatě marných bojů jsem při pročítání dalších a dalších zdrojů informací o 1-Wire sběrnicích a neustálém narážení na zmínky o tom, že pokud chceme mít čidla připojená k Arduinu přes pasivní sběrnici, rozhodně musíme přidat rezistor 4k7 mezi zdroj napětí a tu sběrnici (kterým se sběrnice takto de-fakto "napájí"), mě napadlo zkusit takové napájení sběrnice přidat i na ten můj převodník. Tipoval jsem, že tam sice něco takového bylo původně myšleno i u tohoto převodníku pro DS18B20 na RS232 (zřejmě to má brát energii z DTR), ale třeba je tam "málo šťávy?".

Tak jsem udělal naprosto krutý HW hack: vzal jsem stavebnici "Logitronic 02" (krásné dětství, dnes bezostyšně zkopírováno v stavebnicích Voltík), vrazil do ní 4xAA nabíjecí NiMH články (= 5V, jak se pro TTL hodí) a přes potenciometr nastavený na zhruba 4kOhm připojil k mé 1-Wire sběrnici. A světe div se - všechny ty proklaté chyby, které mě dva měsíce zoufale trápily, naráz zmizely! 3.března jsem otevíral šampáňo...

Zřejmě jsem ta čidla na sběrnici měl skutečně napěťově "podvyživená", proto všechny ty chyby čtení, kdy čidla neměla dost energie dokončit datový přenos. V té době jsem už začínal podezřívat použitý USB-RS232 adaptér, a tady se mi to potvrdilo. Stačilo na zkoušku přepojit 1-Wire převodník do PC s reálným RS232 portem a teploty byly také bez chyb, i bez dodatečného napájení (proč mě tohle nenapadlo ani jednou za poslední dva měsíce trápení?!). Loni jsem koupil dva ty USB-RS232 adaptéry, jeden na toto měření teplot, druhý na připojení UPS, a oba zklamaly obrovským způsobem, po vyčerpávajícím hledání chyb všude jinde.

Výborná zpráva je, že i ta moje docela hustě rozvětvená a velmi dlouhá pasivní 1-Wire sběrnice s kroucenou dvoulinkou naráz začala fungovat dobře. Bedlivě jsem ji sledoval a čekal na moment, kdy selže, ale nic takového se nestalo, šlapala poctivě po další týdny a naměřila stovky tisíc měření bez jediné chyby! Takže všechny ty negativní články a špatné zkušenosti byly možná způsobené taky podobnou napěťovou podvýživou. Pokud je pasivní 1-Wire poctivě "napájen", vydrží zjevně hodně, rozhodně víc, než se píše na webu. Koncem února, v nejhorší situaci, jsem už byl psychicky připravený celé to předrátovat a předělat sběrnici na třívodičovou, ale teď si říkám, že to asi vydrží tak, jak to je.

Nakonec se vybily ty akumulátory držící 1-Wire sběrnici nad vodou a při následném pokusu napájet ji přímo z USB jiného počítače jsem zřejmě popravil ten USB-RS232 adaptér (čehož ovšem vůbec nelituji, protože ten si stejně nic jiného nezasloužil!). V té době jsem už byl pevně rozhodnutý postavit nový ďábelský počítačový termostat využívající tuto mohutnou síť teplotních čidel, ale ne na bázi PC, které nemá žádný rozumný výstupní port pro ovládání relé (ano, bohužel, paralelní port u mého "serveru" taky chybí), ale na bázi pro mě zcela nového světa - Arduina.

Doplnění: po téměř dvou letech má tento článek své pokračování zde.

50 komentářů:

  1. Zajímavý a přínosný článek! Osobně mě popisované potíže překvapily a po krátké úvaze si tipnul jejich příčinu v tom převodníku, ještě než jsem se dočetl k pointě :) Pomocí pěti čidel DS18B20 už více než rok úspěšně měřím teplotu v celém domě, mám je na pasivní sběrnici z klasického UTP kabelu délky cca. 50m a za celou dobu ani jedna chyba měření. Jako dedikovaný server mi slouží starý notebook s Pentiem 2 a nativním seriovým portem, běžící na Windows 2000 s aplikací LogTemp, která je funkčně zcela vyhovující, ale časem bych se rád zbavil závislosti na platformě i386 a udělal server z nějaké menší krabičky.

    OdpovědětVymazat
  2. nemam silu cist cele martirium podrobne :) Nicmene mam 8 1-wire cidel na cca 2x 120-150m vedeni do zahrady. figl je v tom, ze vedu k cidlu jen jeden volne lozeny drat - po pudach a podobne.. a nazpet jde signal fyzickou zemi -ano hlinou:). Funguje to dobre. U jednoho cidla mam v kazde vetvi pripojeny transil na 6V proti bource. Funkce sbernice se katastrofalne horsi, pokud pripojim na konec neco jeko kus dvoulinky, abych si vytahl zem a datovy drat k cidlu. Cili 1-wire se to nejmenuje jen tak :)

    OdpovědětVymazat
  3. +Petr Dobrovodsky, tak tomu ani nemůžu uvěřit! Jak hlínou? To tam máš/máte u každého čidla zemnící tyč 1,5 m hluboko zakopanou? A jak vypadá potom ten sběr dat u počítače, tam je to také nějak uzemněno? To mi teda hlava nebere...

    OdpovědětVymazat
  4. Zdravím,

    jsem student VUT FEKT a do svého bakalářského projektu dělám takovou malou inteligentní jednotku na podporu životních funkcí v akváriu. Jedním z implementovaných úkonů bude precizní regulace teploty a rozhodl jsem se pro měření použít one-wire čidla ds18b20 ve spojení s AVR (konkrétně atmega16). Napsal jsem si v C vlastní knihovnu pro ty čidla, ale zatím zvládám jen základní provoz: - na sběrnici jedno čidlo, stačí mi 3drátové připojení.
    V současnosti (tento víkend) pracuju na analýze akvária jako tepelnou soustavu, ale mám jisté problémy (možná nedostatečně provedená HW část) loguje mi to občas nesmysly (výše popsané 127,9, a jindy zase uplně podivné hodnoty +-40C odlišné od reality)
    Bylo by možné získat váš email pro případnou konzultaci ? :)
    Díky Honza Slavotínek

    OdpovědětVymazat
    Odpovědi
    1. Pravděpodobně se jedná o HW chybu, není-li rovnou špatně napsaná ta "vlastní knihovna". Na AVR bych použil existující knihovny OneWire, případně rovnou DallasTemperature, které používám na Arduinu.
      Kontakt na mě je například přes G+, anebo Google najde všechny moje e-maily, stačí se ho zeptat :-)

      Vymazat
    2. Zdravím. Pro chyby přenosu, aby se vůbec nezobrazovaly, je dobré do programu zapojit vyhodnocení kontrolního součtu. Jinak výrobce nedoporučuje při více jak jednom čidle používat dvoudrát, ale pokud i tak chcete, řeší se to tranzistorem, který v době příkazu convert přemostí pull-up odpor a tím napájení přes datový vodič na okamžik posílí, v dalších fázích, tedy vyčítání, je datový vodič již připojen opět přes pull-up rezistor. Čím více je linka delší, tím se hodnota odporu poll-up snižuje.

      Vymazat
    3. Čekám na volný moment, abych sepsal pokračování tohoto příběhu, nyní už na Arduinu, které vyřešilo prakticky všechny komunikační problémy výše v článku popsané. Mám teď na dvoudrátové sběrnici o délce nejméně 30 metrů 5 čidel a vše funguje jak má. Pull-up stačí 1kOhm. Snad to brzy budu mít čas sepsat, bude to stát za to :-)

      Vymazat
    4. Ok:-) já už mám takový teploměr rovněž hotový, jen používám třídrát pro bezpečnost. Jenom pro zajímavost, teď oživuji teploměr s čidlem DHT22, rovněž digitální přenos, ovšem toto čidlo umí i vlhkost. A co je dobré, dva kusy kolem 160Kč.

      Vymazat
    5. Jj, můj digitální termostat, co řídí celou tu síť čidel, má v sobě navíc i DHT11. Bude popsáno, jako obvykle včetně negativních zkušeností :)

      Vymazat
    6. Zdravím, jak zapojit DHT22 do logtempu? Asi přes DS2435 že?
      Má někdo schéma? Díky moc

      Vymazat
  5. Zdravím, pomuže mi prosím někdo jak nainstalovat a sprovoznit digitemp pod linuxem ?? skype:gremgrem32 , icq 271967866
    mail : lukastvrznik@email.cz díky

    OdpovědětVymazat
  6. Zdravim,
    kdyby nekdo mel zajem o redudkci 1-wire na konektor RJ45 tak se muzete ozvat. Par mi jich navic zbylo ...

    http://aukro.cz/redukce-1-wire-snimace-na-rj45-konektor-ds18b20-i4270102203.html

    OdpovědětVymazat
  7. Tento komentář byl odstraněn autorem.

    OdpovědětVymazat
  8. Ja uz rok a pol fičím s 12 čidlami DS 18b20 a 4ks ds 2408 a 1ks ds 2423 na pasívnej zbernici o dlžke cca 40 metrov a programom logtemp regulujem a spínam konvektory v dome 8ks popritom aj meriam spotrebu el.energie. ale pri pokuse merat teplotu na procesore notebuku pridanim vodiča dlhedo 30 cm a pripojením čidla okamžite zbernica padne .Takže vdaka za tip takisto som skusal vsetko mozne bol som tiez rozhodnuty prekáblovat.

    http://www.logtemp.php5.sk/teploty.htm

    OdpovědětVymazat
  9. DS18B20 pouzivam ve svych komercnich zarizenich. Po vyvojovych peripetiich se osvedcil Pull-Up odpor 2k2 v napajeni 5V, pro 3V napajeni 820R - v navodu se nedoporucuje "parasitic-mode", ale tridratkove napajeni zejmena pro teploty >100C.
    Hodne zdaru.
    Baxant

    OdpovědětVymazat
    Odpovědi
    1. jj, před 15 měsíci jsem to vyřešil, jen jsem ještě neměl čas to popsat.

      Vymazat
  10. Ahojky,
    taky používám DS " onewire " čidla, ale s programem LOGTEMP / mrsoft.fi / cca 8 let, který umí spoustu věcí navíc a je i česky. Pokud si stáhnete jinou verzi češtiny můžete si funkce bez problémů dopsat nejen měřící, ale i řídící funkce a tedy ovládat kdeco a kdekoliv. Momentálně používám verzi 2.25 / 18 typů čidel /, 32 měřících čidel / nejvíc jsem připojil 85 DS18x20 najednou - teoreticky nekonečno, ale pak nestíhá rychlost sběrnice RS , více jsem neměl / a 5 řídících do vzdálenosti 30 metrů. Vše propojeno konektory RJ11 + redukce a s kabelem MPFK4S-BAL BLACK kód: 651-198 značení podle GME.CZ. Čtvrtý vodič je použit pro pomocné napájení serv a dalších blbostí. Pokud jen měříte, pak stačí dva vodiče. Vřele doporučuji použít RS232 neboť přes USB je problém / viz výše / s napětím. Použité PC sice bere asi jen 20W, ale i to je dost, proto zvažuji přechod na ARDU nebo RASPI

    OdpovědětVymazat
  11. Ahojky,
    taky používám DS " onewire " čidla, ale s programem LOGTEMP / mrsoft.fi / cca 8 let, který umí spoustu věcí navíc a je i česky. Pokud si stáhnete jinou verzi češtiny můžete si funkce bez problémů dopsat nejen měřící, ale i řídící funkce a tedy ovládat kdeco a kdekoliv. Momentálně používám verzi 2.25 / 18 typů čidel /, 32 měřících čidel / nejvíc jsem připojil 85 DS18x20 najednou - teoreticky nekonečno, ale pak nestíhá rychlost sběrnice RS , více jsem neměl / a 5 řídících do vzdálenosti 30 metrů. Vše propojeno konektory RJ11 + redukce a s kabelem MPFK4S-BAL BLACK kód: 651-198 značení podle GME.CZ. Čtvrtý vodič je použit pro pomocné napájení serv a dalších blbostí. Pokud jen měříte, pak stačí dva vodiče. Vřele doporučuji použít RS232 neboť přes USB je problém / viz výše / s napětím. Použité PC sice bere asi jen 20W, ale i to je dost, proto zvažuji přechod na ARDU nebo RASPI

    OdpovědětVymazat
    Odpovědi
    1. Díky za příspěvek, ale jak jsem již několikrát v komentářích výše naznačoval, už dávno mi tu měří nejen teploty Arduina. Popíšu snad brzy :-)

      Vymazat
  12. Dobrý den, s raspberrym provozuji 12čidel ds18b20 které jsou připojené třídrátově do hvězdicového tvaru s délkou vedení cca 4m. Z počátku docházelo k chybám výjimečně že mě to zato nestálo řešit. Teploty jsem pouze zobrazoval na webu který je uložený na web serveru v raspim, ale poté co jsem vytvořil kontinuální grafy s knihovnou matplotlib začalo k chybám docházet relativně často nepravidelně někdy po hodině někdy po několika dnech. Zkusil jsem posílit zdroj pro raspberryho na 5V/5A a chyby jsou stále. Teploměry napájím z raspberryho 3.3V je možné že by ten zdroj nestačil pro 12 teploměrů? Nebo je nutný chladič na procesor? Pravda je že při tvorbě grafů je procesor u raspiho na 100%. Kdyby někoho něco napadlo děkuji za odpověď

    OdpovědětVymazat
  13. Nazdar kluci
    děkuji za inspiraci testoval jsem 5 čidel bud neukazovaly nic nebo ustřelovaly teploty cca na 30 m sběrnici. Zkoušel jsem různé návody odpory kondíky diody .... Nic. Nakonec jsem našel v šuplíku potenciometr 5k dal místo toho odporu. Když otáčím na jednu stranu teploty 0°C na druhou 127°C najdu tedy střed a vše OK. Nyní mám 12 čidel po celém domě cca 300m sběrnici a jede bez jedinné chybky. Tak snad to někomu pomůže
    Radek Kašík

    OdpovědětVymazat
  14. DObrý den jsem student a zabývám se měřením pomocí DS18B20 1-wire Plánuju pomocí USB měřit teplotu člověka.Jelikož se v těchle věcích teprve zauučuji, mám zde pár otázek .Plánuju to taky dělat podle vašeho navodu spojeného s (http://trifid2.sweb.cz/teplomer/ Jestli jsem dobre pochopil tak potřebuji čidla DS18B20 1-wire pak kabel na který budou napojené potom seskládat obvod na RS232 pak koupit adapter na USB (zvládne USB napájet 3 čidla na vzdalenost 4 metrů?) a stáhnout DIgitemp program (snad funguje na WIN7)Poprosím vás o radu jestli si to dobře představuji nebo jestli to bude ještě složitejší. Děkuji za krásný článek dost mi pomohl a doufám že to úspěšně zvládnu :))

    OdpovědětVymazat
    Odpovědi
    1. Ano, ale doporučuji to tak nedělat a jít cestou mikrokontroléru za padesátikorunu.

      Vymazat
    2. kvůli ceně? já jsem se díval a nikde jsem nenašel pěkný návod na zapojení jaký čip a podobné :/ potřebuji hlavně aby to fungovalo:)

      Vymazat
    3. V posledním slově tohoto blogpost je link na jeho pokračování s Arduinem - a pro Arduino jsou doslova tisíce návodů, jak to zapojit. Myslím si, že to bude stabilnější než s tím adaptérem na RS232.

      Vymazat
  15. dobrý den funguje tento program Digitemp i na Win 7?

    OdpovědětVymazat
  16. áááá tak jsem našel náhodou tenhle článek s utrpením, které jsem si prožil tak před 5ti lety také:) Za každou cenu jsem chtěl použít 2drátové řešení, nakonec se ukázalo že problém se vyřeší použitím tří drátů a byl klid. Sice to není tak "sexy", ale v průmyslovém použití (teplotní korekce 3D stroje a délkoměru) to pracuje spolehlivě. Podotýkám že je nutná kalibrace a korekce čidel pro přesné měření, jinak ta čidla lžou klidně o 1C, ale se stálým offsetem, takže to použitelné je co jsem tak vypozoroval.

    OdpovědětVymazat
  17. áááá tak jsem našel náhodou tenhle článek s utrpením, které jsem si prožil tak před 5ti lety také:) Za každou cenu jsem chtěl použít 2drátové řešení, nakonec se ukázalo že problém se vyřeší použitím tří drátů a byl klid. Sice to není tak "sexy", ale v průmyslovém použití (teplotní korekce 3D stroje a délkoměru) to pracuje spolehlivě. Podotýkám že je nutná kalibrace a korekce čidel pro přesné měření, jinak ta čidla lžou klidně o 1C, ale se stálým offsetem, takže to použitelné je co jsem tak vypozoroval.

    OdpovědětVymazat
    Odpovědi
    1. Ano, neukazují všechny stejně - přestože podle informací od výrobce jsou kalibrované při výrobě...

      Vymazat
  18. Dobrý den,
    rád bych zjistil,jestli skutečné čidlo teploty(uložené kdesi v nitru
    DS 18B20) přijímá informaci o teplotě i jejích změnách pomocí izolačního
    pouzdra jako celku nebo spíše z nějaké lokality(např. písmeno P na
    zaoblené části pouzdra). A nebo změny teploty běží do izolovaného pouzdra
    spíše po 3 mohutných tepelně vodivých vodičích. Případně zda lze
    lupénkovou pilkou pouzdro otevřít,dostat se tak ke skutečnému čidlu
    bezprostředně a pomocí tepelně-vodivostní pasty jej přitisknout k místu,
    kde chceme tu skutečnou teplotu a její rychlejší změny pozorovat.

    OdpovědětVymazat
    Odpovědi
    1. nezapomeňte při tom řezání, že je uvnitř mikroprocesor a kondenzátor, tak ať je nepřeříznete.

      Vymazat
  19. Dobrý den, chtěl jsem poprosit jestli by někdo bych ochoten pomoci s programem LogTEMP. Na tomto foru jsem četl že pokud se do programu nahraje jina čeština, dají se tam přidávat jiné senzory atd. Budu rád za jakoukoliv odpověd vedoucí k řesení, na email uaz@email.cz.

    OdpovědětVymazat
  20. Vykašlete se na LogTemp, já osobně jsem si udělal na Raspberry měření s DS18B20 čidly + postupně přidal čidlo tlaku, vlhkosti atd. a vše ukládám do databáze + zobrazení a zpracování dat v php a je to.

    OdpovědětVymazat
  21. "Tak jsem udělal naprosto krutý HW hack: vzal jsem stavebnici ... vrazil do ní 4xAA nabíjecí NiMH články (= 5V, jak se pro TTL hodí) a přes potenciometr nastavený na zhruba 4kOhm připojil k mé 1-Wire sběrnici. A světe div se - všechny ty proklaté chyby, které mě dva měsíce zoufale trápily, naráz zmizely! 3.března jsem otevíral šampáňo..."

    Dobrý den, bylo by možné jsem umístit upravené schéma http://trifid2.sweb.cz/teplomer/Images/schema.gif dle odtavce v uvozovkách (tak jak jste připojil jakoby externí napájení) - jinými slovy, jak upravit schématko pro použití externího napájení pro čidel DS18B20. Moc děkuji.

    OdpovědětVymazat
  22. Dobry den,
    Sestavil jsem si teplomer ze 3 cidel ds18b20 na arduinu. Kdyz jsem sestavil teplomer na stole tak vsechny ukazuji realnou teplotu 22 st. Ale kdyz jsem je pripevnil na topeni tak uz pri teplote 45st ukazuji o 5st mene. Pri 70 stupnich je to uz o 10 mene. Vsechny 3 cidla ukazuji teplotu vzdy plus minus o 0,5st stejne. Cidla zkalibrovat nejdou a uz nevim co s tim. Napadlo by vas neco?
    Diky.

    OdpovědětVymazat
    Odpovědi
    1. dvě možnosti: buďto nemáte čidla DS18B20, ale jejich mizerné napodobeniny z Číny, které můžou měřit úplně blbě. Anebo čidla měří správně, ale nemáte je dobře tepelně připojena k topení, takže jsou částečně chlazena okolním vzduchem a tak ukazují méně než si myslíte, že by měla.

      Vymazat
    2. Čidla mám zastrčena pod izolací. Tam si myslím, že problém nebude. Nejspíš to budou mizerné napodobeniny. Ale vrta mi hlavou, ze ty cidla jsem kupoval samostatne a nechapu ze meri vsechny stejne spatne.
      Zkusim koupit original a porovnam.
      Kazdopadne diky.

      Vymazat
  23. Dobrý den,
    provozuji 1-wire sběrnici připojenou přes moduly RS232.
    Pokud použiji modul pro 2 vodičovou 1-wire (http://www.pavolmaria.org/elektronika/digitemp/images/digitemp_rs232_2.png, pak mi měří všech 8 čidel každé po 1s. Měření je bez problémů akoráte se mi do 1-wire dostává rušení. Pokud použiji adaptér pro 3 vodičovou 1-wire (http://www.pavolmaria.org/elektronika/digitemp/images/digitemp_rs232.png), pak se mi v programu logtem vynechávají čidla (tj. je velký rozdíl mezi celkovým počtem měření u jednotlivých čidel) ale měření je bez rušení. Navíc takto zapojené měření čte všechna čidla naráz. V tom si myslím, že je zakopaný pes. Nevíte, zda je možné nastavit v programu log temp čtení jednotlivých čidel postupně a né najednou.
    Moc děkuji za reakci.

    OdpovědětVymazat
  24. log_temp jsem neviděl 8 let. Mám dávno vlastní systém na měření nejen teplot na https://www.teploty.info/
    Čemu vadí a jaké vlastně rušení na 1-wire sběrnici, když vám to měří správně?

    OdpovědětVymazat
  25. Dobrý večer, děkuji za bleskovou reakci.
    Přikládám obrázek focený mobilem:
    https://imgway.cz/4Gic/20220122_215218.jpg
    Při dvouvodičovém zapojení se mi v měření objevují špičky i v řádu stupňů. U třívodičového zapojení se mi pak objevují velké rozdíly mezi celkovými měřeními jednotlivých čidel což si myslí, že je způsobeno tím, že se čidla čtou v jeden okamžik a né postupně jako u dvouvodičového zapojení.

    OdpovědětVymazat
    Odpovědi
    1. Přenos dat z čidel je digitální, takže žádné rušení se v měřených hodnotách objevit nemůže. Některá z vašich čidel jsou mizerné padělky/napodobeniny místo originálních čidel DS18B20 od Maxim Integrated, takže špičky v měření a chyby při čtení čidel vznikají kvůli tomu.

      Vymazat
    2. Děkuji za odpověď. Přiznám se, že toto mě vůbec nenapadlo. Může tedy nekvalitní čidlo rozhodit celou síť? Můžu Vás ještě požádat o odkaz na obchod kde lze koupit kvalitní zapouzdřená čidla DS18B20. Předem děkuji.

      Vymazat
    3. ano, padělek spolehlivě rozbije celou síť. Originální a přezkoušená čidla prodávám na https://obchod.teploty.info/

      Vymazat
    4. Děkuji za konzultaci, ještě Vás poprosím o radu, zda je možné nějakým způsobem odhalit takováto čidla v již existující síti 1-wire. Děkuji.

      Vymazat
    5. Po pátrání na internetu, jsem narazil na prográmek pro ardu. a připojil tedy síť k diagnostice.
      http://imgway.cz/s/d4RP
      Prográmek zjistil tři klony série B1. Myslíte si, že i tato čidla mohou za problémy, které jsem popisoval výše?
      Děkuji za odpověď.

      Vymazat
    6. co je to prosím za programek, který zjistí, že se jedná o klon?
      Můžete dát prosím odkaz?
      Děkuji

      Vymazat
    7. https://github.com/joysfera/DS18B20-tester je ten můj, ale existují i cizí, pokročilejší verze.

      Vymazat
    8. Pěkný den, já použil prográmek classify_fake_DS18B20.ino z této stránky:
      https://github.com/cpetrich/counterfeit_DS18B20
      http://imgway.cz/s/d4RP

      Vymazat
  26. Dobrý den, děkuji za odpověď.

    OdpovědětVymazat