Page
Stránky / Súčiastky ku Arduinu / Meranie teploty /
DS18B20 je digitálny senzor teploty s rozlíšením 9-12 bitov. Komunikuje pomocou rozhrania One Wire. Datasheet s podrobnosťami je na stránke výrobcu. Obvod je nutnosťou pre každého amatérskeho experimentátora a skôr alebo neskôr skončíte pri pokuse poskladať pomocou neho nejakú malú meteorologickú stanicu.
Bežný užívateľ si tento obvod kúpi v púzdre TO-92.
Obvod je možné pripojiť dvomi spôsobmi:
Na použitie je potrebné nainštalovať dve knižnice:
Pripojenie je jednoduché. Presne podľa popisu zapojenia. Treba si len vybrať, ktorý digitálny vstup bude čítať údaje zo senzora. V tomto prípade je to digitálny pin 2.
Rozlíšenie merania je nepriamo úmerné času, ktorý potrebuje senzor na A/D prevod.
Rozlíšenie v bitoch | Čas merania | Rozlíšenie merania |
---|---|---|
9 | 93,75 ms | 0,5 °C |
10 | 187,5 ms | 0,25 °C |
11 | 375 ms | 0,125 °C |
12 | 750 ms | 0,0625 °C |
Samozrejme, že každý bude chcieť merať v najvyššom rozlíšení a čo najčastejšie, ale treba rátať s viacerými problémami:
Presnosť senzora je:
V datasheete sa ešte môžete dočítať, že senzor obsahuje internú pamäť 8 bajtov, a z toho 3 bajty sa zálohujú do EEPROM. Sú to dva bajty pre alarm, čo je funkcia, ktorú v amatérskych podmienka asi nebudete potrebovať. Posledný bajt je konfiguračný register, v ktorom je uložené rozlíšenie merania.
Počas merania a počas zápisu do EEPROM senzor potrebuje prúd 1,5 mA.
Bez problémov môžeme pripojiť aj viac senzorov na jednu zbernicu One Wire. Každý senzor má svoje jedinečné číslo (adresu), pomocou ktorého s nim komunikujeme.
Pred pokusmi so senzorom je vhodné si otestovať, ći je senzor správne pripojený. Na to je použiteľný príklad, ktorý je dodávaný priamo s knižnicou OneWire. Volá sa DS18x20_Temperature.ino. Voči priloženému obrázku sa líši pinom, na ktorom je pripojený senzor. V príklade je použitý pin 10.
Po spustení vypíše na sériový port všetky nájdené senzory. Napríklad v tomto prípade vypísal informácie o dvoch pripojených senzoroch.
ROM = 28 8C 6E 45 6 0 0 8A Chip = DS18B20 Data = 1 A3 1 4B 46 7F FF D 10 CE CRC=CE Temperature = 26.19 Celsius, 79.14 Fahrenheit ROM = 28 49 BD 44 6 0 0 61 Chip = DS18B20 Data = 1 A2 1 4B 46 7F FF E 10 D8 CRC=D8 Temperature = 26.12 Celsius, 79.02 Fahrenheit No more addresses.
Druhá možnosť je príklad z DallasTemperature, ktorý sa volá Tester.ino. Ten vypisuje údaje v nasledovnej podobe.
Dallas Temperature IC Control Library Demo Locating devices...Found 2 devices. Parasite power is: OFF Found device 0 with address: 288C6E450600008A Setting resolution to 9 Resolution actually set to: 9 Found device 1 with address: 2849BD4406000061 Setting resolution to 9 Resolution actually set to: 9 Requesting temperatures...DONE Temperature for device: 0 Temp C: 24.50 Temp F: 76.10 Temperature for device: 1 Temp C: 24.50 Temp F: 76.10
Zoznam článkov, kde sa pracuje s týmto senzorom teploty:
Ak používate viac senzorov v jednom programe a potrebujete ich od seba jasne odlíšiť, nevyhnete sa vytvoreniu zoznamu adries jednotlivých senzorov. V tomto článku si vytvoríme program, ktorý nám túto činnosť uľahčí. Výsledkom bude pole adries v C++, ktoré môžete následne využívať v ďalšom kóde.
Táto stránka slúži ako úvodná strana ku zobrazovaniu meraných hodnôt pomocou sviečkových grafov. Tieto grafy umožňujú lepšie analyzovať veľké množstvá pomaly sa meniacich hodnôt. Primárne sa používajú vo finančnom sektore, ale rovnako dobre môžu poslúžiť aj pre Arduino. Pomocou neho sa toho veľa meria a nie vždy je obyčajný graf s nameranými hodnotami to najlepšie, čo môžete použiť.
Sviečkové grafy (candlestick) sú obľúbeným spôsobom vizualizácie údajov vo finančnom sektore. Tieto grafy používajú štyri hodnoty (open, high, low a close), ktoré slúžia na výpočet sviečkového grafu. V tomto článku sa pozrieme na to, ako nám tieto grafy môžu pomocť lepšie vizualizovať merané hodnoty.
V dnešnom dieli prerobíme sviečkové grafy z celých čísiel na reálne. Toto bude iba drobná zmena voči pôvodnému algoritmu, pretože sme ho od začiatku písali cez šablóny. Vďaka tomuto kódu budeme môcť v nasledovnom článku zobrazovať reálnu teplotu zo senzora DS18B20.
V záverečnom článku celej série si zobrazíme reálne údaje zo senzora DS18B20 pomocou sviečkových grafov. Jedna sviečka bude ukazovať hodinový vývoj teploty a teplotu budeme merať každých desať sekúnd. Výsledok budeme zobrazovať na displeji Nokia 5110.
V dnešnom článku si ukážeme, ako je možné výstup z Arduina parsovať v javascripte. Arduino bude merať teplotu pomocou senzora DS18B20 a výsledky bude odosielať na sériový port. Obsah zo sériového portu budeme spracovávať pomocou kódu v Node.js a budeme si ho transformovať do objektov. Získané objekty môžeme následne spracovávať.
Integrovaný obvod na meranie teploty DS18B20 sa môže zapojiť dvomi spôsobmi. V normálnom zapojení sa na pin 3 pripojí VCC a obvod sa napája odtiaľ. Druhou možnosťou je prepojiť navzájom piny 1 a 3 a oba pripojiť na GND. Vtedy sa obvod prepne do parazitického režimu a napája sa priamo z dátového vodiča.
V tomto článku si vyrobíme miniatúrny teplomer. Použijeme na to mikrokontrolér ATtiny85 a integrovaný obvod DS18B20. Výsledok budeme zobrazovať na displeji TM1637. Zapojenie súčiastok je jednoduché a celý projekt si možno postaviť na breadboarde.
V dnešnom článku by som chcel začať pracovať s témou jednoduchého teplomera, ktorú budem postupne vylepšovať. V prvom článku si navrhneme jednoduchý teplomer pomocou mkrokontroléra ESP8266 a integrovaného obvodu DS18B20. Výsledok budeme zobrazovať na OLED displeji. Toto základné zapojenie nám poslúži aj v ďalších článkoch, v ktorých sa budeme snažiť odoslať zozbierané údaje o teplote na Internet do služby, ktorá je určená na zber a vizualizáciu hromadných údajov.
Node-RED vie pracovať so sériovým portom. V tomto článku si na sériový port pripojíme Arduino a senzor teploty DS18B20. Arduino bude výsledky merania odosielať cez sériový port a Node-RED ich bude parsovať do podoby, ktorá umožňuje ľahšie spracovanie. Tok v Node-RED bude prispôsobený tak, aby vedel spracovať údaje z viacerých senzorov teploty DS18B20.
V predchádzajúcich článkoch sme sa naučili vytvoriť HTTP server pomocou mikrokontroléra ESP8266. Doteraz sme zobrazovali statické stránky. Postupne sme sa naučili zobraziť stránky, ktoré boli v zdrojovom kóde programu, alebo boli uložené v súborovom systéme SPIFFS. Dnes sa posunieme o kus ďalej. Statickú stránku nahradíme dynamickou stránkou, ktorá bude zobrazovať teplotu. Teplotu budeme merať pomocou integrovaného obvodu DS18B20.
V dnešnom článku prepojíme dve úžasné technológie. Node-RED a jeho toky nám budú slúžiť ako server a ESP8266 budeme používať ako HTTP klienta, ktorý bude na server odosielať nameranú teplotu. V tomto článku využijeme vedomosti z dvoch predchádzajúcich článkov. Arduino nahradíme za ESP8266 a meranú teplotu nebudeme prenášať cez sériový port, ale pomocou protokolu HTTP. V Node-RED budeme používať HTTP server, na ktorý bude ESP8266 odosielať nameranú teplotu. Poďme na to.
05.07.2016