Jak używać Raspberry Pi do monitorowania temperatury za pomocą Sense HAT?
Istnieje kilka sposobów na monitorowanie temperatury otoczenia za pomocą komputera jednopłytkowego Raspberry Pi, być może jako część konfiguracji stacji pogodowej. Chociaż można użyć zewnętrznego czujnika podłączonego do pinów GPIO Raspberry Pi, tutaj wyjaśnimy, jak monitorować temperaturę za pomocą Raspberry Pi wyposażonego w Sense HAT.
Co to jest Sense HAT?
Image Credit: Raspberry Pi
Oficjalna płytka dodatkowa Raspberry Pi HAT (Hardware Attached on Top) zaprojektowana i wyprodukowana przez firmę Raspberry Pi, Sense HAT została pierwotnie stworzona do użytku przez astronautów na pokładzie Międzynarodowej Stacji Kosmicznej. Od 2015 roku dwa komputery Raspberry Pi wyposażone w Sense HAT były wykorzystywane w eksperymentach naukowych zaprojektowanych przez uczniów, którzy wzięli udział w trwającym Astro Pi wyzwaniu Te dwie jednostki zostały zastąpione zmodernizowanymi wersjami opartymi na Raspberry Pi 4 i wyposażonymi w kamerę wysokiej jakości.
Image Credit: Raspberry Pi
Płytka Sense HAT, choć pozbawiona unikalnej srebrnej obudowy przeznaczonej do użytku pozaziemskiego, zachowuje identyczne możliwości funkcjonalne po sparowaniu z dowolnym modelem Raspberry Pi wyposażonym w 40-pinowy interfejs GPIO. To wszechstronne urządzenie posiada szereg zintegrowanych czujników umożliwiających kompleksowe monitorowanie najbliższego otoczenia, a także wykrywanie własnej orientacji i ruchu. Co więcej, jest ono wyposażone w matrycę LED RGB 8x8 ułatwiającą wizualną prezentację informacji, takich jak tekst, liczby i obrazy. Dodatkowo, w zestawie znajduje się kompaktowy, pięciopozycyjny joystick.
Pełny zakres funkcji Sense HAT, które są związane z wykrywaniem i percepcją, można podsumować w następujący sposób:
Urządzenie wykorzystuje czujnik STMicro HTS221, który jest w stanie mierzyć zarówno wilgotność względną, jak i temperaturę w zakresie od 0 do 100% wilgotności względnej i od 32 ° F do 149 ° F (od 0 ° C do 65 ° C ± 2 ° C) dla temperatury.
Barometr LPS25HB firmy STMicro jest wyposażony w zakres pomiarowy od 260 do 1260 hPa i ma możliwość pomiaru temperatury w zakresie od 59°F do 104°F (15°C do 40°C z dokładnością \+/-0,5°C).
Temperaturę można uzyskać poprzez odczyt czujnika wilgotności lub ciśnienia, lub alternatywnie można ją obliczyć, biorąc średnią wartość obu odczytów.
Jednostka IMU STMicro LSM9DS1, zintegrowana w Raspberry Pi’s Sense HAT, posiada zdolność do pomiaru orientacji i prędkości kątowej urządzenia w odniesieniu do płaszczyzny naziemnej, a także jego szybkości obrotu.
Akcelerometr jest komponentem inercyjnej jednostki pomiarowej (IMU), która jest w stanie mierzyć siły przyspieszenia w różnych kierunkach.
Magnetometr w inercyjnej jednostce pomiarowej (IMU) jest w stanie wykryć pole magnetyczne Ziemi, co pozwala mu ustalić orientację północy magnetycznej i w rezultacie zapewnić odczyt kompasu.
Dzięki kompleksowemu zrozumieniu możliwości i potencjalnych zastosowań wszechstronnego Raspberry Pi HAT, należy teraz rozpocząć proces wdrażania odpowiednich projektów.
Krok 1: Zamontuj Sense HAT
Aby prawidłowo podłączyć Sense HAT do Raspberry Pi, upewnij się, że jest on wyłączony i odłączony od jakiegokolwiek źródła zasilania. Następnie delikatnie włóż Sense HAT, wraz z dołączonym czarnym przedłużaczem nagłówka, do 40-pinowego nagłówka GPIO Raspberry Pi. Upewnij się, że Sense HAT jest prawidłowo wyrównany na Raspberry Pi, a wszystkie połączenia między dwiema płytkami są wykonane. Aby zwiększyć bezpieczeństwo, można użyć wkręcanych podstawek.
Do projektu można wykorzystać dowolny konwencjonalny model Raspberry Pi wyposażony w 40-pinowy nagłówek wejścia/wyjścia ogólnego przeznaczenia (GPIO). Jednak jednym z istotnych ograniczeń związanych z modelem Raspberry Pi 400 jest to, że jego nagłówek GPIO znajduje się z tyłu, obok zintegrowanej klawiatury. W związku z tym Sense HAT będzie ustawiony w odwrotnym kierunku podczas pracy. Aby rozwiązać ten problem, zaleca się zastosowanie przedłużacza w celu ustanowienia połączenia między nagłówkiem GPIO a Sense HAT.
Krok 2: Konfiguracja Raspberry Pi
Aby rozpocząć pracę z Raspberry Pi, wykonaj następujące kroki:1. Podłącz klawiaturę i mysz USB do urządzenia.2. Podłącz Raspberry Pi do wyświetlacza lub ekranu telewizora.3. Włóż kartę microSD zawierającą domyślny system operacyjny Raspberry Pi do gniazda urządzenia. Jeśli nie zostało to jeszcze zrobione, zapoznaj się z instrukcjami instalacji systemu operacyjnego na Raspberry Pi.4. Włącz zasilanie Raspberry Pi, doprowadzając prąd do jego źródła zasilania.
Alternatywnie można wykorzystać Raspberry Pi zintegrowane z Sense HAT w środowisku bez monitora, ustanawiając zdalny dostęp za pośrednictwem połączenia Secure Shell (SSH) z dodatkowego urządzenia komputerowego lub gadżetu.W takim scenariuszu użytkownik nie będzie miał możliwości korzystania ze zintegrowanego środowiska programistycznego (IDE) Thonny Python, ale będzie mógł edytować pliki za pomocą edytora tekstu nano i wykonywać programy za pomocą poleceń terminala.
Aby sprawdzić, czy oprogramowanie układowe Sense HAT jest preinstalowane na Raspberry Pi, można otworzyć aplikację emulatora terminala, taką jak “Terminal” lub “xterm” z menu Aplikacje w Lubuntu, a następnie wpisać polecenie “sudo dmesg | grep sensehat”. Jeśli nie pojawią się żadne dane wyjściowe, oznacza to, że oprogramowanie sprzętowe zostało pomyślnie zainstalowane. Jeśli jednak pojawią się jakiekolwiek komunikaty o błędach, może być konieczne ręczne zainstalowanie oprogramowania układowego przy użyciu instrukcji podanych wcześniej w tej sekcji.
sudo apt install sense-hat
Jeśli pakiet został niedawno zainstalowany na Raspberry Pi, zaleca się ponowne uruchomienie systemu, aby upewnić się, że wszystkie niezbędne zmiany zostały poprawnie wdrożone i skonfigurowane.
sudo reboot
Krok 3: Rozpocznij programowanie w Pythonie
Wykorzystanie Raspberry Pi Sense HAT w połączeniu ze Scratchem do programowania blokowego jest wykonalne; jednak zastosujemy Python jako preferowaną metodę interpretacji i prezentacji danych zebranych przez jego czujniki.
Wykorzystanie zintegrowanego środowiska programistycznego (IDE) Thonny stanowi skuteczną metodę wykonywania zadań programistycznych opartych na języku Python na Raspberry Pi, biorąc pod uwagę jego szeroki zakres funkcji i korzystne narzędzia do debugowania. Aby uzyskać dostęp do Thonny IDE w graficznym interfejsie użytkownika (GUI) pulpitu Raspberry Pi OS, przejdź do lewego górnego rogu ekranu i wybierz “Menu”, a następnie “Programowanie” i wreszcie “Thonny IDE”.
Krok 4: Odczyt temperatury
W głównym oknie zintegrowanego środowiska programistycznego (IDE) Thonny, wprowadź następujący kod w edytorze programu:
from sense_hat import SenseHat
sense = SenseHat()
sense.clear()
temp = sense.get_temperature()
print(temp)
Początkowe linie kodu importują i przypisują klasę SenseHat z biblioteki sense\_hat Python, która jest wstępnie zainstalowana na Raspberry Pi OS. Następnie matryca LED SenseHat jest czyszczona przy użyciu dostarczonych instrukcji.
Następnie uzyskujemy pomiar temperatury i wyświetlamy go w interfejsie Shell zintegrowanego środowiska programistycznego Thonny. Wartość ta jest wyrażona w stopniach Celsjusza, dlatego korzystne może być wstępne przekonwertowanie jej na Fahrenheita w celu łatwiejszej interpretacji:
temp = (sense.get_temperature() * 1.8 \\+ 32)
Aby upewnić się, że odczyt czujnika temperatury ma dokładną reprezentację z jednym miejscem po przecinku, wykorzystamy funkcję round() do obcięcia wszelkich nadmiarowych miejsc po przecinku obecnych w wartości.Takie podejście pozwala na precyzyjny pomiar temperatury i eliminuje niepotrzebną precyzję.
temp = round(temp, 1)
Funkcja sense.get_temperature()
pobiera dane temperatury uzyskane ze zintegrowanego czujnika temperatury w czujniku wilgotności. Alternatywnie można wykorzystać metodę sense.get_temperature_from_pressure()
do uzyskania odczytów temperatury na podstawie pomiarów wykonanych z czujnika ciśnienia. Dodatkowo możliwe jest jednoczesne uzyskanie odczytów temperatury z obu czujników i obliczenie ich średniej wartości poprzez uśrednienie odpowiednich wartości, a następnie podzielenie przez dwa.
Krok 5: Pokaż temperaturę na Sense HAT
Rzeczywiście, wyświetlanie ciągłego strumienia danych w czasie rzeczywistym może być dość wciągające. W tym przypadku przedstawimy dynamiczną wizualizację, okresowo aktualizując bieżącą wartość temperatury na matrycy LED RGB Sense HAT za pomocą funkcji show\_message(). Ponadto zastosujemy pętlę while z instrukcją “while True”, aby wielokrotnie uzyskiwać nowy pomiar temperatury w regularnych odstępach czasu wynoszących dziesięć sekund poprzez wykorzystanie funkcji sleep() pochodzącej z biblioteki time.
Oto kompletny 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)
Wykonując ten kod, ciągły strumień odczytów temperatury będzie wyświetlany na matrycy LED w czasie rzeczywistym. Aby poeksperymentować z jego reakcją, wystarczy delikatnie wydech na Sense HAT, aby zaobserwować wszelkie wahania temperatury, które mogą wystąpić w rezultacie.
Konieczne może być dostosowanie odczytów temperatury uzyskanych przez Sense HAT, ponieważ może na nie wpływać przenoszenie ciepła z jednostki centralnej Raspberry Pi znajdującej się bezpośrednio pod nią. Aby uzyskać większą dokładność tych pomiarów, jednym z możliwych podejść byłoby użycie nagłówka do układania w stos, aby podnieść Sense HAT dalej od Raspberry Pi.
Wykorzystanie Raspberry Pi do monitorowania temperatury
Wykorzystanie niezależnego termometru jest możliwe w tym przedsięwzięciu; jednak Sense HAT upraszcza monitorowanie temperatury poprzez integrację z Raspberry Pi. Dodatkowo umożliwia gromadzenie danych dotyczących różnych czynników środowiskowych, w tym ciśnienia atmosferycznego i wilgotności względnej, jednocześnie wyświetlając te pomiary na tablicy indywidualnie adresowalnych diod LED.