Jak používat Raspberry Pi k monitorování teplot pomocí Sense HAT

Existuje několik způsobů, jak můžete sledovat okolní teplotu pomocí jednodeskového počítače Raspberry Pi, možná jako součást nastavení meteostanice. I když můžete použít externí senzor připojený k GPIO pinům Raspberry Pi, zde vysvětlíme, jak monitorovat teplotu pomocí Raspberry Pi vybaveného Sense HAT.

Co je to Sense HAT?

Kredit obrázku: Raspberry Pi

Oficiální přídavná deska Raspberry Pi HAT (Hardware Attached on Top) navržená a vyrobená společností Raspberry Pi, Sense HAT byla původně vytvořena pro použití astronauty na palubě Mezinárodní vesmírné stanice. Od roku 2015 se dva počítače Raspberry Pi vybavené Sense HAT používají ve vědeckých experimentech navržených školáky, kteří vstoupili do probíhající Astro Pi výzva Tyto dvě jednotky byly od té doby nahrazeny vylepšenými verzemi založenými na Raspberry Pi 4 a vybavenými vysoce kvalitní kamerou.

Kredit obrázku: Raspberry Pi

I když postrádá speciální stříbrné pouzdro určené pro použití ve vesmíru, standardní deska Sense HAT má úplně stejnou funkčnost. Kompatibilní s jakýmkoli modelem Raspberry Pi se 40pinovým GPIO headerem a obsahuje řadu vestavěných senzorů, které mu umožňují sledovat okolní prostředí a také detekovat jeho vlastní orientaci a pohyb. Navíc má 8×8 RGB LED matici pro zobrazení textu, dat a obrázků. K dispozici je také mini pětisměrný joystick.

Celá řada senzorických funkcí Sense HAT je následující:

  • Vlhkost: Senzor STMicro HTS221 s rozsahem relativní vlhkosti 0 až 100 % plus snímání teploty od 32 °F do 149 °F (0 °C až 65 °C ± 2 °C).
  • Barometrický tlak: Senzor STMicro LPS25HB s rozsahem 260 až 1260 hPa plus snímání teploty od 59 °F do 104 °F (15 °C až 40 °C ±0,5 °C).
  • Teplota: Lze ji odečíst ze snímače vlhkosti nebo tlaku nebo změřit průměrem obou hodnot.
  • Gyroskop: STMicro LSM9DS1 IMU dokáže měřit rotaci Sense HAT vzhledem k povrchu Země (a jak rychle se otáčí).
  • Akcelerometr: Další funkce IMU, dokáže měřit zrychlovací sílu ve více směrech.
  • Magnetometr: Snímáním magnetického pole Země může IMU určit směr magnetického severu a tak poskytnout údaj kompasu.
  Úvodní příručka a případová studie Google Cloud

Nyní, když máte přehled o tom, co tento víceúčelový Raspberry Pi HAT dokáže, je čas začít s projektem.

Krok 1: Namontujte Sense HAT

Chcete-li připojit Sense HAT, nejprve se ujistěte, že je vaše Raspberry Pi vypnuté a odpojené od napájení. Poté opatrně zatlačte Sense HAT (s nasazeným dodaným černým prodlužovacím nástavcem) na 40pinový GPIO header Raspberry Pi tak, aby byla deska Sense HAT umístěna nad deskou Raspberry Pi. Ujistěte se, že jsou všechny kolíky správně zarovnány a obě řady jsou propojeny. K zajištění můžete také použít šroubovací podpěry.

Můžete použít jakýkoli standardní model Raspberry Pi, který má 40pinový GPIO header. Jedním z klíčových omezení Raspberry Pi 400 je však to, že jeho GPIO header je umístěn na zadní straně integrované klávesnice. To znamená, že Sense HAT bude směřovat dozadu, takže k jeho připojení možná budete chtít použít prodlužovací kabel GPIO.

Krok 2: Nastavte Raspberry Pi

Stejně jako u každého jiného projektu byste měli zapojit USB klávesnici a myš a poté připojit Raspberry Pi k monitoru nebo televizi. Měli byste mít také vloženou kartu microSD se standardním operačním systémem Raspberry Pi – pokud jste to ještě neudělali, podívejte se, jak nainstalovat operační systém na Raspberry Pi. Poté jste připraveni zapnout napájení.

  Jak na někoho mávat na Instagramu živě

Případně můžete Raspberry Pi používat se Sense HAT v bezhlavém režimu bez připojeného monitoru a připojit se k Raspberry Pi vzdáleně pomocí SSH z jiného počítače nebo zařízení. Pokud to uděláte, nebudete moci používat Thonny Python IDE, buy může stále upravovat programy pomocí nano textového editoru a spouštět je z příkazového řádku.

Firmware Sense HAT by měl být nainstalován ve výchozím nastavení. Chcete-li znovu zkontrolovat, otevřete okno Terminál a zadejte:

 sudo apt install sense-hat

Poté, pokud byl balíček právě nově nainstalován, restartujte Raspberry Pi:

 sudo reboot

Krok 3: Začněte programovat v Pythonu

I když můžete Raspberry Pi Sense HAT používat s programovacím jazykem Scratch založeným na blocích, ke čtení a zobrazování hodnot senzorů použijeme Python.

Thonny IDE (integrované vývojové prostředí) je dobrý způsob, jak programovat Python na Raspberry Pi, protože má spoustu funkcí včetně užitečných funkcí pro ladění. V grafickém uživatelském rozhraní systému Raspberry Pi OS přejděte do nabídky (ikona maliny vlevo nahoře) > Programování > Thonny IDE a spusťte jej.

Krok 4: Odečtěte teplotu

V hlavním okně Thonny IDE zadejte následující řádky kódu:

 
from sense_hat import SenseHat

sense = SenseHat()
sense.clear()

temp = sense.get_temperature()
print(temp)

První řádek importuje třídu SenseHat z knihovny sense_hat Python (která je předinstalovaná v OS Raspberry Pi). Ten je pak přiřazen k proměnné sense. Třetí řádek vymaže LED matici Sense HAT.

  Inteligentní automatizace procesů (IPA): Proč je důležitá?

Potom odečteme teplotu a vytiskneme ji do oblasti Shell Thonny IDE. To je ve stupních Celsia, takže to možná budete chtít nejprve převést na Fahrenheita:

 temp = (sense.get_temperature() * 1.8 + 32) 

Hodnota snímače teploty bude mít několik číslic za desetinnou čárkou. Použijeme tedy funkci round k zaokrouhlení na jedno desetinné místo:

 temp = round(temp, 1) 

Funkce sense.get_temperature() čte teplotní senzor zabudovaný do senzoru vlhkosti. Případně můžete odečíst teplotu z tlakového senzoru pomocí sense.get_temperature_from_pressure() nebo dokonce vzít obě hodnoty a vypočítat střední průměr (jejich sečtením a vydělením dvěma).

Krok 5: Ukažte teplotu na Sense HAT

Tisk jedné hodnoty teploty do Python Shell je trochu nudný, takže místo toho pojďme pravidelně provádět novou hodnotu a ukazovat ji na RGB LED matrici Sense HAT. Pro zobrazení rolující textové zprávy používáme funkci show_message. Použijeme také chvíli: True loop, abychom každých 10 sekund provedli nové čtení – k čemuž použijeme funkci spánku z časové knihovny.

Zde je kompletní program:

 from sense_hat import SenseHat
from time import sleep

sense = SenseHat()
sense.clear()

while True:
 temp = (sense.get_temperature() * 1.8 + 32)
 temp = round(temp, 1)
 message = "Temp: " + str(temp)
 sense.show_message(message)
 sleep (10)

Spusťte tento kód a uvidíte, jak se každý nový údaj o teplotě posouvá po matici LED. Zkuste fouknout na Sense HAT, abyste viděli, zda se teplota nezmění.

Teplotní údaje mohou být ovlivněny teplem přeneseným z CPU Raspberry Pi těsně pod, takže k získání přesnější hodnoty může být zapotřebí úprava. Dalším řešením je použití stohovací hlavičky ke zvednutí Sense HAT výše nad Raspberry Pi.

Ke sledování teploty použijte Raspberry Pi

Zatímco pro tento projekt můžete místo toho použít samostatný teplotní senzor, Sense HAT usnadňuje sledování teploty pomocí vašeho Raspberry Pi. Můžete jej také použít k zachycení řady dalších naměřených hodnot senzorů, jako je barometrický tlak a relativní vlhkost, a jejich zobrazení na matici LED.