Innholdsfortegnelse:

Fuktighet i skyen: 5 trinn
Fuktighet i skyen: 5 trinn

Video: Fuktighet i skyen: 5 trinn

Video: Fuktighet i skyen: 5 trinn
Video: Основные ошибки при возведении перегородок из газобетона #5 2024, Juli
Anonim
Fuktighet i skyen
Fuktighet i skyen

Sommeren kommer, og de uten klimaanlegg bør være forberedt på å kontrollere atmosfæren innendørs manuelt. I dette innlegget beskriver jeg den moderne måten å måle de viktigste parameterne for menneskelig komfort: temperatur og fuktighet. Disse innsamlede dataene sendes til skyen og behandles der.

Rekvisita

Jeg bruker et Raspberry Pi -kort og DHT22 -sensoren. Du kan gjøre det samme på hvilken som helst datamaskin som har Internett, GPIO og Python. Den billigere DHT11 -sensoren fungerer også bra.

Trinn 1: Klargjøre maskinvare

Forbereder maskinvare
Forbereder maskinvare
Forbereder maskinvare
Forbereder maskinvare
Forbereder maskinvare
Forbereder maskinvare
Forbereder maskinvare
Forbereder maskinvare

La oss starte helt fra begynnelsen, ettersom jeg ikke brukte Raspberry Pi på lenge.

Vi trenger:

  • Raspberry Pi-kort (eller annen IoT-orientert plattform).
  • SD- eller microSD -kort (avhengig av plattformen).
  • 5V/1A via mikro-USB. LAN-kabel, som gir Internett-tilkobling.
  • HDMI -skjerm, RCA -skjerm eller UART -port (for å aktivere SSH).

Det aller første trinnet er å laste ned Raspbian. Jeg har valgt Lite -versjonen, ettersom jeg skal bruke SSH i stedet for skjerm.

Ting har endret seg siden sist jeg gjorde det: nå er det en flott brennende programvare som heter Etcher, som fungerer perfekt og har en fantastisk design.

Etter at bildeforbrenningen var fullført, satte jeg inn SD -kortet i Pi -en, koblet til LAN- og strømkablene, og etter en stund registrerte ruteren min den nye enheten.

Flott! La oss fortsette og SSH inn i det.

Sikkerhet er OK, jeg liker det, men dette gjør ting litt vanskeligere. Jeg bruker UART-USB-adapter for å få tilgang til skallet og aktivere SSH …

Å bruke en skjerm i stedet for UART gjør det mye enklere.

Etter omstart er jeg endelig inne.

Første ting først, la oss oppdatere:

sudo apt update && sudo apt upgrade -y

La oss nå koble denne nye enheten til nettskyen.

Trinn 2: Installere Cloud4RPi

Installere Cloud4RPi
Installere Cloud4RPi

Jeg bestemte meg for å prøve skyplattformen Cloud4RPi, som er designet for IoT.

I følge dokumentene trenger vi følgende pakker for å få det til å kjøre:

sudo apt install git python3 python3 -pip -y

Klientbiblioteket kan installeres i en enkelt kommando:

sudo pip3 installer cloud4rpi

Nå trenger vi noen eksempler på kode.

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

Det kjørbare skriptet er control.py.

Vi trenger et token, som gjør at Cloud4RPi kan koble enhetene til kontoene. For å få en, opprett en konto på cloud4rpi.io og trykk på Ny enhet -knappen på denne siden. Erstatt _YOUR_DEVICE_TOKEN_ -strengen i filen control.py med enhetens token og lagre filen. Nå er vi klare for den første lanseringen.

sudo python3 control.py

Åpne enhetssiden og kontroller at dataene er der.

La oss nå gå til virkelige data.

Trinn 3: Koble til sensoren

Koble til sensoren
Koble til sensoren

Vi trenger:

  • DHT22 eller DHT11 fuktighetssensor
  • Pull-up motstand (5-10 KΩ)
  • WiresThe

DHT22 -sensor måler temperatur og fuktighet samtidig. Kommunikasjonsprotokollen er ikke standardisert, så vi trenger ikke å aktivere den i raspi -config - en enkel GPIO -pin er mer enn nok.

For å skaffe dataene bruker jeg Adafruit sitt flotte bibliotek for DHT -sensorer, men det fungerer kanskje ikke som det er. Jeg fant en gang en merkelig konstant forsinkelse i koden, som ikke fungerte for maskinvaren min, og etter to år venter trekkforespørselen min fortsatt. Jeg har også endret borddeteksjonskonstantene fordi min Raspberry Pi 1 med BCM2835 ble overraskende oppdaget som Raspberry Pi 3. Jeg skulle ønske det var sant … Derfor anbefaler jeg å bruke gaffelen min. Hvis du opplever problemer med det, kan du prøve det originale depotet, kanskje det fungerer for noen, men jeg er ikke en av dem.

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

Siden biblioteket er skrevet i C, krever det kompilering, så du trenger de build-essential og python-dev-pakkene.

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

Mens pakkene installeres, kobler du til DHT22 som vist på bildet.

Og test det:

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

Hvis du ser noe slikt (39.20000076293945, 22.600000381469727), bør du vite at dette er fuktigheten i prosent og temperaturen i Celsius.

La oss nå sette sammen alt sammen!

Trinn 4: Sende sensoravlesninger til Cloud

Sender sensoravlesninger til Cloud
Sender sensoravlesninger til Cloud
Sender sensoravlesninger til Cloud
Sender sensoravlesninger til Cloud

Jeg vil bruke control.py som en base og legge til DHT22 -interaksjonen i den.

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

Fjern prøvekoden som på bildet ovenfor.

Ettersom DHT22 returnerer både temperatur og fuktighet i et enkelt anrop, kommer jeg til å lagre dem globalt og oppdatere bare én gang i en forespørsel, forutsatt at forsinkelsen mellom dem er mer enn 10 sekunder. Vurder følgende kode, som henter DHT22 -dataene:

importer 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 () retur runde (temp, 2) hvis temp ikke er Ingen andre Ingen def get_h (): update_data () retur runde (hum, 2) hvis hum er ikke Ingen andre Ingen

Sett inn denne koden etter den eksisterende importen og rediger variabeldelen slik at den bruker de nye funksjonene:

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

Hvis du synes at manipulasjoner er forvirrende, kan du ta tak i den siste versjonen av denne filen. Trykk på den røde knappen for å starte dataoverføringen:

Deretter kan du sjekke enhetssiden.

python3 cloud_dht22.py

Deretter kan du sjekke enhetssiden.

Du kan la det være som det er, men jeg foretrekker å ha en tjeneste for alt. Dette sikrer at skriptet alltid kjører. Opprette en tjeneste med det helautomatiske skriptet du allerede har i katalogen cloud4rpi-raspberrypi-python:

service_install.sh cloud_dht22.py

Starter tjenesten:

sudo service cloud4rpi start

Og sjekker det:

pi@raspberrypi: ~ $ sudo service cloud4rpi status -l ● cloud4rpi.service -Cloud4RPi daemon Lastet: lastet (/lib/systemd/system/cloud4rpi.service; aktivert) Aktiv: aktiv (kjører) siden ons 2017-05-17 20: 22: 48 UTC; 1 min siden Main PID: 560 (python) CGruppe: /system.slice/cloud4rpi.service └─560/usr/bin/python /home/pi/cloud_dht22.py

17. mai 20:22:51 raspberrypi python [560]: Publisering av iot-hub/meldinger: {'type': 'config', 'ts': '2017-05-17T20… y'}]}

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

Hvis alt fungerer som forventet, kan vi fortsette og bruke Cloud4RPi -plattformens evner til å manipulere med dataene.

Trinn 5: Kart og alarmer

Diagrammer og alarmer
Diagrammer og alarmer
Kart og alarmer
Kart og alarmer
Kart og alarmer
Kart og alarmer

La oss først plotte variablene for å se hvordan de endres. Dette kan gjøres ved å legge til et nytt kontrollpanel og sette de nødvendige diagrammene i det.

En annen ting vi kan gjøre her er å sette en varsel. Denne funksjonen lar deg konfigurere det sikre området for en variabel. Så snart rekkevidden er overskredet, sender den en e -postvarsel. På redigeringssiden på kontrollpanelet kan du bytte til varsler og sette opp en.

Like etter begynte fuktigheten i rommet mitt å synke raskt uten merkbar grunn, og alarmen fulgte snart.

Du kan bruke Cloud4RPi gratis med hvilken som helst maskinvare som er i stand til å kjøre Python. Som for meg, nå vet jeg alltid når jeg skal slå på luftfukteren, og jeg kan til og med koble den til et relé for fjernkontroll via Cloud4RPi. Jeg er forberedt på varmen! Velkommen sommer!

Med Cloud4RPi kan du styre Raspberry Pi og andre IoT -enheter eksternt i sanntid. Besøk nettstedet vårt og koble til ubegrensede enheter gratis.

Anbefalt: