Spisu treści:

Wilgotność w chmurze: 5 kroków
Wilgotność w chmurze: 5 kroków

Wideo: Wilgotność w chmurze: 5 kroków

Wideo: Wilgotność w chmurze: 5 kroków
Wideo: Praca w chmurze - przechowywanie i udostępnianie 2024, Lipiec
Anonim
Wilgotność w chmurze
Wilgotność w chmurze

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.

Kieszonkowe dzieci

Używam płytki Raspberry Pi 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

Przygotowanie sprzętu
Przygotowanie sprzętu
Przygotowanie sprzętu
Przygotowanie sprzętu
Przygotowanie sprzętu
Przygotowanie sprzętu
Przygotowanie sprzętu
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 kabel micro-USB. 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, kiedy to robiłem: 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.

Świetny! Przejdźmy dalej i SSH do tego.

Bezpieczeństwo jest w porządku, podoba mi się, ale to trochę utrudnia sprawę. Użyję adaptera UART-USB, aby uzyskać dostęp do powłoki i włączyć SSH…

Użycie wyświetlacza zamiast UART znacznie to ułatwia.

Po ponownym uruchomieniu w końcu jestem w środku.

Po pierwsze, zaktualizujmy:

aktualizacja sudo apt && aktualizacja sudo apt -y

Teraz połączmy to nowe urządzenie z chmurą.

Krok 2: Instalacja Cloud4RPi

Instalacja Cloud4RPi
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 python3 python3-pip -y

Bibliotekę klienta można zainstalować jednym poleceniem:

sudo pip3 zainstaluj cloud4rpi

Teraz potrzebujemy przykładowego kodu.

klon git https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python && cd cloud4rpi-raspberrypi-python

Skrypt wykonywalny to control.py.

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 control.py tokenem urządzenia i zapisz plik. Teraz jesteśmy gotowi do pierwszego uruchomienia.

sudo python3 control.py

Otwórz stronę urządzenia i sprawdź, czy są tam dane.

Przejdźmy teraz do danych ze świata rzeczywistego.

Krok 3: Podłączanie czujnika

Podłączanie czujnika
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żę.

klon git https://github.com/Himura2la/Adafruit_Python_DHT.gitcd 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 4: Wysyłanie odczytów czujnika do chmury

Wysyłanie odczytów czujnika do chmury
Wysyłanie odczytów czujnika do chmury
Wysyłanie odczytów czujnika do chmury
Wysyłanie odczytów czujnika do chmury

Użyję pliku control.py jako bazy i dodam do niego interakcję DHT22.

cp cloud4rpi-raspberrypi-python/control.py./cloud_dht22.pycp cloud4rpi-raspberrypi-python/rpi.py./rpi.pyvi cloud_dht22.py

Usuń przykładowy kod, jak na obrazku powyżej.

Ponieważ DHT22 zwraca zarówno temperaturę, jak i wilgotność w jednym wywołaniu, zamierzam przechowywać je globalnie i aktualizować 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, szum = Brak, Brak

last_update = czas.czas() - 20

def aktualizacja_danych():

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 Żadne inne 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 } }

Jeśli uważasz, że manipulacje są mylące, pobierz ostateczną wersję tego pliku. Wciśnij czerwony przycisk, aby rozpocząć transfer danych:

Następnie możesz sprawdzić stronę urządzenia.

python3 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, który już masz w katalogu cloud4rpi-raspberrypi-python:

service_install.sh cloud_dht22.py

Uruchomienie usługi:

usługa sudo cloud4rpi start

I sprawdzając to:

pi@raspberrypi:~ $ sudo service cloud4rpi status -l● cloud4rpi.service - demon Cloud4RPi Załadowany: załadowany (/lib/systemd/system/cloud4rpi.service; włączony) Aktywny: aktywny (działa) 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/wiadomości: {'typ': 'config', 'ts': '2017-05-17T20…y'}]}

17 maja 20:22:53 raspberrypi python[560]: Publikowanie iot-hub/wiadomości: {'typ': 'dane', 'ts': '2017-05-17T20:2…40'}} 17 maja 20: 22:53 raspberrypi python[560]: Publikowanie iot-hub/wiadomości: {'typ': '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 5: Wykresy i alarmy

Wykresy i alarmy
Wykresy i alarmy
Wykresy i alarmy
Wykresy i alarmy
Wykresy i alarmy
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!

Dzięki Cloud4RPi możesz zdalnie sterować Raspberry Pi i innymi urządzeniami IoT w czasie rzeczywistym. Odwiedź naszą stronę i podłącz nieograniczoną liczbę urządzeń za darmo.

Zalecana: