5.7 KiB
Měření teploty - Raspberry Pi
V této části lekce přidáte k Raspberry Pi teplotní senzor.
Hardware
Senzor, který použijete, je DHT11 senzor vlhkosti a teploty, který kombinuje 2 senzory v jednom balení. Tento senzor je poměrně populární a existuje mnoho komerčně dostupných senzorů, které kombinují měření teploty, vlhkosti a někdy i atmosférického tlaku. Komponenta pro měření teploty je termistor s negativním teplotním koeficientem (NTC), což je termistor, jehož odpor klesá s rostoucí teplotou.
Jedná se o digitální senzor, který má vestavěný ADC (analogově-digitální převodník) pro vytvoření digitálního signálu obsahujícího data o teplotě a vlhkosti, která může mikrořadič číst.
Připojení teplotního senzoru
Teplotní senzor Grove lze připojit k Raspberry Pi.
Úkol
Připojte teplotní senzor.
-
Zasuňte jeden konec kabelu Grove do konektoru na senzoru vlhkosti a teploty. Kabel lze zasunout pouze jedním směrem.
-
S vypnutým Raspberry Pi připojte druhý konec kabelu Grove do digitálního konektoru označeného D5 na Grove Base hat připojeném k Pi. Tento konektor je druhý zleva v řadě konektorů vedle GPIO pinů.
Naprogramování teplotního senzoru
Zařízení nyní může být naprogramováno pro použití připojeného teplotního senzoru.
Úkol
Naprogramujte zařízení.
-
Zapněte Pi a počkejte, až se spustí.
-
Spusťte VS Code, buď přímo na Pi, nebo se připojte pomocí rozšíření Remote SSH.
⚠️ Pokud potřebujete, můžete se podívat na instrukce pro nastavení a spuštění VS Code v lekci 1.
-
Z terminálu vytvořte novou složku v domovském adresáři uživatele
pis názvemtemperature-sensor. V této složce vytvořte soubor s názvemapp.py:mkdir temperature-sensor cd temperature-sensor touch app.py -
Otevřete tuto složku ve VS Code.
-
Pro použití senzoru vlhkosti a teploty je třeba nainstalovat další balíček Pip. Z terminálu ve VS Code spusťte následující příkaz pro instalaci tohoto balíčku na Pi:
pip3 install seeed-python-dht -
Přidejte následující kód do souboru
app.pypro import potřebných knihoven:import time from seeed_dht import DHTPříkaz
from seeed_dht import DHTimportuje tříduDHTpro interakci se senzorem teploty Grove z moduluseeed_dht. -
Přidejte následující kód za výše uvedený kód pro vytvoření instance třídy, která spravuje teplotní senzor:
sensor = DHT("11", 5)Tento kód deklaruje instanci třídy
DHT, která spravuje Digitální Humidity a Temperature senzor. První parametr říká kódu, že použitý senzor je DHT11 - knihovna, kterou používáte, podporuje i jiné varianty tohoto senzoru. Druhý parametr říká kódu, že senzor je připojen k digitálnímu portuD5na Grove Base hat.✅ Pamatujte, že všechny konektory mají unikátní čísla pinů. Piny 0, 2, 4 a 6 jsou analogové piny, piny 5, 16, 18, 22, 24 a 26 jsou digitální piny.
-
Přidejte nekonečnou smyčku za výše uvedený kód pro čtení hodnoty teplotního senzoru a její výpis do konzole:
while True: _, temp = sensor.read() print(f'Temperature {temp}°C')Volání
sensor.read()vrací dvojici hodnot vlhkosti a teploty. Potřebujete pouze hodnotu teploty, takže vlhkost je ignorována. Hodnota teploty je poté vypsána do konzole. -
Přidejte krátkou pauzu deset sekund na konci
loop, protože úroveň teploty není třeba kontrolovat nepřetržitě. Pauza snižuje spotřebu energie zařízení.time.sleep(10) -
Z terminálu ve VS Code spusťte následující příkaz pro spuštění vaší Python aplikace:
python3 app.pyMěli byste vidět hodnoty teploty vypisované do konzole. Použijte něco k zahřátí senzoru, například přitisknutí palce na něj nebo použití ventilátoru, abyste viděli změny hodnot:
pi@raspberrypi:~/temperature-sensor $ python3 app.py Temperature 26°C Temperature 26°C Temperature 28°C Temperature 30°C Temperature 32°C
💁 Tento kód najdete ve složce code-temperature/pi.
😀 Vaše programování teplotního senzoru bylo úspěšné!
Prohlášení:
Tento dokument byl přeložen pomocí služby pro automatický překlad Co-op Translator. Ačkoli se snažíme o přesnost, mějte na paměti, že automatické překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho původním jazyce by měl být považován za autoritativní zdroj. Pro důležité informace se doporučuje profesionální lidský překlad. Neodpovídáme za žádné nedorozumění nebo nesprávné interpretace vyplývající z použití tohoto překladu.

