Jak zbudować Monitor temperatury Raspberry Pi

temperatura i wilgotność są ważnymi punktami danych w dzisiejszym świecie przemysłowym. Monitorowanie danych środowiskowych serwerowni, komercyjnych zamrażarek i linii produkcyjnych jest niezbędne, aby wszystko działało sprawnie. Istnieje wiele rozwiązań, od podstawowych do złożonych i może wydawać się przytłaczające, czego potrzebuje Twoja Firma i od czego zacząć.

omówimy, jak zbudować i używać czujnika Temperatury Raspberry Pi z różnymi czujnikami temperatury. Jest to dobre miejsce, aby zacząć, ponieważ rozwiązania te są niedrogie, łatwe do wykonania i dają podstawy do budowania innych monitorowania środowiska.

Raspberry Pi to niedrogi Komputer Jednopłytkowy, który pozwoli Ci połączyć się z czujnikiem temperatury i przesyłać dane do oprogramowania do wizualizacji danych. Raspberry Pi zaczęło się jako narzędzie do nauki i ewoluowały do przemysłowego narzędzia pracy. Łatwość użycia i umiejętność kodowania w Pythonie, najszybciej rozwijającym się języku programowania, sprawiły,że są one rozwiązaniem.

będziesz chciał Raspberry Pi, który ma wbudowane WiFi, czyli dowolny model 3, 4 i zero W/WH. Spośród nich można wybrać na podstawie cen i funkcji. Zero W / WH jest najtańszy, ale jeśli potrzebujesz więcej funkcjonalności, możesz wybrać pomiędzy 3 i 4. Można kupić tylko jeden Zero W / WH na raz ze względu na ograniczenia przez Raspberry Pi Foundation. Niezależnie Pi wybrać, upewnij się, aby kupić ładowarkę, ponieważ jest to jak będziesz zasilać Pi i karty SD z Raspbian aby instalacja systemu operacyjnego tak łatwe, jak to możliwe.

są inne Komputery jednopłytkowe, które również mogą działać, ale to na inny czas i kolejny artykuł.

Czujniki

istnieją cztery czujniki, których zalecamy używać, ponieważ są niedrogie, łatwe do podłączenia i zapewniają dokładne odczyty; DSB18B20, DHT22, BME280 i Raspberry Pi Sense HAT.

DHT22 — ten czujnik temperatury i wilgotności ma dokładność temperatury + / – 0,5 C i zakres wilgotności od 0 do 100 procent. Jest prosty do podłączenia do Raspberry Pi i nie wymaga żadnych rezystorów podciągania.

DSB18B20 — ten czujnik temperatury ma wyjście cyfrowe, które dobrze współpracuje z Raspberry Pi. Ma trzy przewody i wymaga płyty Chlebowej i rezystora do połączenia.

BME280 — ten czujnik mierzy temperaturę, wilgotność i ciśnienie barometryczne. Może być używany zarówno w SPI, jak i I2C.

Sense HAT — jest to dodatek na pokładzie dla Raspberry Pi, który ma Diody LED, Czujniki i mały joystick. Łączy się bezpośrednio z GPIO na Raspberry Pi, ale za pomocą kabla taśmowego daje dokładniejsze odczyty temperatury.

Konfiguracja Raspberry Pi

jeśli po raz pierwszy konfigurujesz Raspberry Pi, musisz zainstalować System operacyjny Raspbian i podłączyć Pi do WiFi. Będzie to wymagało monitora i klawiatury, aby połączyć się z Pi. Po uruchomieniu i podłączeniu do Wi-Fi Pi jest gotowy do pracy.

konto stanu początkowego

musisz gdzieś wysłać swoje dane, aby zachować dziennik historyczny i wyświetlić strumień danych w czasie rzeczywistym, abyśmy mogli użyć stanu początkowego. Przejdź do https://iot.app.initialstate.com i utwórz nowe konto lub zaloguj się na istniejące konto.

następnie musimy zainstalować moduł Pythona stanu początkowego na Twoim Pi. W wierszu polecenia (nie zapomnij najpierw SSH do Pi), uruchom następujące polecenie:

$ cd /home/pi/
$ \curl -sSL https://get.initialstate.com/python -o - | sudo bash

po wprowadzeniu polecenia curl w wierszu polecenia zobaczysz na ekranie coś podobnego do następującego wyjścia:

gdy pojawi się monit o automatyczne pobranie przykładowego skryptu, wpisz y. utworzy to skrypt testowy, który możemy uruchomić, aby upewnić się, że możemy przesyłać dane do stanu początkowego. Następny monit zapyta, gdzie chcesz zapisać przykładowy plik. Możesz wpisać niestandardową ścieżkę lokalną lub nacisnąć klawisz enter, aby zaakceptować domyślną lokalizację. Na koniec zostaniesz zapytany, której aplikacji stanu początkowego używasz. Jeśli niedawno utworzyłeś konto, wybierz opcję 2, wprowadź nazwę użytkownika i hasło. Następnie instalacja zostanie zakończona.

rzućmy okiem na przykładowy skrypt, który został utworzony.

$ nano is_example.py

w linii 15 zobaczysz linię zaczynającą się od streamer = Streamer(bucket_ .... Ta linia tworzy nowe wiadro danych o nazwie „przykład strumienia Pythona” i jest powiązana z Twoim kontem. To skojarzenie dzieje się z powodu parametru access_key="..." w tej samej linii. Ta długa seria liter i cyfr to Twój klucz dostępu do konta stanu początkowego. Jeśli przejdziesz do swojego konta stanu początkowego w przeglądarce internetowej, kliknij swoją nazwę użytkownika w prawym górnym rogu, a następnie przejdź do „Moje ustawienia”, znajdziesz ten sam klucz dostępu tutaj w”klucze dostępu strumieniowego”.

klucze dostępu do strumienia stanu początkowego

za każdym razem, gdy utworzysz strumień Danych, ten klucz dostępu skieruje ten strumień danych na twoje konto (więc nie udostępniaj nikomu swojego klucza).

Uruchom skrypt testowy, aby upewnić się, że możemy utworzyć strumień danych do konta stanu początkowego. Uruchom następujące:

$ python is_example.py

wróć do stanu początkowego konta w przeglądarce internetowej. Nowe wiadro danych o nazwie „przykład strumienia Pythona” powinno pojawić się po lewej stronie w półce dziennika (być może trzeba będzie odświeżyć stronę). Kliknij na to wiadro, a następnie kliknij ikonę Waves, aby wyświetlić dane testowe.

stan początkowy przykładowy pulpit nawigacyjny strumienia w Pythonie

jeśli używasz Pythona 3, możesz zainstalować moduł Streamera stanu początkowego, który możesz zainstalować za pomocą następującego polecenia:

pip3 install ISStreamer

teraz jesteśmy gotowi skonfigurować czujnik temperatury za pomocą Pi, aby przesyłać temperaturę do deski rozdzielczej.

rozwiązanie DHT22

do zbudowania tego rozwiązania potrzebne są następujące elementy:
– Czujnik Temperatury i wilgotności DHT22

DHT22 będzie miał trzy piny-5V, Gnd i dane. Na DHT22 powinna znajdować się etykieta pin dla zasilania (np. ” + ” lub „5V”). Podłącz to do Pina 2 (prawy górny pin, 5V) Pi. Pin Gnd będzie oznaczony jako ” – ” lub ” Gnd ” lub coś równoważnego. Podłącz to do pinu 6 Gnd (Dwa Piny poniżej pinu 5V) na Pi. Pozostały pin na DHT22 to pin danych i będzie oznaczony jako ” out ” lub ” s ” lub „data”. Podłącz to do jednego z pinów GPIO na Pi, takich jak gpio4 (pin 7). Po podłączeniu włącz Pi.

do tego rozwiązania będziemy musieli użyć Pythona 3 i biblioteki CircuitPython, ponieważ Adafruit przestarzała Biblioteka Pythona DHT.

zainstaluj moduł Circuitpython-DHT Python w wierszu polecenia, aby odczyt danych z czujnika DHT22 był bardzo łatwy:

$ pip3 install adafruit-circuitpython-dht
$ sudo apt-get install libgpiod2

po zainstalowaniu naszego systemu operacyjnego wraz z dwoma modułami Pythona do odczytu danych z czujników i wysyłania danych do stanu początkowego jesteśmy gotowi do napisania naszego skryptu Pythona. Poniższy skrypt utworzy / dołączy do zasobnika danych stanu początkowego, odczyta dane czujnika DHT22 i wyśle te dane do Pulpitu Nawigacyjnego w czasie rzeczywistym. Wszystko, co musisz zrobić, to zmodyfikować linie 6-11.

  • linia 7 – wartość ta powinna być unikalna dla każdego węzła/czujnika temperatury. To może być nazwa pokoju Twojego węzła czujników, fizyczna lokalizacja, unikalny identyfikator lub cokolwiek innego. Po prostu upewnij się, że jest unikalny dla każdego węzła, aby zapewnić, że dane z tego węzła trafiają do własnego strumienia danych w pulpicie nawigacyjnym.
  • linia 8-jest to nazwa zasobnika danych. Można to zmienić w dowolnym momencie w interfejsie stanu początkowego.
  • linia 9 – to jest Twój klucz kubełkowy. Musi to być ten sam klucz wiadra dla każdego węzła, który ma być wyświetlany w tym samym pulpicie nawigacyjnym.
  • linia 10 – to jest Twój klucz dostępu do konta stanu początkowego. Skopiuj i wklej ten klucz z konta stanu początkowego.
  • linia 11 – jest to czas między odczytami czujnika. Zmienić odpowiednio.
  • linia 12-Możesz określić jednostki metryczne lub imperialne na linii 11.

po ustawieniu linii 7-12 w skrypcie Pythona na Pi, Zapisz i zamknij Edytor tekstu. Uruchom skrypt za pomocą następującego polecenia:

$ python3 tempsensor.py
oto przykład użycia czujnika DHT22 z Raspberry Pi

teraz będziesz miał wysyłanie danych do pulpitu stanu początkowego. Przejdź do ostatniej sekcji tego artykułu, aby uzyskać szczegółowe informacje na temat dostosowywania pulpitu nawigacyjnego.

rozwiązanie DSB18B20

do zbudowania tego rozwiązania potrzebne są następujące elementy:
– Czujnik Temperatury DSB18B20
– Rezystor 10k
– Płyta chlebowa
– 40-pinowa Płyta Breakout + Kabel Taśmowy
– Przewody

kabel taśmowy łączy się z pinami GPIO na Pi. DS18B20 posiada trzy przewody. Czerwony przewód łączy się z 3,3 V. przewód niebieski / czarny łączy się z uziemieniem. Żółty przewód łączy się z rezystorem podciągającym / pinem 4. Po podłączeniu zasilania włącz Pi.

najnowsza wersja Raspbian (jądro 3.18) wymaga dodatku do /boot / config.plik txt dla Pi do komunikacji z DS18B20. Wykonaj następujące czynności, aby edytować ten plik:

$ sudo nano /boot/config.txt

jeśli poniższy wiersz nie jest jeszcze w tym Pliku (jeśli jest, prawdopodobnie znajduje się na dole pliku), dodaj go i zapisz plik.

dtoverlay=w1-gpio,gpiopin=4

Uruchom ponownie Pi, aby zmiany odniosły skutek.

$ sudo reboot

aby uruchomić interfejs odczytu czujnika temperatury musimy wykonać dwie komendy. Przejdź do wiersza polecenia na Pi lub SSH do Pi. Wpisz następujące polecenia:

$ sudo modprobe w1-gpio$ sudo modprobe w1-therm

wyjście twojego czujnika temperatury jest teraz zapisywane do pliku na Twoim Pi. Aby znaleźć ten plik:

$ cd /sys/bus/w1/devices

w tym katalogu, nie będzie podkatalog, który zaczyna się od „28 -„. To, co pojawia się po „28 -„, to numer seryjny czujnika. cd do tego katalogu. Wewnątrz tego katalogu plik o nazwie w1_slave zawiera dane wyjściowe twojego czujnika. Użyj nano, aby wyświetlić zawartość pliku. Po wprowadzeniu pliku będzie on wyglądał mniej więcej tak:

a2 01 4b 46 7f ff 0e 10 d8 : crc=d8 YESa2 01 4b 46 7f ff 0e 10 d8 t=26125

liczba PO „t=” jest liczbą, którą chcemy. Jest to temperatura w 1/1000 stopni Celsjusza(w powyższym przykładzie temperatura wynosi 26.125 C). Potrzebujemy tylko prostego programu, który odczytuje ten plik i przetwarza tę liczbę. Dojdziemy do tego za chwilę.

wszystko jest już gotowe do rozpoczęcia przesyłania strumieniowego danych. Aby otworzyć edytor tekstu, wpisz następujące polecenie w wierszu polecenia:

$ nano temperature.py

skopiuj i wklej poniższy kod do edytora tekstu.

musisz umieścić swój Initial State access key on line 6 w miejsce PUT_YOUR_ACCESS_KEY_HERE (skopiuj klucz strumieniowy do schowka z „Moje Konto” i wklej go do kodu w nano w terminalu).

linia 6 utworzy wiadro o nazwie „strumień temperatury” na koncie stanu początkowego(zakładając, że poprawnie podałeś access_key w tej samej linii). Linie 8 do 30 tego skryptu po prostu łączą się z czujnikiem DS18B20, aby odczytać jego temperaturę z omawianego wcześniej pliku w1_slave. Funkcja read_temp_raw () w linii 15 odczytuje surowy plik w1_slave. Funkcja read_temp () w linii 21 przetwarza temperaturę z tego pliku. Linia 34 wywołuje te funkcje, aby uzyskać aktualną temperaturę. Linia 35 zamienia temperaturę z Celsjusza na Fahrenheita. Linie 35 i 36 przesyłają temperaturę na Twoje konto stanu początkowego. Linia 37 zatrzymuje skrypt na 0,5 sekundy, ustawiając jak często czujnik temperatury będzie odczytywany i przesyłany strumieniowo.

jesteśmy gotowi do rozpoczęcia streamingu. Uruchom następujące polecenie:

$ sudo python temperature.py

wróć do konta stanu początkowego w przeglądarce internetowej i poszukaj nowego zasobnika danych o nazwie strumień temperatury. Powinieneś zobaczyć przesyłanie danych temperatury na żywo. Zmieniaj temperaturę czujnika, trzymając go w dłoni lub wkładając do szklanki lodu.

teraz będziesz miał wysyłanie danych do pulpitu stanu początkowego. Przejdź do ostatniej sekcji tego artykułu, aby uzyskać szczegółowe informacje na temat dostosowywania pulpitu nawigacyjnego.

rozwiązanie BME280

zbuduj To rozwiązanie w następujący sposób:
– BME280 Czujnik ciśnienia, temperatury, & wilgotności

jeśli używasz BME280, który nie pochodzi od Adafruit, twoja konfiguracja i Kod będą inne. Przykład użycia czujnika BME280 można znaleźć w tym artykule na temat monitorowania wilgotności w przestrzeni indeksowania.

ten czujnik jest wyposażony w szpilki, które musisz lutować na czujniku. Polecam użycie płyty do krojenia chleba z długimi kołkami w dół do płyty do krojenia chleba, aby ułatwić lutowanie. Po zakończeniu musimy podłączyć czujnik do Pi.

podłącz pin VIN na czujniku do Pina 3.3 V 1 na Pi. Podłącz pin GND na czujniku pin uziemienia 6 na Pi. Podłącz pin SCK na czujniku do pin SCL 5 na Pi. Podłącz pin SDI na czujniku do pin SDA 3 na Pi.

musisz używać Pythona 3 do tego rozwiązania i zainstalować moduł Streamera stanu początkowego przy użyciu metody instalacji pip3. Będziesz także musiał zainstalować kilka bibliotek Adafruit Python.

pip3 install adafruit-blinka
pip3 install pureio
pip3 install spidev
pip3 install adafruit-GPIO
pip3 install adafruit-circuitpython-bme280

aby użyć czujnika, musimy włączyć I2C na Pi.

sudo raspi-config

spowoduje to otwarcie narzędzia do konfiguracji oprogramowania Raspberry Pi. Przejdź do opcji 5 opcje łączenia. Stąd przejdź do I2C. wyświetli monit, aby zapytać, czy chcesz włączyć I2C, wybierz Tak i zakończ. Teraz masz włączony I2C do komunikacji z czujnikiem.

możemy to przetestować, uruchamiając następujące:

sudo i2cdetect -y 1

sprawdzi to, czy Twój Pi widzi czujnik. W sposób, w jaki jest podłączony, powinien pokazać czujnik pod adresem 77. Jeśli nie wykryjesz czujnika, uruchom ponownie Pi, uruchom ponownie opcję interfejsu I2C na Pi i spróbuj ponownie.

po wykryciu czujnika nadszedł czas, aby uruchomić nasz główny kod, który wyśle dane do stanu początkowego. Utworzono plik o nazwie bme280sensor.py z Komendą nano. Skopiuj i wklej kod z gist do edytora tekstu. Musisz wprowadzić zmiany w liniach 12-19.

  • linia 12 – wartość ta powinna być unikalna dla każdego węzła/czujnika temperatury. To może być nazwa pokoju Twojego węzła czujników, fizyczna lokalizacja, unikalny identyfikator lub cokolwiek innego. Po prostu upewnij się, że jest unikalny dla każdego węzła, aby zapewnić, że dane z tego węzła trafiają do własnego strumienia danych w pulpicie nawigacyjnym.
  • linia 13 — jest to nazwa wiadra danych. Można to zmienić w dowolnym momencie w interfejsie stanu początkowego.
  • linia 14 – to jest Twój klucz kubełkowy. Musi to być ten sam klucz wiadra dla każdego węzła, który ma być wyświetlany w tym samym pulpicie nawigacyjnym.
  • linia 15 – to jest Twój klucz dostępu do konta stanu początkowego. Skopiuj i wklej ten klucz z konta stanu początkowego.
  • linia 17 – to jest ciśnienie Twojej lokalizacji (hPa) na poziomie morza. Możesz znaleźć te informacje na większości stron pogodowych.
  • linia 18 — jest to czas między odczytami czujnika. Zmienić odpowiednio.
  • Linia 19 – tutaj możesz podać jednostki metryczne lub imperialne.

po ustawieniu linii 12-19 w skrypcie Pythona na Pi, Zapisz i zamknij Edytor tekstu. Uruchom skrypt za pomocą następującego polecenia:

$ python3 bme280sensor.py

teraz będziesz miał dane wysyłane do pulpitu stanu początkowego. Przejdź do ostatniej sekcji tego artykułu, aby uzyskać szczegółowe informacje na temat dostosowywania pulpitu nawigacyjnego.

Sense Hat Solution

do zbudowania tego rozwiązania potrzebne są następujące elementy:
-Raspberry Pi Sense HAT
-6″ 40-pinowy przedłużacz IDE Męski na Żeński (opcjonalny dla dokładności temperatury)

pierwszym krokiem w użyciu Sense HAT jest fizyczna instalacja go na Pi. Z zasilaniem Pi, przymocuj kapelusz, jak pokazano poniżej.

połączenie Sense HAT z Raspberry Pi

jeśli zdecydujesz się użyć rozwiązania pokazanego powyżej, możesz zauważyć, że odczyty temperatury Sense HAT będą nieco wysokie — to dlatego, że są. Winowajcą jest ciepło wytwarzane przez procesor Pi, który podgrzewa powietrze wokół kapelusza Sense, gdy siedzi na szczycie Pi. Aby czujnik temperatury był użyteczny, musimy albo odsunąć czapkę od Pi, albo spróbować skalibrować odczyt czujnika temperatury. Dobrym rozwiązaniem na oddalenie czujnika od Pi jest kabel, który pozwala czapce Sense zwisać z dala od Pi. 6-calowy, 40-pinowy przedłużacz IDE męski na żeński zrobi wszystko.

Raspberry Pi w przypadku z przedłużaczem łączącym się z kapeluszem Sense HAT

gdy zdecydujesz się na dwie opcje, Włącz Pi. Musimy zainstalować bibliotekę Pythona, aby ułatwić odczyt wartości czujników z kapelusza Sense. Po pierwsze, musisz upewnić się, że wszystko jest aktualne w Twojej wersji Raspbian:

$ sudo apt-get update

następnie zainstaluj bibliotekę Pythona Sense HAT:

$ sudo apt-get install sense-hat

zrestartuj Pi. Jesteśmy gotowi przetestować sense HAT, odczytując z niego dane z czujników i wysyłając je do stanu początkowego.

Utwórz plik o nazwie sensehat i otwórz go w edytorze tekstu, wpisując follwoing w wierszu polecenia:

$ nano sensehat.py

skopiuj i wklej poniższy kod w edytorze tekstu.

zauważ w pierwszej linii, że importujemy bibliotekę SenseHat do skryptu. Zanim uruchomisz ten skrypt, musimy skonfigurować nasze parametry użytkownika.

w szczególności musisz ustawić ACCESS_KEY na klucz dostępu do konta stanu początkowego. Można zmienić BUCKET_NAME i SENSOR_LOCATION_NAME na rzeczywistą lokalizację czujnika. Zapisz i zamknij Edytor tekstu.

w wierszu polecenia na Pi, uruchom skrypt:

$ sudo python sensehat.py

teraz będziesz miał dane wysyłane do pulpitu stanu początkowego. Przejdź do ostatniej sekcji tego artykułu, aby uzyskać szczegółowe informacje na temat dostosowywania pulpitu nawigacyjnego.

Dostosuj pulpit stanu początkowego

dzięki wbudowanemu czujnikowi temperatury Raspberry Pi możesz teraz przejść do konta stanu początkowego i przejrzeć swoje dane. Możesz kliknąć prawym przyciskiem myszy Kafelek, aby zmienić typ wykresu, a następnie kliknąć Edytuj kafelki, aby zmienić rozmiar i przenieść kafelki. Polecam użycie termostatu miernika temperatury i poziomu cieczy miernika wilgotności. Możesz tworzyć wykresy liniowe zarówno dla temperatury, jak i wilgotności, aby zobaczyć zmiany w czasie. Możesz także dodać obraz tła do Pulpitu nawigacyjnego.

możesz ustawić Alerty wyzwalania, aby uzyskać wiadomość SMS lub e-mail, jeśli temperatura spadnie poniżej lub przekroczy określony próg. Przejdź do wiadra danych i kliknij Ustawienia. Stamtąd przejdź do zakładki wyzwalacze. Wprowadź klucz strumienia, który chcesz monitorować, operatora, którego chcesz użyć, i wartość progową. Kliknij znak plus, aby dodać WYZWALACZ. Następnie wprowadź swój adres e-mail lub numer telefonu, aby otrzymać alert i kliknij znak plus. Po ustawieniu wszystkich wyzwalaczy kliknij przycisk Gotowe na dole.

panel kontrolny temperatury stanu początkowego

po utworzeniu czujnika temperatury Raspberry Pi przy użyciu czujnika i Raspberry Pi możesz zacząć myśleć o tym, jakie inne dane środowiskowe możesz monitorować dalej.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.

Previous post Master Gardener: Cassia trees are easy to grow
Next post Uczenie adaptacyjne