6.0 KiB
Mierzenie temperatury - Raspberry Pi
W tej części lekcji dodasz czujnik temperatury do swojego Raspberry Pi.
Sprzęt
Czujnik, którego użyjesz, to czujnik wilgotności i temperatury DHT11, łączący dwa czujniki w jednym urządzeniu. Jest to dość popularne rozwiązanie, a wiele dostępnych na rynku czujników łączy pomiar temperatury, wilgotności, a czasem także ciśnienia atmosferycznego. Komponent czujnika temperatury to termistor o ujemnym współczynniku temperaturowym (NTC), czyli termistor, którego opór maleje wraz ze wzrostem temperatury.
Jest to czujnik cyfrowy, co oznacza, że posiada wbudowany przetwornik ADC, który generuje sygnał cyfrowy zawierający dane o temperaturze i wilgotności, które mikroprocesor może odczytać.
Podłączanie czujnika temperatury
Czujnik temperatury Grove można podłączyć do Raspberry Pi.
Zadanie
Podłącz czujnik temperatury.
-
Włóż jeden koniec kabla Grove do gniazda na czujniku wilgotności i temperatury. Kabel wejdzie tylko w jednym kierunku.
-
Przy wyłączonym zasilaniu Raspberry Pi, podłącz drugi koniec kabla Grove do gniazda cyfrowego oznaczonego jako D5 na nakładce Grove Base zamontowanej na Raspberry Pi. To gniazdo znajduje się jako drugie od lewej w rzędzie gniazd obok pinów GPIO.
Programowanie czujnika temperatury
Teraz można zaprogramować urządzenie do korzystania z podłączonego czujnika temperatury.
Zadanie
Zaprogramuj urządzenie.
-
Włącz Raspberry Pi i poczekaj, aż się uruchomi.
-
Uruchom VS Code, bezpośrednio na Raspberry Pi lub łącząc się za pomocą rozszerzenia Remote SSH.
⚠️ Możesz odwołać się do instrukcji konfiguracji i uruchamiania VS Code w lekcji 1, jeśli to konieczne.
-
W terminalu utwórz nowy folder w katalogu domowym użytkownika
pi
o nazwietemperature-sensor
. W tym folderze utwórz plik o nazwieapp.py
:mkdir temperature-sensor cd temperature-sensor touch app.py
-
Otwórz ten folder w VS Code.
-
Aby użyć czujnika temperatury i wilgotności, należy zainstalować dodatkowy pakiet Pip. W terminalu w VS Code uruchom następujące polecenie, aby zainstalować ten pakiet na Raspberry Pi:
pip3 install seeed-python-dht
-
Dodaj poniższy kod do pliku
app.py
, aby zaimportować wymagane biblioteki:import time from seeed_dht import DHT
Instrukcja
from seeed_dht import DHT
importuje klasęDHT
, która umożliwia interakcję z czujnikiem temperatury Grove z modułuseeed_dht
. -
Dodaj poniższy kod po wcześniejszym, aby utworzyć instancję klasy zarządzającej czujnikiem temperatury:
sensor = DHT("11", 5)
To deklaruje instancję klasy
DHT
, która zarządza Digitalnym czujnikiem Humidity i Temperature. Pierwszy parametr informuje kod, że używany jest czujnik DHT11 - biblioteka, której używasz, obsługuje inne warianty tego czujnika. Drugi parametr informuje kod, że czujnik jest podłączony do portu cyfrowegoD5
na nakładce Grove Base.✅ Pamiętaj, że wszystkie gniazda mają unikalne numery pinów. Piny 0, 2, 4 i 6 to piny analogowe, a piny 5, 16, 18, 22, 24 i 26 to piny cyfrowe.
-
Dodaj nieskończoną pętlę po wcześniejszym kodzie, aby odczytywać wartość z czujnika temperatury i wyświetlać ją w konsoli:
while True: _, temp = sensor.read() print(f'Temperature {temp}°C')
Wywołanie
sensor.read()
zwraca krotkę zawierającą wilgotność i temperaturę. Potrzebujesz tylko wartości temperatury, więc wilgotność jest pomijana. Wartość temperatury jest następnie wyświetlana w konsoli. -
Dodaj krótką pauzę trwającą dziesięć sekund na końcu pętli, ponieważ poziomy temperatury nie muszą być sprawdzane ciągle. Pauza zmniejsza zużycie energii przez urządzenie.
time.sleep(10)
-
W terminalu VS Code uruchom następujące polecenie, aby uruchomić swoją aplikację w Pythonie:
python3 app.py
Powinieneś zobaczyć wartości temperatury wyświetlane w konsoli. Użyj czegoś, aby ogrzać czujnik, na przykład przyciśnij go kciukiem lub użyj wentylatora, aby zobaczyć zmieniające się wartości:
pi@raspberrypi:~/temperature-sensor $ python3 app.py Temperature 26°C Temperature 26°C Temperature 28°C Temperature 30°C Temperature 32°C
💁 Kod ten znajdziesz w folderze code-temperature/pi.
😀 Twój program do obsługi czujnika temperatury zakończył się sukcesem!
Zastrzeżenie:
Ten dokument został przetłumaczony za pomocą usługi tłumaczenia AI Co-op Translator. Chociaż dokładamy wszelkich starań, aby tłumaczenie było precyzyjne, prosimy pamiętać, że automatyczne tłumaczenia mogą zawierać błędy lub nieścisłości. Oryginalny dokument w jego rodzimym języku powinien być uznawany za wiarygodne źródło. W przypadku informacji o kluczowym znaczeniu zaleca się skorzystanie z profesjonalnego tłumaczenia przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z użycia tego tłumaczenia.