Innehållsförteckning:

Luftfuktighet i molnet: 5 steg
Luftfuktighet i molnet: 5 steg

Video: Luftfuktighet i molnet: 5 steg

Video: Luftfuktighet i molnet: 5 steg
Video: Ich mache diesen Brokkoli 5 Mal pro Woche, seit ich dieses Rezept entdeckt habe! 🔝 5 Rezepte 2024, Juli
Anonim
Luftfuktighet i molnet
Luftfuktighet i molnet

Sommaren kommer, och de utan luftkonditionering bör vara beredda på att styra atmosfären inomhus manuellt. I det här inlägget beskriver jag det moderna sättet att mäta de viktigaste parametrarna för mänsklig komfort: temperatur och luftfuktighet. Denna insamlade data skickas till molnet och behandlas där.

Tillbehör

Jag använder ett Raspberry Pi -kort och DHT22 -sensorn. Du kan göra samma sak på alla datorer som har Internet, GPIO och Python. Den billigare DHT11 -sensorn fungerar också bra.

Steg 1: Förbereda hårdvara

Förbereda hårdvara
Förbereda hårdvara
Förbereda hårdvara
Förbereda hårdvara
Förbereda hårdvara
Förbereda hårdvara
Förbereda hårdvara
Förbereda hårdvara

Låt oss börja från början, eftersom jag inte använde min Raspberry Pi på ganska lång tid.

Vi kommer att behöva:

  • Raspberry Pi-kort (eller annan IoT-orienterad plattform).
  • SD- eller microSD -kort (beroende på plattform).
  • 5V/1A via mikro-USB. LAN-kabel, som ger internetanslutning.
  • HDMI -skärm, RCA -skärm eller UART -port (för att aktivera SSH).

Det allra första steget är att ladda ner Raspbian. Jag har valt Lite -versionen, eftersom jag ska använda SSH istället för display.

Saker och ting har förändrats sedan förra gången jag gjorde det: nu finns det en fantastisk bränningsprogramvara som heter Etcher, som fungerar perfekt och har en fantastisk design.

Efter att bildbränningen var klar satte jag in SD -kortet i min Pi, kopplade in LAN- och strömkablarna, och efter ett tag registrerade min router den nya enheten.

Bra! Låt oss fortsätta och SSH in i det.

Säkerhet är OK, jag gillar det, men det här gör det lite svårare. Jag använder UART-USB-adapter för att komma åt skalet och aktivera SSH …

Att använda en display istället för UART gör det mycket enklare.

Efter omstart är jag äntligen inne.

Först och främst, låt oss uppdatera:

sudo apt update && sudo apt upgrade -y

Låt oss nu ansluta den här nya enheten till molnet.

Steg 2: Installera Cloud4RPi

Installera Cloud4RPi
Installera Cloud4RPi

Jag bestämde mig för att prova molnplattformen Cloud4RPi, som är designad för IoT.

Enligt dokumenten behöver vi följande paket för att få det att fungera:

sudo apt installera git python3 python3 -pip -y

Klientbiblioteket kan installeras i ett enda kommando:

sudo pip3 installera cloud4rpi

Nu behöver vi lite exempelkod.

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

Det körbara skriptet är control.py.

Vi behöver en token som gör att Cloud4RPi kan länka enheterna till kontona. För att få ett, skapa ett konto på cloud4rpi.io och tryck på knappen Ny enhet på den här sidan. Ersätt _YOUR_DEVICE_TOKEN_ -strängen i filen control.py med enhetens token och spara filen. Nu är vi redo för den första lanseringen.

sudo python3 control.py

Öppna enhetssidan och kontrollera att data finns där.

Låt oss nu gå till verkliga data.

Steg 3: Anslutning av sensorn

Anslutning av sensorn
Anslutning av sensorn

Vi kommer att behöva:

  • DHT22 eller DHT11 fuktsensor
  • Uppdragningsmotstånd (5-10 KΩ)
  • WiresThe

DHT22 -sensor mäter temperatur och luftfuktighet samtidigt. Kommunikationsprotokollet är inte standardiserat, så vi behöver inte aktivera det i raspi -config - en enkel GPIO -pin är mer än tillräckligt.

För att skaffa data använder jag Adafruits fantastiska bibliotek för DHT -sensorer, men det kanske inte fungerar som det är. Jag hittade en gång en konstig konstant fördröjning av koden, som inte fungerade för min hårdvara, och efter två år väntar min dragbegäran fortfarande. Jag har också ändrat kortdetekteringskonstanterna eftersom min Raspberry Pi 1 med BCM2835 överraskande upptäcktes som Raspberry Pi 3. Jag önskar att det var sant … Därför rekommenderar jag att använda min gaffel. Om du upplever några problem med det, prova det ursprungliga förvaret, kanske fungerar det för någon, men jag är inte en av dem.

git -klon https://github.com/Himura2la/Adafruit_Python_DHT.gitcd Adafruit_Python_DHT

Eftersom biblioteket är skrivet i C kräver det kompilering, så du behöver paketet build-essential och python-dev.

sudo apt install build-essential python-dev -ysudo python setup.py install

Medan paketen installeras ansluter du DHT22 enligt bilden.

Och testa det:

cd ~ python -c "importera Adafruit_DHT som d; skriv ut d.read_retry (d. DHT22, 4)"

Om du ser något liknande (39.20000076293945, 22.600000381469727) bör du veta att detta är luftfuktigheten i procent och temperaturen i Celsius.

Nu ska vi sätta ihop allt!

Steg 4: Skicka sensoravläsningar till molnet

Skicka sensoravläsningar till molnet
Skicka sensoravläsningar till molnet
Skicka sensoravläsningar till molnet
Skicka sensoravläsningar till molnet

Jag använder control.py som bas och lägger till DHT22 -interaktionen i den.

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

Ta bort provkoden som på bilden ovan.

Eftersom DHT22 returnerar både temperatur och luftfuktighet i ett enda samtal kommer jag att lagra dem globalt och uppdatera bara en gång i en begäran, förutsatt att fördröjningen mellan dem är mer än 10 sekunder. Tänk på följande kod som förvärvar DHT22 -data:

importera Adafruit_DHT

temp, hum = Ingen, ingen

last_update = time.time () - 20

def update_data ():

global 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 () returrunda (temp, 2) om temp inte är Ingen annan Ingen def get_h (): update_data () returrunda (hum, 2) om hum är inte Ingen annan Ingen

Sätt in den här koden efter den befintliga importen och redigera variabelavsnittet så att den använder de nya funktionerna:

variabler = {'DHT22 Temp': {'type': 'numeric', 'bind': get_t}, 'DHT22 Humidity': {'type': 'numeric', 'bind': get_h}, 'CPU Temp': {'type': 'numeric', 'bind': cpu_temp}}

Om du tycker att manipulationerna är förvirrande, ta den slutliga versionen av filen. Tryck på den röda knappen för att starta dataöverföringen:

Sedan kan du kontrollera enhetssidan.

python3 cloud_dht22.py

Sedan kan du kontrollera enhetssidan.

Du kan lämna det som det är, men jag föredrar att ha en tjänst för allt. Detta säkerställer att skriptet alltid körs. Skapa en tjänst med det helautomatiska skriptet som du redan har i katalogen cloud4rpi-raspberrypi-python:

service_install.sh cloud_dht22.py

Starta tjänsten:

sudo service cloud4rpi start

Och kolla:

pi@raspberrypi: ~ $ sudo service cloud4rpi status -l ● cloud4rpi.service -Cloud4RPi -demon Lastad: laddad (/lib/systemd/system/cloud4rpi.service; aktiverad) Aktiv: aktiv (körs) sedan ons 2017-05-17 20: 22: 48 UTC; 1 min sedan Main PID: 560 (python) CGrupp: /system.slice/cloud4rpi.service └─560/usr/bin/python /home/pi/cloud_dht22.py

17 maj 20:22:51 raspberrypi python [560]: Publicera iot-hub/meddelanden: {'type': 'config', 'ts': '2017-05-17T20… y'}]}

17 maj 20:22:53 raspberrypi python [560]: Publicera iot-hub/meddelanden: {'type': 'data', 'ts': '2017-05-17T20: 2… 40'}} 17 maj 20: 22:53 raspberrypi python [560]: Publicera iot-hub/meddelanden: {'type': 'system', 'ts': '2017-05-17T20….4'}}

Om allt fungerar som förväntat kan vi fortsätta och använda Cloud4RPi -plattformens funktioner för att manipulera med data.

Steg 5: Diagram och larm

Diagram och larm
Diagram och larm
Diagram och larm
Diagram och larm
Diagram och larm
Diagram och larm

Först och främst, låt oss plotta variablerna för att se hur de ändras. Detta kan göras genom att lägga till en ny kontrollpanel och lägga in de önskade diagrammen i den.

En annan sak som vi kan göra här är att ställa in en varning. Med den här funktionen kan du konfigurera det säkra intervallet för en variabel. Så snart intervallet är överskridet skickar det ett e -postmeddelande. På redigeringssidan på kontrollpanelen kan du växla till varningar och ställa in en.

Direkt efter det började luftfuktigheten i mitt rum minska snabbt utan någon märkbar anledning, och larmet följde snart.

Du kan använda Cloud4RPi gratis med vilken hårdvara som helst som kan köra Python. Som för mig, nu vet jag alltid när jag ska slå på luftfuktaren, och jag kan till och med ansluta den till ett relä för fjärrkontroll via Cloud4RPi. Jag är beredd på värmen! Välkommen sommar!

Med Cloud4RPi kan du fjärrstyra din Raspberry Pi och andra IoT -enheter i realtid. Besök vår webbplats och anslut obegränsade enheter gratis.

Rekommenderad: