Indholdsfortegnelse:

Overvågning af temperatur og fugtighed ved hjælp af Raspberry Pi: 6 trin (med billeder)
Overvågning af temperatur og fugtighed ved hjælp af Raspberry Pi: 6 trin (med billeder)

Video: Overvågning af temperatur og fugtighed ved hjælp af Raspberry Pi: 6 trin (med billeder)

Video: Overvågning af temperatur og fugtighed ved hjælp af Raspberry Pi: 6 trin (med billeder)
Video: TERNCY SD01 - logisk zigbee-dæmpningsknap, Home Assistant-integration, praktisk brug 2024, November
Anonim
Overvågning af temperatur og fugtighed ved hjælp af Raspberry Pi
Overvågning af temperatur og fugtighed ved hjælp af Raspberry Pi
Overvågning af temperatur og fugtighed ved hjælp af Raspberry Pi
Overvågning af temperatur og fugtighed ved hjælp af Raspberry Pi

Sommeren kommer, og dem uden klimaanlæg bør være forberedt på at styre atmosfæren indendørs manuelt. I dette indlæg beskriver jeg den moderne måde at måle de vigtigste parametre for menneskelig komfort: temperatur og fugtighed. Disse indsamlede data sendes til skyen og behandles der.

Jeg bruger et Raspberry Pi 1 -kort og DHT22 -sensoren. Du kan gøre det samme på enhver computer, der har internet, GPIO og Python. Den billigere DHT11 -sensor fungerer også fint.

Trin 1: Forberedelse af hardware

Klargøring af hardware
Klargøring af hardware
Klargøring af hardware
Klargøring af hardware

Lad os starte helt fra begyndelsen, da jeg ikke brugte min Raspberry Pi i ret lang tid.

Vi får brug for:

  • Raspberry Pi-kort (eller anden IoT-orienteret platform).
  • SD- eller microSD -kort (afhængigt af platformen).
  • 5V/1A via mikro-USB.
  • LAN -kabel, som giver internetforbindelse.
  • HDMI -skærm, RCA -skærm eller UART -port (for at aktivere SSH).

Det allerførste trin er at downloade Raspbian. Jeg har valgt Lite -versionen, da jeg vil bruge SSH i stedet for display. Ting har ændret sig siden sidste gang jeg gjorde det: nu er der en fantastisk brændende software kaldet Etcher, som fungerer perfekt og har et fantastisk design.

Efter at billedbrændingen var fuldført, indsatte jeg SD -kortet i min Pi, tilsluttede LAN- og strømkablerne, og efter et stykke tid registrerede min router den nye enhed.

Trin 2: Aktivering af SSH

Aktivering af SSH
Aktivering af SSH
Aktivering af SSH
Aktivering af SSH
Aktivering af SSH
Aktivering af SSH

SSH er som standard deaktiveret. Jeg kan enten bruge UART-USB-konverter eller bare tilslutte en skærm for at få adgang til skallen og aktivere SSH.

Efter genstart er jeg endelig i. Første ting først, lad os opdatere:

sudo apt update && sudo apt upgrade -y

Lad os nu forbinde denne friske enhed til skyen.

Trin 3: Installation af Cloud4RPi

Installation af Cloud4RPi
Installation af Cloud4RPi

Jeg besluttede at prøve cloud -platformen kaldet Cloud4RPi, som er designet til IoT.

Ifølge dokumenterne har vi brug for følgende pakker for at få det til at køre:

sudo apt installer git python python -pip -y

Klientbiblioteket kan installeres i en enkelt kommando:

sudo pip installer cloud4rpi

Nu har vi brug for en prøvekode for at sikre, at den fungerer.

git-klon https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python && cd cloud4rpi-raspberrypi-python git-klon https://gist.github.com/f8327a1ef09ceb1ef142fa68701270de.git e && mv e/minimal.py minimal.py && rmdir -re

Jeg besluttede at køre minimal.py, men jeg kan ikke lide de falske data. Heldigvis bemærkede jeg en let måde at gøre diagnosedataene virkelige i dette eksempel. Tilføj en import mere til importafsnittet:

fra rpi import *

Slet derefter disse funktioner, der giver falske data (rpi.py definerer dem nu):

def cpu_temp ():

return 70 def ip_address (): return '8.8.8.8' def host_name (): return 'hostname' def os_name (): return 'osx'

Nu har vi brug for et token, som gør det muligt for Cloud4RPi at forbinde enhederne med kontiene. For at få en skal du oprette en konto på cloud4rpi.io og trykke på knappen Ny enhed på denne side. Erstat _YOUR_DEVICE_TOKEN_ -strengen i filen minimal.py med din enheds token, og gem filen. Nu er vi klar til den første lancering.

python minimal.py

Åbn enhedsiden, og kontroller, at dataene er der.

Lad os nu gå over til virkelige data.

Trin 4: Tilslutning af sensoren

Tilslutning af sensoren
Tilslutning af sensoren

Vi får brug for:

  • DHT22 eller DHT11 fugtighedsføler
  • Pull-up modstand (5-10 KΩ)
  • Ledninger

DHT22 -sensoren måler temperatur og fugtighed samtidigt. Kommunikationsprotokollen er ikke standardiseret, så vi behøver ikke at aktivere den i raspi -config - en simpel GPIO -pin er mere end nok.

For at erhverve dataene vil jeg bruge Adafruit's store bibliotek til DHT -sensorer, men det fungerer muligvis ikke som det er. Jeg fandt engang en mærkelig konstant forsinkelse i koden, som ikke fungerede for min hardware, og efter to år afventer min pull -anmodning stadig. Jeg har også ændret kortdetekteringskonstanterne, fordi min Raspberry Pi 1 med BCM2835 overraskende blev opdaget som Raspberry Pi 3. Jeg ville ønske, at det var sandt … Derfor anbefaler jeg at bruge min gaffel. Hvis du oplever problemer med det, kan du prøve det originale lager, måske fungerer det for nogen, men jeg er ikke en af dem.

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

Da biblioteket er skrevet i C, kræver det kompilering, så du har brug for de build-essential og python-dev pakker.

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

Mens pakkerne installeres, skal du tilslutte DHT22 som vist på billedet.

Og test det:

cd ~ python -c "import Adafruit_DHT som d; print d.read_retry (d. DHT22, 4)"

Hvis du ser noget i stil med (39.20000076293945, 22.600000381469727), skal du vide, at dette er luftfugtigheden i procent og temperaturen i Celsius.

Lad os nu samle alt sammen!

Trin 5: Send sensoraflæsninger til Cloud

Sender sensormålinger til Cloud
Sender sensormålinger til Cloud

Jeg vil bruge minimal.py som en base og tilføje DHT22 -interaktionen til den.

cd cloud4rpi-raspberrypi-python

cp minimal.py ~/cloud_dht22.py cp rpi.py ~/rpi.py cd vi cloud_dht22.py

Da DHT22 returnerer både temperatur og fugtighed i et enkelt opkald, gemmer jeg dem globalt og opdaterer kun én gang i en anmodning, forudsat at forsinkelsen mellem dem er mere end 10 sekunder. Overvej følgende kode, som erhverver DHT22 -data:

importer Adafruit_DHT

temp, hum = None, None 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 () returrunde (temp, 2) hvis temp ikke er Ingen andre Ingen def get_h (): update_data () returrunde (hum, 2) hvis brummen ikke er Ingen andre Ingen

Indsæt denne kode efter den eksisterende import, og rediger variabelsektionen, så den bruger de nye funktioner:

variabler = {

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

Tryk på den røde knap for at starte dataoverførslen:

python cloud_dht22.py

Derefter kan du kontrollere enhedens side.

Du kan lade det være som det er, men jeg foretrækker at have en service til alt. Dette sikrer, at scriptet altid kører. Oprettelse af en service med det fuldautomatiske script:

wget -O https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python/blob/master/service_install.sh | sudo bash -s cloud_dht22.py

Start af tjenesten:

sudo service cloud4rpi start

Og tjekker det:

pi@raspberrypi: ~ $ sudo service cloud4rpi status -l

● cloud4rpi.service-Cloud4RPi-dæmon Indlæst: indlæst (/lib/systemd/system/cloud4rpi.service; aktiveret) Aktiv: aktiv (kø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.pyMay 17 20:22:51 raspberrypi python [560]: Publishing iot -hub/meddelelser: {'type': 'config', 'ts': '2017-05-17T20… y'}]} 17. maj 20:22:53 raspberrypi python [560]: Udgivelse af iot-hub/meddelelser: {'type': 'data', 'ts': '2017-05-17T20: 2… 40'}} 17. maj 20:22:53 raspberrypi python [560]: Publicering af iot-hub/meddelelser: {'type': 'system', 'ts': '2017-05-17T20….4'}}

Hvis alt fungerer som forventet, kan vi fortsætte og bruge Cloud4RPi -platformens muligheder til at manipulere med dataene.

Trin 6: Diagrammer og alarmer

Diagrammer og alarmer
Diagrammer og alarmer
Diagrammer og alarmer
Diagrammer og alarmer
Diagrammer og alarmer
Diagrammer og alarmer

Lad os først plotte variablerne for at se, hvordan de ændrer sig. Dette kan gøres ved at tilføje et nyt kontrolpanel og sætte de nødvendige diagrammer i det.

En anden ting, vi kan gøre her, er at indstille en advarsel. Denne funktion giver dig mulighed for at konfigurere det sikre område for en variabel. Så snart området er overskredet, sender det en e -mail -meddelelse. På redigeringssiden i kontrolpanelet kan du skifte til underretninger og konfigurere en.

Lige efter begyndte fugtigheden i mit værelse at falde hurtigt uden nogen mærkbar grund, og alarmen fulgte snart.

Du kan bruge Cloud4RPi gratis med enhver hardware, der er i stand til at udføre Python. Som for mig, nu ved jeg altid, hvornår jeg skal tænde luftfugteren, og jeg kan endda tilslutte den til et relæ til fjernbetjening via Cloud4RPi. Jeg er forberedt på varmen! Velkommen sommer!

Anbefalede: