2023-10-25 02:45 Doba čtení: 10 min

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

Pro sledování okolní teploty s využitím jednodeskového počítače Raspberry Pi existuje několik metod, jež se mohou hodit například při budování vlastní meteostanice. Ačkoli je možné použít externí senzor připojený k GPIO pinům, v tomto textu si popíšeme, jak monitorovat teplotu za pomoci Raspberry Pi s modulem Sense HAT.

Co je Sense HAT?

Kredit obrázku: Raspberry Pi

Sense HAT, oficiální rozšiřující deska typu HAT (Hardware Attached on Top) od společnosti Raspberry Pi, byla původně navržena pro použití astronauty na Mezinárodní vesmírné stanici. Od roku 2015 se dva počítače Raspberry Pi s Sense HAT používají ve vědeckých experimentech, které navrhli studenti zapojení do výzvy Astro Pi. Tyto jednotky byly následně nahrazeny vylepšenými verzemi založenými na Raspberry Pi 4 a vybavenými kamerou s vysokým rozlišením.

Kredit obrázku: Raspberry Pi

Standardní Sense HAT, i když nemá speciální stříbrné pouzdro určené pro vesmírné použití, nabízí stejné funkce. Je kompatibilní s libovolným modelem Raspberry Pi s 40pinovým GPIO headerem a disponuje sadou integrovaných senzorů, které mu umožňují sledovat okolní prostředí a současně detekovat jeho orientaci a pohyb. Dále je vybaven maticí 8x8 RGB LED pro zobrazování textu, dat a obrázků. Nechybí ani mini pětisměrný joystick.

Kompletní přehled senzorických funkcí Sense HAT:

  • Vlhkost: Senzor STMicro HTS221 s rozsahem relativní vlhkosti 0 až 100 % a měření teploty v rozsahu 0 °C až 65 °C s přesností ± 2 °C.
  • Barometrický tlak: Senzor STMicro LPS25HB s rozsahem 260 až 1260 hPa a měření teploty v rozsahu 15 °C až 40 °C s přesností ±0,5 °C.
  • Teplota: Lze ji odečíst ze senzoru vlhkosti nebo tlaku, případně ji lze vypočítat jako průměr obou hodnot.
  • Gyroskop: STMicro LSM9DS1 IMU je schopen měřit rotaci Sense HAT vůči zemskému povrchu a rychlost této rotace.
  • Akcelerometr: Další funkce IMU, která dokáže měřit zrychlení v různých směrech.
  • Magnetometr: Na základě detekce magnetického pole Země dokáže IMU určit směr magnetického severu a fungovat jako kompas.

Nyní, když máte základní přehled o schopnostech tohoto všestranného modulu pro Raspberry Pi, můžeme přejít k praktickému projektu.

Krok 1: Instalace Sense HAT

Před připojením Sense HAT se ujistěte, že je vaše Raspberry Pi vypnuté a odpojené od napájení. Poté opatrně nasaďte Sense HAT (s dodaným černým prodlužovacím nástavcem) na 40pinový GPIO header Raspberry Pi tak, aby deska Sense HAT ležela nad deskou Raspberry Pi. Zkontrolujte, zda jsou všechny piny správně vyrovnány a obě řady propojeny. Pro větší stabilitu můžete použít i šroubovací sloupky.

Pro tento účel můžete použít libovolný standardní model Raspberry Pi s 40pinovým GPIO headerem. U Raspberry Pi 400 je ale zásadní omezení v umístění GPIO headeru na zadní straně integrované klávesnice. To způsobí, že Sense HAT bude směřovat dozadu. Pro připojení v tomto případě je vhodné použít GPIO prodlužovací kabel.

Krok 2: Nastavení Raspberry Pi

Jako u každého jiného projektu, připojte USB klávesnici a myš, a následně připojte Raspberry Pi k monitoru nebo televizi. Dále byste měli mít vloženou microSD kartu se standardním operačním systémem Raspberry Pi. Pokud jste tak ještě neučinili, najděte si návod, jak nainstalovat operační systém na Raspberry Pi. Poté můžete zapnout napájení.

Alternativně je možné Raspberry Pi se Sense HAT používat i v bezhlavém režimu bez připojeného monitoru. Připojení pak probíhá vzdáleně pomocí SSH z jiného počítače či zařízení. V takovém případě sice nebudete moci používat Thonny Python IDE, ale programy můžete upravovat pomocí textového editoru nano a spouštět je z příkazového řádku.

Firmware pro Sense HAT by měl být nainstalován ve výchozím nastavení. Pro ověření otevřete okno Terminál a zadejte následující příkaz:

 sudo apt install sense-hat

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

 sudo reboot

Krok 3: Začínáme programovat v Pythonu

Přestože lze Raspberry Pi Sense HAT ovládat pomocí blokového programovacího jazyka Scratch, pro čtení a zobrazování hodnot senzorů použijeme programovací jazyk Python.

Thonny IDE (integrované vývojové prostředí) je výhodnou volbou pro programování v Pythonu na Raspberry Pi. Obsahuje množství funkcí, včetně užitečných nástrojů pro ladění. V grafickém uživatelském rozhraní systému Raspberry Pi OS jej spustíte přes nabídku (ikona maliny v levém horním rohu) > Programování > Thonny IDE.

Krok 4: Odečítání teploty

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

 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 operačním systému Raspberry Pi). Následně je tato třída přiřazena k proměnné sense. Třetí řádek vymaže LED matici Sense HAT.

Dále odečteme teplotu a vytiskneme ji do oblasti Shell Thonny IDE. Jedná se o hodnotu ve stupních Celsia, takže pro potřebu ji můžete převést na stupně Fahrenheita:

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

Naměřená hodnota teploty bude mít několik desetinných míst, proto použijeme funkci round k zaokrouhlení na jedno desetinné místo:

 temp = round(temp, 1) 

Funkce sense.get_temperature() čte hodnoty z teplotního senzoru zabudovaného v senzoru vlhkosti. Alternativně lze teplotu odečíst z tlakového senzoru pomocí sense.get_temperature_from_pressure(), nebo vypočítat průměr z obou hodnot (sečtením a vydělením dvěma).

Krok 5: Zobrazení teploty na Sense HAT

Tisk jedné hodnoty teploty do Python Shellu je poněkud nezáživné, proto budeme místo toho v pravidelných intervalech získávat nové hodnoty a zobrazovat je na RGB LED matici Sense HAT. Pro zobrazení rolovací textové zprávy použijeme funkci show_message. Také využijeme cyklus while: True pro periodické provádění nového odečtu každých 10 sekund - k tomu použijeme funkci sleep z knihovny time.

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)

Po spuštění tohoto kódu můžete sledovat, jak se na LED matici zobrazuje aktuální hodnota teploty. Zkuste fouknout na Sense HAT, abyste si ověřili, že se teplota změní.

Naměřené hodnoty teploty mohou být ovlivněny teplem vyzařovaným z procesoru Raspberry Pi, který se nachází těsně pod modulem. Z toho důvodu může být pro dosažení přesnějších výsledků nutné provést kalibraci. Dalším řešením je použití prodlužovacího konektoru pro oddálení Sense HAT od základní desky Raspberry Pi.

Použití Raspberry Pi pro sledování teploty

Ačkoli pro tento projekt lze použít i samostatný teplotní senzor, Sense HAT usnadňuje sledování teploty za pomoci Raspberry Pi. Navíc je jej možné využít pro čtení dat z dalších senzorů, jako je barometrický tlak a relativní vlhkost, a zobrazování těchto údajů na LED matici.

Petra Kovářová
Autor
Czechia

Sleduje mobilní technologie, Android/iOS a praktické návody pro uživatele.

Předchozí článek
Měli byste použít místní LLM? 9 Klady a zápory
Další článek
7 citlivých funkcí systému Windows, které byste si měli před úpravou dvakrát rozmyslet