- Potrebné materiály
- Úvod do snímača teploty DS18B20
- Predbežné požiadavky
- Schéma zapojenia
- Inštalácia knižnice LCD Adafruit na Raspberry P
- Povolenie rozhrania One-Wire v Pi
- Výstup / práca
Raspberry Pi je známy svojou výpočtovou silou a rozsiahlym využitím v oblasti IoT, domácej automatizácie atď. Avšak na to, aby akýkoľvek elektronický systém interagoval s reálnym svetom a získaval o ňom informácie, musí používať senzory. Pre tento proces sa používa veľa typov snímačov a požadovaný snímač sa vyberá na základe parametra, ktorý sa má merať, a jeho aplikácie. V tomto výučbe sa naučíme prepojiť teplotný snímač DS18B20 s Raspberry Pi.
DS18B20 je široko používaný teplotný snímač, a to predovšetkým v miestach, kde sú zapojené drsných prostrediach, ako chemický priemysel, banské závody apod Tento článok vám povie o senzora a ako to vyniká ďalší teplotný snímač a nakoniec rozhranie to s Raspberry Pi a zobrazenie teploty hodnotu na 16x2 LCD.
Potrebné materiály
- Snímač teploty DS18B20
- Malinový koláč
- 16 * 2 LCD displej
- 10k trim hrniec
- 10k Vytiahnite rezistor
- Nepál
- Pripojovacie vodiče
Úvod do snímača teploty DS18B20
DS18B20 je trojpólový snímač teploty, ktorý je k dispozícii v balení TO-92 (tranzistorový typ). Používanie je veľmi jednoduché a na začatie práce je potrebný iba jeden externý komponent. Na komunikáciu s ním tiež vyžaduje iba jeden pin GPIO z MCU / MPU. Typický teplotný snímač DS18B20 s názvom kolíka je uvedený nižšie.
Tento snímač je k dispozícii aj ako vodotesná verzia, v ktorej je snímač zakrytý valcovou kovovou rúrkou. V tomto výučbe budeme používať snímač normálneho typu tranzistora, ktorý je uvedený vyššie. DS18B20 je 1-drôt programovateľné teplotný snímač čo znamená, že vyžaduje iba dátový kolík zasielať informácie s Mikroradiče alebo mikroprocesorom dosiek, ako je Raspberry Pi. Každý snímač má pre seba jedinečnú 64-bitovú adresu, takže je tiež možné mať pripojených viac snímačov k rovnakému MCU / MPU, pretože každý snímač môže byť adresovaný jednotlivo na tej istej dátovej zbernici. Špecifikácia snímača je uvedená nižšie.
- Prevádzkové napätie: 3-5V
- Rozsah merania: -55 ° C až + 125 ° C
- Presnosť: ± 0,5 ° C
- Rozlíšenie: 9-bitové až 12-bitové
Teraz, keď vieme dosť o snímači, poďme ho prepojiť so systémom Raspberry Pi.
Predbežné požiadavky
Predpokladá sa, že váš Raspberry Pi už má nainštalovaný operačný systém a je schopný sa pripojiť na internet. Ak nie, postupujte podľa pokynov v návode Začíname s Raspberry Pi. Tu používame Rasbian Jessie nainštalovaný Raspberry Pi 3.
Tiež sa predpokladá, že k svojmu pi máte prístup buď prostredníctvom terminálových okien, alebo prostredníctvom inej aplikácie, prostredníctvom ktorej môžete písať a spúšťať programy v jazyku python a používať okno terminálu.
Schéma zapojenia
Ako sme už povedali v tomto tutoriále, prepojíme snímač DS18B20 s Pi a zobrazíme hodnotu teploty na 16 * 2 LCD obrazovke. Senzor a LCD by teda mali byť pripojené k Raspberry Pi, ako je uvedené nižšie.
Postupujte podľa schémy zapojenia a podľa toho pripojte. LCD aj snímač DS18B20 pracujú pomocou + 5V, ktoré poskytuje pin 5V na Raspberry pi. LCD -Li sa na prácu v 4-bitovom režime s Raspberry Pi, GPIO piny 18,23,24 a 25 sa používa k dátovej linke a GPIO čapy 7 a 8 sa používa pre riadiace vedenia. Potenciometer sa tiež používa k regulácii úrovne kontrastu displeja. Dátová linka DS18B20 je pripojená k pinu GPIO 4. Pamätajte tiež na to, že musí byť použitý 10K rezistor, ktorý vytiahne dáta tak vysoko, ako je to znázornené na schéme zapojenia.
Môžete postupovať podľa schémy zapojenia vyššie a vykonať pripojenia, alebo pomocou tabuľky pinov vyhľadať čísla pinov GPIO.
Postavil som obvod na nepájivej doske pomocou jednoprúdových vodičov a samčích vodičov, aby som vytvoril spojenie. Ako vidíte, senzor vyžaduje na prepojenie iba jeden vodič, a preto zaberá menej miesta a kolíkov. Po vykonaní všetkých pripojení môj hardvér vyzerá takto. Teraz je čas zapnúť pí a začať programovať.
Inštalácia knižnice LCD Adafruit na Raspberry P
Hodnota teploty sa zobrazí na 16 * 2 LCD displeji. Spoločnosť Adafruit nám poskytuje knižnicu na jednoduché ovládanie tohto LCD displeja v 4-bitovom režime, pridajme ho teda k nášmu Raspberry Pi otvorením okna terminálu Pi a vykonaním nasledujúcich krokov.
Krok 1: Nainštalujte git na svoje Raspberry Pi pomocou nasledujúceho riadku. Git umožňuje klonovať ľubovoľné súbory projektu na Github a použiť ich na vašom Raspberry pi. Naša knižnica je na Githube, takže musíme nainštalovať git, aby sme ju mohli stiahnuť do formátu pi.
apt-get nainštalovať git
Krok 2: Nasledujúci riadok odkazuje na stránku GitHub, kde je knižnica, stačí spustiť riadok na klonovanie súboru projektu do domovského adresára Pi.
git klon git: //github.com/adafruit/Adafruit_Python_CharLCD
Krok 3: Pomocou nižšie uvedeného príkazu zmeňte riadok adresára, aby ste sa dostali do súboru projektu, ktorý sme práve stiahli. Príkazový riadok je uvedený nižšie
cd Adafruit_Python_CharLCD
Krok 4: Vo vnútri adresára bude súbor s názvom setup.py , musíme si ho nainštalovať, aby sme nainštalovali knižnicu. Na inštaláciu knižnice použite nasledujúci kód
sudo python setup.py nainštalovať
To znamená, že knižnica mala byť úspešne nainštalovaná. Teraz podobne pokračujme v inštalácii knižnice DHT, ktorá je tiež z Adafruitu.
Povolenie rozhrania One-Wire v Pi
Pretože senzor DS18B20 komunikuje metódou One-Wire, musíme povoliť komunikáciu jedným vodičom na Pi podľa nasledujúcich krokov.
Krok 1: - Otvorte príkazový riadok a pomocou nižšie uvedeného príkazu otvorte konfiguračný súbor
sudo nano /boot/config.txt
Krok 2: - Do konfiguračného súboru pridajte riadok „ dtoverlay = w1-gpio “ (je obklopený obrázkom nižšie) a uložte súbor, ako je uvedené nižšie
Krok 3: - Pomocou klávesov Ctrl + X ukončite súbor a uložte ho stlačením klávesu „Y“ a potom klávesom Enter. Nakoniec reštartujte Pi pomocou príkazu
sudo reštart
Krok 4: - Po reštarte znovu otvorte terminál a zadajte nasledujúce príkazy.
sudo modprobe w1– gpio sudo modprobe w1-therm. cd / sys / bus / w1 / zariadenia ls
Vaše okná terminálu budú zobrazovať niečo také
Krok 5: - Na konci kroku 4, keď zadáte ls , vaše pi zobrazí jedinečné číslo, toto číslo sa bude líšiť pre každého používateľa na základe senzora, ale vždy bude začínať číslom 28-. V mojom prípade je to číslo 28-03172337caff .
Krok 6: - Teraz môžeme skontrolovať, či senzor funguje, zadaním nasledujúcich príkazov
cd 28-XXXXXXXXXXXXX.find ('t =') # nájsť "t =" v riadku, ak je trimmed_data! = -1: temp_string = lines # orezať strig iba na hodnotu teploty temp_c = float (temp_string) / 1000.0 # rozdelením hodnoty 1 000 získate skutočnú hodnotu return temp_c # návrat hodnoty na tlač na LCD
Premenné riadky sa používajú na čítanie riadkov vo vnútri súboru. Potom sa tieto riadky porovnajú, vyhľadá sa písmeno „t =“ a hodnota za týmto písmenom sa uloží do premennej temp_string . Nakoniec pre získanie hodnoty teploty použijeme premennú temp_c, v ktorej vydelíme hodnotu reťazca číslom 1000. Nakoniec vrátime premennú temp_c ako výsledok funkcie.
Vnútri nekonečna , zatiaľ čo slučka, máme len volať na vyššie definovanú funkciu získanie hodnoty teploty a jeho zobrazenie na LCD displeji. Taktiež každú 1 sekundu čistíme LCD, aby sa zobrazila aktualizovaná hodnota.
while 1: #Infinite Loop lcd.clear () # Clear the LCD screen lcd .message ('Temp =%.1f C'% get_temp ()) # Zobrazí hodnotu teploty time.sleep (1) # počkajte 1 s potom aktualizujte hodnoty
Výstup / práca
Ako vždy je celý pythonový kód uvedený na konci stránky, použite kód a skompilujte ho na svojom Raspberry Pi. Pripojte pripojenie, ako je znázornené na schéme zapojenia, a pred spustením programu sa uistite, že ste vykonali vyššie uvedené kroky na inštaláciu hlavičkových súborov LCD a umožnenie jednodrátovej komunikácie na pí. Po dokončení stačí spustiť program, ak všetko funguje podľa očakávaní, mali by ste byť schopní všimnúť si úvodný text. Pokiaľ nie, upravte potenciometer kontrastu, kým niečo neuvidíte. Konečný výsledok bude vyzerať asi takto nižšie.
Dúfam, že ste projektu porozumeli a nemali ste problém ho postaviť. Ak je váš problém uvedený inak, v sekcii komentárov alebo použite technickú pomoc na fóre. Toto je iba prepojovací projekt, ale akonáhle je hotový, môžete myslieť dopredu pri práci na meteorologickej stanici Raspberry Pi, teplotnom e-mailovom oznamovači a oveľa viac.
Kompletné fungovanie projektu ukazuje aj video nižšie, kde môžete vidieť aktualizáciu hodnoty teploty v reálnom čase.