Jak używać Raspberry Pi do monitorowania temperatur za pomocą Sense HAT

Istnieje kilka sposobów monitorowania temperatury otoczenia za pomocą komputera jednopłytkowego Raspberry Pi, na przykład w ramach konfiguracji stacji pogodowej. Chociaż możesz 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.

Jaki jest zmysłowy kapelusz?

Źródło obrazu: Malinowe Pi

Oficjalna płytka dodatkowa Raspberry Pi HAT (Hardware Applyed 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 są wykorzystywane w eksperymentach naukowych zaprojektowanych przez uczniów, którzy weszli do trwającego Astro Pi wyzwanie Te dwie jednostki zostały zastąpione ulepszonymi wersjami opartymi na Raspberry Pi 4 i wyposażonymi w wysokiej jakości kamerę.

Źródło obrazu: Malinowe Pi

Chociaż brakuje jej specjalnej srebrnej obudowy przeznaczonej do użytku w przestrzeni kosmicznej, standardowa tablica Sense HAT ma dokładnie tę samą funkcjonalność. Kompatybilny z dowolnym modelem Raspberry Pi z 40-pinowym złączem GPIO, posiada szereg wbudowanych czujników, które umożliwiają monitorowanie otaczającego środowiska, a także wykrywanie własnej orientacji i ruchu. Dodatkowo posiada matrycę LED 8×8 RGB, która wyświetla tekst, dane i obrazy. Jest też mini joystick pięciokierunkowy.

Pełny zakres funkcji sensorycznych Sense HAT przedstawia się następująco:

  • Wilgotność: czujnik STMicro HTS221 z zakresem wilgotności względnej od 0 do 100% i czujnikiem temperatury w zakresie od 32°F do 149°F (0°C do 65°C ± 2°C).
  • Ciśnienie barometryczne: czujnik STMicro LPS25HB o zakresie od 260 do 1260 hPa, plus czujnik temperatury od 59°F do 104°F (15°C do 40°C ±0,5°C).
  • Temperatura: Można ją odczytać z czujnika wilgotności lub ciśnienia lub zmierzyć, biorąc średnią z obu odczytów.
  • Żyroskop: STMicro LSM9DS1 IMU może mierzyć obrót Sense HAT względem powierzchni Ziemi (oraz prędkość jego obrotu).
  • Akcelerometr: Kolejna funkcja IMU, która może mierzyć siłę przyspieszenia w wielu kierunkach.
  • Magnetometr: Wykrywając pole magnetyczne Ziemi, IMU może określić kierunek północy magnetycznej i w ten sposób podać odczyt kompasu.

Skoro już wiesz, co potrafi ten wielofunkcyjny kapelusz Raspberry Pi HAT, czas przystąpić do projektu.

Krok 1: Zamontuj Sense HAT

Aby podłączyć Sense HAT, najpierw upewnij się, że Raspberry Pi jest wyłączone i odłączone od zasilania. Następnie ostrożnie wciśnij Sense HAT (z dołączonym czarnym przedłużaczem złącza) na 40-pinowe złącze GPIO Raspberry Pi, tak aby płytka Sense HAT znajdowała się nad płytą Raspberry Pi. Upewnij się, że wszystkie piny są prawidłowo ustawione i oba rzędy są połączone. Można także użyć wkręcanych podkładek dystansowych, aby je zabezpieczyć.

Można użyć dowolnego standardowego modelu Raspberry Pi z 40-pinowym złączem GPIO. Jednym z kluczowych ograniczeń Raspberry Pi 400 jest jednak to, że jego złącze GPIO znajduje się z tyłu zintegrowanej klawiatury. Oznacza to, że Sense HAT będzie skierowany do tyłu, więc do jego podłączenia możesz użyć przedłużacza GPIO.

Krok 2: Skonfiguruj Raspberry Pi

Podobnie jak w przypadku każdego innego projektu, należy podłączyć klawiaturę i mysz USB, a następnie podłączyć Raspberry Pi do monitora lub telewizora. Powinieneś także mieć włożoną kartę microSD ze standardowym systemem operacyjnym Raspberry Pi – jeśli jeszcze tego nie zrobiłeś, sprawdź, jak zainstalować system operacyjny na Raspberry Pi. Następnie możesz włączyć zasilanie.

Alternatywnie możesz używać Raspberry Pi z Sense HAT w trybie bezgłowym, bez podłączonego monitora i łączyć się z Raspberry Pi zdalnie za pomocą protokołu SSH z innego komputera lub urządzenia. Jeśli to zrobisz, nie będziesz mógł używać Thonny Python IDE, nadal będziesz mógł edytować programy za pomocą edytora tekstu nano i uruchamiać je z wiersza poleceń.

Oprogramowanie sprzętowe Sense HAT powinno być zainstalowane domyślnie. Aby dokładnie sprawdzić, otwórz okno Terminala i wpisz:

 sudo apt install sense-hat

Następnie, jeśli pakiet został właśnie nowo zainstalowany, uruchom ponownie Raspberry Pi:

 sudo reboot

Krok 3: Zacznij programować w Pythonie

Chociaż możesz używać Raspberry Pi Sense HAT z językiem programowania opartym na blokach Scratch, my użyjemy Pythona do odczytu i wyświetlenia odczytów czujników.

Thonny IDE (zintegrowane środowisko programistyczne) to dobry sposób na programowanie w języku Python na Raspberry Pi, ponieważ ma wiele funkcji, w tym przydatne funkcje debugowania. W graficznym interfejsie użytkownika Raspberry Pi OS przejdź do Menu (ikona malinowa w lewym górnym rogu) > Programowanie > Thonny IDE, aby go uruchomić.

Krok 4: Wykonaj odczyt temperatury

W głównym oknie Thonny IDE wprowadź następujące linie kodu:

 
from sense_hat import SenseHat

sense = SenseHat()
sense.clear()

temp = sense.get_temperature()
print(temp)

Pierwsza linia importuje klasę SenseHat z biblioteki Pythona sensu_hat (która jest preinstalowana w systemie operacyjnym Raspberry Pi). Wartość ta jest następnie przypisywana do zmiennej sensownej. Trzecia linia czyści matrycę LED Sense HAT.

Następnie pobieramy odczyt temperatury i drukujemy go w obszarze Shell w Thonny IDE. Wartość ta jest wyrażona w stopniach Celsjusza, więc warto najpierw przekonwertować ją na stopnie Fahrenheita:

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

Odczyt czujnika temperatury będzie miał kilka cyfr po przecinku. Użyjemy więc funkcji round, aby zaokrąglić ją do jednego miejsca po przecinku:

 temp = round(temp, 1) 

Funkcja sens.get_temperature() odczytuje czujnik temperatury wbudowany w czujnik wilgotności. Alternatywnie możesz odczytać temperaturę z czujnika ciśnienia za pomocą funkcji sens.get_temperature_from_ Pressure() lub nawet wykonać oba odczyty i obliczyć średnią średnią (dodając je i dzieląc przez dwa).

Krok 5: Pokaż temperaturę na Sense HAT

Drukowanie pojedynczego odczytu temperatury na powłoce Pythona jest trochę nudne, dlatego zamiast tego regularnie wykonuj nowy odczyt i pokazuj go na matrycy LED RGB Sense HAT. Aby wyświetlić przewijaną wiadomość tekstową, używamy funkcji show_message. Użyjemy także pętli while: True, aby dokonywać nowego odczytu co 10 sekund — w tym celu używamy funkcji uśpienia z biblioteki czasu.

Oto pełny 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)

Uruchom ten kod, a zobaczysz każdy nowy odczyt temperatury przewijający się po matrycy LED. Spróbuj dmuchnąć na Sense HAT, aby sprawdzić, czy temperatura się zmienia.

Na odczyty temperatury może wpływać ciepło przenoszone z procesora Raspberry Pi znajdującego się tuż poniżej, dlatego może być konieczna regulacja, aby uzyskać dokładniejszą wartość. Innym rozwiązaniem jest użycie nagłówka układającego, aby podnieść Sense HAT wyżej nad Raspberry Pi.

Użyj Raspberry Pi do monitorowania temperatury

Chociaż w tym projekcie można zamiast tego zastosować samodzielny czujnik temperatury, Sense HAT ułatwia monitorowanie temperatury za pomocą Raspberry Pi. Można go również używać do wykonywania wielu innych odczytów z czujników, takich jak ciśnienie barometryczne i wilgotność względna, i wyświetlać je na matrycy LED.