Spisu treści:
- Krok 1: Przygotowanie sprzętu
- Krok 2: Włączanie SSH
- Krok 3: Instalacja Cloud4RPi
- Krok 4: Podłączanie czujnika
- Krok 5: Wysyłanie odczytów czujnika do chmury
- Krok 6: Wykresy i alarmy
Wideo: Monitorowanie temperatury i wilgotności za pomocą Raspberry Pi: 6 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
Zbliża się lato, a osoby bez klimatyzacji powinny być przygotowane na ręczne kontrolowanie atmosfery w pomieszczeniu. W tym poście opisuję nowoczesny sposób pomiaru najważniejszych parametrów komfortu człowieka: temperatury i wilgotności. Zebrane dane są przesyłane do chmury i tam przetwarzane.
Używam płytki Raspberry Pi 1 i czujnika DHT22. Możesz zrobić to samo na dowolnym komputerze, który ma Internet, GPIO i Python. Tańszy czujnik DHT11 również działa dobrze.
Krok 1: Przygotowanie sprzętu
Zacznijmy od samego początku, ponieważ dość długo nie korzystałem z Raspberry Pi.
Będziemy potrzebować:
- Płyta Raspberry Pi (lub inna platforma zorientowana na IoT).
- Karta SD lub microSD (w zależności od platformy).
- 5V/1A przez micro-USB.
- Kabel LAN, który zapewnia połączenie z Internetem.
- Wyświetlacz HDMI, wyświetlacz RCA lub port UART (w celu włączenia SSH).
Pierwszym krokiem jest pobranie Raspbian. Wybrałem wersję Lite, ponieważ zamierzam używać SSH zamiast wyświetlania. Rzeczy się zmieniły od ostatniego razu: teraz jest świetne oprogramowanie do nagrywania o nazwie Etcher, które działa doskonale i ma oszałamiający wygląd.
Po zakończeniu nagrywania obrazu włożyłem kartę SD do mojego Pi, podłączyłem kabel LAN i zasilający, a po chwili router zarejestrował nowe urządzenie.
Krok 2: Włączanie SSH
SSH jest domyślnie wyłączone. Mogę użyć konwertera UART-USB lub po prostu podłączyć wyświetlacz, aby uzyskać dostęp do powłoki i włączyć SSH.
Po ponownym uruchomieniu w końcu jestem gotowy. Najpierw zaktualizujmy:
aktualizacja sudo apt && aktualizacja sudo apt -y
Teraz połączmy to nowe urządzenie z chmurą.
Krok 3: Instalacja Cloud4RPi
Postanowiłem wypróbować platformę chmurową o nazwie Cloud4RPi, która jest przeznaczona dla IoT.
Zgodnie z dokumentacją do uruchomienia potrzebujemy następujących pakietów:
sudo apt zainstaluj git python python-pip -y
Bibliotekę klienta można zainstalować jednym poleceniem:
sudo pip zainstaluj cloud4rpi
Teraz potrzebujemy przykładowego kodu, aby upewnić się, że działa.
git clone https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python && cd cloud4rpi-raspberrypi-python git clone https://gist.github.com/f8327a1ef09ceb1ef142fa68701270de.git e && mv minimal./pyminimal. && rmdir -re
Postanowiłem uruchomić minimal.py, ale nie podobają mi się fałszywe dane. Na szczęście w tym przykładzie zauważyłem prosty sposób na urzeczywistnienie danych diagnostycznych. Dodaj jeszcze jeden import do sekcji importów:
z importu rpi *
Następnie usuń te funkcje, które dostarczają fałszywe dane (rpi.py definiuje je teraz):
def cpu_temp():
return 70 def ip_address(): return '8.8.8.8' def host_name(): return 'hostname' def os_name(): return 'osx'
Teraz potrzebujemy tokena, który pozwoli Cloud4RPi połączyć urządzenia z kontami. Aby je zdobyć, utwórz konto na cloud4rpi.io i naciśnij przycisk Nowe urządzenie na tej stronie. Zastąp ciąg _YOUR_DEVICE_TOKEN_ w pliku minimal.py tokenem urządzenia i zapisz plik. Teraz jesteśmy gotowi do pierwszego uruchomienia.
python minimal.py
Otwórz stronę urządzenia i sprawdź, czy są tam dane.
Przejdźmy teraz do danych ze świata rzeczywistego.
Krok 4: Podłączanie czujnika
Będziemy potrzebować:
- Czujnik wilgotności DHT22 lub DHT11
- Rezystor podciągający (5-10 KΩ)
- Przewody
Czujnik DHT22 mierzy jednocześnie temperaturę i wilgotność. Protokół komunikacyjny nie jest ustandaryzowany, więc nie musimy go włączać w raspi-config - wystarczy prosty pin GPIO.
Aby zebrać dane, użyję świetnej biblioteki Adafruit dla czujników DHT, ale może nie działać tak, jak jest. Kiedyś znalazłem dziwne ciągłe opóźnienie w kodzie, które nie działało na moim sprzęcie, a po dwóch latach moje żądanie ściągnięcia wciąż jest w toku. Zmieniłem również stałe wykrywania płytki, ponieważ mój Raspberry Pi 1 z BCM2835 został niespodziewanie wykryty jako Raspberry Pi 3. Chciałbym, żeby to była prawda… Dlatego polecam używać mojego widelca. Jeśli masz z tym jakieś problemy, wypróbuj oryginalne repozytorium, może działa dla kogoś, ale ja do nich nie należę.
git klon https://github.com/Himura2la/Adafruit_Python_DHT…. Adafruit_Python_DHT
Ponieważ biblioteka jest napisana w C, wymaga kompilacji, więc potrzebujesz pakietów build-essential i python-dev.
sudo apt install build-essential python-dev -ysudo python setup.py install
Podczas instalacji pakietów podłącz DHT22, jak pokazano na rysunku.
I przetestuj to:
cd ~python -c "importuj Adafruit_DHT jako d; print d.read_retry(d. DHT22, 4)"
Jeśli widzisz coś takiego (39.2000076293945, 22.60000381469727), powinieneś wiedzieć, że jest to wilgotność w procentach i temperatura w stopniach Celsjusza.
Teraz zbierzmy wszystko razem!
Krok 5: Wysyłanie odczytów czujnika do chmury
Użyję minimal.py jako bazy i dodam do niej interakcję DHT22.
cd cloud4rpi-raspberrypi-python
cp minimal.py ~/cloud_dht22.py cp rpi.py ~/rpi.py cd vi cloud_dht22.py
Ponieważ DHT22 zwraca zarówno temperaturę, jak i wilgotność w jednym wywołaniu, przechowuję je globalnie i aktualizuję tylko raz w żądaniu, zakładając, że opóźnienie między nimi wynosi ponad 10 sekund. Rozważmy następujący kod, który pozyskuje dane DHT22:
importuj Adafruit_DHT
temp, hum = Brak, Brak last_update = time.time() - 20 def update_data(): globalne last_update, hum, temp if time.time() - last_update > 10: hum, temp = Adafruit_DHT.read_retry(Adafruit_DHT. DHT22, 4) last_update = time.time() def get_t(): update_data() return round(temp, 2) jeśli temp nie jest Żadne inne Brak def get_h(): update_data() return round(hum, 2) jeśli hum nie jest Nikt inny Brak
Wstaw ten kod po istniejących importach i edytuj sekcję zmiennych tak, aby korzystała z nowych funkcji:
zmienne = {
'DHT22 Temp': { 'type': 'numeric', 'bind': get_t }, 'DHT22 Humidity': { 'type': 'numeric', 'bind': get_h }, 'CPU Temp': { 'type ': 'numeric', 'bind': cpu_temp } }
Naciśnij czerwony przycisk, aby rozpocząć transfer danych:
python cloud_dht22.py
Następnie możesz sprawdzić stronę urządzenia.
Możesz zostawić to tak, jak jest, ale wolę mieć usługę na wszystko. Gwarantuje to, że skrypt jest zawsze uruchomiony. Tworzenie usługi z w pełni zautomatyzowanym skryptem:
wget -O https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python/blob/master/service_install.sh | sudo bash -s cloud_dht22.py
Uruchomienie usługi:
usługa sudo cloud4rpi start
I sprawdzając to:
pi@raspberrypi:~ $ status usługi sudo cloud4rpi -l
● cloud4rpi.service - demon Cloud4RPi Załadowany: załadowany (/lib/systemd/system/cloud4rpi.service; włączony) Aktywny: aktywny (uruchomiony) od środy 2017-05-17 20:22:48 UTC; 1min temu Główny PID: 560 (python) CGroup: /system.slice/cloud4rpi.service └─560 /usr/bin/python /home/pi/cloud_dht22.py 17 maja 20:22:51 raspberrypi python[560]: Publikowanie iot -hub/messages: {'type': 'config', 'ts': '2017-05-17T20…y'}]} 17 maja 20:22:53 raspberrypi python [560]: Publikowanie iot-hub/wiadomości: {'type': 'data', 'ts': '2017-05-17T20:2…40'}} 17 maja 20:22:53 raspberrypi python [560]: Publikowanie iot-hub/wiadomości: {'type': 'system', 'ts': '2017-05-17T20….4'}}
Jeśli wszystko działa zgodnie z oczekiwaniami, możemy kontynuować i wykorzystać możliwości platformy Cloud4RPi do manipulowania danymi.
Krok 6: Wykresy i alarmy
Przede wszystkim wykreślmy zmienne, aby zobaczyć, jak się zmieniają. Można to zrobić, dodając nowy Panel sterowania i umieszczając w nim wymagane wykresy.
Kolejną rzeczą, którą możemy tutaj zrobić, jest ustawienie Alertu. Ta funkcja umożliwia skonfigurowanie bezpiecznego zakresu dla zmiennej. Gdy tylko zakres zostanie przekroczony, wysyła powiadomienie e-mail. Na stronie edycji Panelu sterowania możesz przełączyć się na Alerty i skonfigurować je.
Zaraz potem wilgotność w moim pokoju zaczęła gwałtownie spadać bez zauważalnego powodu i wkrótce nastąpił alarm.
Możesz używać Cloud4RPi za darmo z dowolnym sprzętem, który jest w stanie uruchomić Pythona. Jeśli chodzi o mnie, teraz zawsze wiem, kiedy włączyć nawilżacz powietrza, a nawet mogę podłączyć go do przekaźnika w celu zdalnego sterowania przez Cloud4RPi. Jestem przygotowany na upały! Witamy lato!
Zalecana:
Monitorowanie temperatury i wilgotności za pomocą NODE MCU i BLYNK: 5 kroków
Monitorowanie temperatury i wilgotności za pomocą NODE MCU I BLYNK: Cześć GuysW tej instrukcji nauczmy się, jak uzyskać temperaturę i wilgotność atmosfery za pomocą czujnika temperatury i wilgotności DHT11 za pomocą aplikacji Node MCU i BLYNK
Monitorowanie temperatury i wilgotności w pomieszczeniu za pomocą ESP32 i AskSensors Cloud: 6 kroków
Monitorowanie temperatury i wilgotności w pomieszczeniu za pomocą ESP32 i AskSensors Cloud: W tym samouczku dowiesz się, jak monitorować temperaturę i wilgotność w pomieszczeniu lub biurku za pomocą DHT11 i ESP32 podłączonych do chmury.Aktualizacje naszych samouczków można znaleźć tutaj.DHT11 Specyfikacja:Czujnik DHT11 jest w stanie mierzyć temperaturę
Monitorowanie temperatury i wilgotności DHT za pomocą ESP8266 i platformy AskSensors IoT: 8 kroków
Monitorowanie temperatury i wilgotności DHT za pomocą ESP8266 i platformy AskSensors IoT: W poprzedniej instrukcji przedstawiłem przewodnik krok po kroku, jak rozpocząć pracę z nodeMCU ESP8266 i platformą AskSensors IoT. W tym samouczku podłączam czujnik DHT11 do węzła MCU. DHT11 to powszechnie stosowany czujnik temperatury i wilgotności
Monitorowanie temperatury i wilgotności za pomocą ESP-01 i DHT oraz chmury AskSensors: 8 kroków
Monitorowanie temperatury i wilgotności za pomocą ESP-01 i DHT oraz chmury AskSensors: W tej instrukcji nauczymy się monitorować pomiary temperatury i wilgotności za pomocą płyty IOT-MCU/ESP-01-DHT11 i platformy AskSensors IoT .Wybieram do tej aplikacji moduł IOT-MCU ESP-01-DHT11, ponieważ
Monitorowanie temperatury i wilgotności za pomocą SHT25 i Raspberry Pi: 5 kroków
Monitorowanie temperatury i wilgotności za pomocą SHT25 i Raspberry Pi: Niedawno pracowaliśmy nad różnymi projektami, które wymagały monitorowania temperatury i wilgotności, a następnie zdaliśmy sobie sprawę, że te dwa parametry odgrywają kluczową rolę w oszacowaniu wydajności pracy systemu. Zarówno w przemyśle