INHOUDSOPGAWE:

Temperatuur- en humiditeitsmonitering met behulp van Framboos Pi: 6 stappe (met foto's)
Temperatuur- en humiditeitsmonitering met behulp van Framboos Pi: 6 stappe (met foto's)

Video: Temperatuur- en humiditeitsmonitering met behulp van Framboos Pi: 6 stappe (met foto's)

Video: Temperatuur- en humiditeitsmonitering met behulp van Framboos Pi: 6 stappe (met foto's)
Video: Temperatuur en hoogte 2024, Julie
Anonim
Temperatuur- en humiditeitsmonitering met behulp van Framboos Pi
Temperatuur- en humiditeitsmonitering met behulp van Framboos Pi
Temperatuur- en humiditeitsmonitering met behulp van Framboos Pi
Temperatuur- en humiditeitsmonitering met behulp van Framboos Pi

Die somer kom, en diegene sonder 'n lugversorger moet voorbereid wees om die atmosfeer binnenshuis handmatig te beheer. In hierdie pos beskryf ek die moderne manier om die belangrikste parameters vir menslike gemak te meet: temperatuur en humiditeit. Hierdie versamelde data word na die wolk gestuur en daar verwerk.

Ek gebruik 'n Raspberry Pi 1 -bord en die DHT22 -sensor. U kan dieselfde doen op elke rekenaar met die internet, GPIO en Python. Die goedkoper DHT11 -sensor werk ook goed.

Stap 1: Berei hardeware voor

Berei hardeware voor
Berei hardeware voor
Berei hardeware voor
Berei hardeware voor

Laat ons van die begin af begin, aangesien ek my Raspberry Pi lanklaas gebruik het.

Ons benodig:

  • Framboos Pi-bord (of ander IoT-georiënteerde platform).
  • SD- of microSD -kaart (afhangende van die platform).
  • 5V/1A via mikro-USB.
  • LAN -kabel, wat die internetverbinding bied.
  • HDMI -skerm, RCA -skerm of UART -poort (om SSH moontlik te maak).

Die heel eerste stap is om Raspbian af te laai. Ek het die Lite -weergawe gekies, aangesien ek SSH gaan gebruik in plaas van om te vertoon..

Nadat die beeldverbranding voltooi is, het ek die SD -kaart in my Pi geplaas, die LAN- en kragkabels ingeprop, en na 'n rukkie het my router die nuwe toestel geregistreer.

Stap 2: Aktiveer SSH

Aktiveer SSH
Aktiveer SSH
Aktiveer SSH
Aktiveer SSH
Aktiveer SSH
Aktiveer SSH

SSH is standaard uitgeskakel. Ek kan 'n UART-USB-omskakelaar gebruik of net 'n skerm aansluit om toegang tot die dop te verkry en SSH moontlik te maak.

Na die herlaai, is ek uiteindelik in. Eerste dinge, laat ons opdateer:

sudo apt update && sudo apt upgrade -y

Laat ons nou hierdie nuwe toestel aan die wolk koppel.

Stap 3: Installeer Cloud4RPi

Die installering van Cloud4RPi
Die installering van Cloud4RPi

Ek het besluit om die wolkplatform genaamd Cloud4RPi te probeer, wat ontwerp is vir IoT.

Volgens die dokumente benodig ons die volgende pakkette om dit aan die gang te kry:

sudo apt installeer git python python -pip -y

Die kliëntbiblioteek kan in 'n enkele opdrag geïnstalleer word:

sudo pip installeer cloud4rpi

Nou benodig ons 'n voorbeeldkode om te verseker dat dit werk.

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

Ek het besluit om minimal.py uit te voer, maar ek hou nie van die valse data nie. Gelukkig het ek in hierdie voorbeeld 'n maklike manier gevind om die diagnostiese data werklik te maak. Voeg nog 'n invoer by die invoerafdeling:

vanaf rpi invoer *

Vee dan hierdie funksies uit wat vals data verskaf (die rpi.py definieer dit nou):

def cpu_temp ():

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

Nou het ons 'n teken nodig waarmee Cloud4RPi die toestelle met die rekeninge kan koppel. Om een te kry, skep 'n rekening op cloud4rpi.io en druk die knoppie Nuwe toestel op hierdie bladsy. Vervang die _YOUR_DEVICE_TOKEN_ -string in die minimal.py -lêer met die token van u toestel en stoor die lêer. Nou is ons gereed vir die eerste bekendstelling.

python minimal.py

Maak die toestelbladsy oop en kyk of die data daar is.

Kom ons gaan nou na regte data.

Stap 4: Koppel die sensor

Koppel die sensor
Koppel die sensor

Ons benodig:

  • DHT22 of DHT11 humiditeitsensor
  • Oprolweerstand (5-10 KΩ)
  • Drade

Die DHT22 sensor meet temperatuur en humiditeit gelyktydig. Die kommunikasieprotokol is nie gestandaardiseer nie, dus hoef ons dit nie in raspi -config te aktiveer nie - 'n eenvoudige GPIO -pen is meer as genoeg.

Om die data te bekom, gebruik ek die uitstekende biblioteek van Adafruit vir DHT -sensors, maar dit werk moontlik nie soos dit is nie. Ek het een keer 'n vreemde konstante vertraging in die kode gevind, wat nie vir my hardeware werk nie, en na twee jaar is my trekversoek nog afgehandel. Ek het ook die bordopsporingskonstante verander omdat my Raspberry Pi 1 met BCM2835 verbasend opgespoor is as Raspberry Pi 3. Ek wens dit was waar … Daarom beveel ek aan om my vurk te gebruik. As u probleme daarmee ondervind, probeer die oorspronklike bewaarplek, miskien werk dit vir iemand, maar ek is nie een daarvan nie.

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

Aangesien die biblioteek in C geskryf is, is dit nodig om dit op te stel, dus benodig u die build-essential en python-dev pakkette.

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

Verbind die DHT22 terwyl die pakkette geïnstalleer word, soos op die foto getoon.

En toets dit:

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

As u iets soos (39.20000076293945, 22.600000381469727) sien, moet u weet dat dit die humiditeit in persentasie en temperatuur in Celsius is.

Laat ons nou alles bymekaarmaak!

Stap 5: Stuur sensorlesings na die wolk

Stuur sensorlesings na wolk
Stuur sensorlesings na wolk

Ek sal die minimal.py as basis gebruik en die DHT22 -interaksie daarby voeg.

cd cloud4rpi-raspberrypi-python

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

Aangesien DHT22 temperatuur en humiditeit in 'n enkele oproep terugbring, stoor ek dit wêreldwyd en werk ek slegs een keer in 'n versoek by, as die vertraging tussen hulle meer as 10 sekondes is. Oorweeg die volgende kode wat die DHT22 -data verkry:

voer Adafruit_DHT in

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 () return round (temp, 2) if temp is not None else None def get_h (): update_data () return round (hum, 2) if hum is not Niks anders nie

Voeg hierdie kode na die bestaande invoer in en wysig die afdeling veranderlikes sodat dit die nuwe funksies gebruik:

veranderlikes = {

'DHT22 Temp': {'type': 'numeries', 'bind': get_t}, 'DHT22 Humidity': {'type': 'numeries', 'bind': get_h}, 'CPU Temp': {'tipe ':' numeries ',' bind ': cpu_temp}}

Druk die rooi knoppie om die data -oordrag te begin:

python cloud_dht22.py

Dan kan u die apparaatbladsy nagaan.

U kan dit net so laat, maar ek verkies om 'n diens vir alles te hê. Dit verseker dat die script altyd werk. Skep 'n diens met die volledig outomatiese script:

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

Begin van die diens:

sudo -diens cloud4rpi begin

En kyk daarna:

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

● cloud4rpi.service-Cloud4RPi-demoon gelaai: gelaai (/lib/systemd/system/cloud4rpi.service; geaktiveer) Aktief: aktief (loop) sedert Wo 2017-05-17 20:22:48 UTC; 1 min gelede Main PID: 560 (python) CGroep: /system.slice/cloud4rpi.service └─560/usr/bin/python /home/pi/cloud_dht22.pyMay 17 20:22:51 raspberrypi python [560]: Publishing iot -hub/messages: {'type': 'config', 'ts': '2017-05-17T20 … y'}]} 17 Mei 20:22:53 raspberrypi python [560]: Publisering van iot-hub/boodskappe: {'type': 'data', 'ts': '2017-05-17T20: 2… 40'}} 17 Mei 20:22:53 raspberrypi python [560]: Publisering van iot-hub/boodskappe: {'type': 'stelsel', 'ts': '2017-05-17T20….4'}}

As alles werk soos verwag, kan ons voortgaan met die vermoëns van die Cloud4RPi -platform om met die data te manipuleer.

Stap 6: Kaarte en alarms

Kaarte en alarms
Kaarte en alarms
Kaarte en alarms
Kaarte en alarms
Kaarte en alarms
Kaarte en alarms

Laat ons eerstens die veranderlikes plot om te sien hoe hulle verander. Dit kan gedoen word deur 'n nuwe bedieningspaneel by te voeg en die vereiste kaarte daarin te plaas.

Nog iets wat ons hier kan doen, is om 'n waarskuwing op te stel. Met hierdie funksie kan u die veilige reeks vir 'n veranderlike opstel. Sodra die reeks oorskry is, stuur dit 'n e -pos kennisgewing. Op die bewerkingsbladsy van die bedieningspaneel kan u oorskakel na waarskuwings en een opstel.

Net daarna het die humiditeit in my kamer vinnig begin afneem sonder om 'n merkbare rede daarvoor te hê, en die alarm het vinnig gevolg.

U kan Cloud4RPi gratis gebruik met enige hardeware wat Python kan uitvoer, en ek weet nou altyd wanneer ek die lugbevochtiger moet aanskakel, en ek kan dit selfs verbind met 'n relais vir afstandbeheer via Cloud4RPi. Ek is voorbereid op die hitte! Welkom somer!

Aanbeveel: