INHOUDSOPGAWE:

Humiditeit in die wolk: 5 stappe
Humiditeit in die wolk: 5 stappe

Video: Humiditeit in die wolk: 5 stappe

Video: Humiditeit in die wolk: 5 stappe
Video: Штукатурка стен - самое полное видео! Переделка хрущевки от А до Я. #5 2024, Julie
Anonim
Humiditeit in die wolk
Humiditeit in die wolk

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.

Voorrade

Ek gebruik 'n Raspberry Pi -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
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 vertoon.

Dinge het verander sedert die laaste keer dat ek dit gedoen het: nou is daar 'n wonderlike sagteware genaamd Etcher, wat perfek werk en 'n pragtige ontwerp het.

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.

Puik! Kom ons gaan voort en SSH daarin.

Beveiliging is goed, ek hou daarvan, maar dit maak dinge 'n bietjie moeiliker. Ek sal UART-USB-adapter gebruik om toegang tot die dop te verkry en SSH moontlik te maak …

Dit is baie makliker om 'n skerm in plaas van UART te gebruik.

Nadat ek weer begin het, is ek uiteindelik in.

Eerstens, laat ons opdateer:

sudo apt update && sudo apt upgrade -y

Laat ons nou hierdie nuwe toestel aan die wolk koppel.

Stap 2: 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 python3 python3 -pip -y

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

sudo pip3 installeer cloud4rpi

Nou benodig ons 'n voorbeeldkode.

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

Die uitvoerbare script is control.py.

Ons benodig 'n teken, 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 control.py -lêer met die token van u toestel en stoor die lêer. Nou is ons gereed vir die eerste bekendstelling.

sudo python3 control.py

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

Kom ons gaan nou na regte data.

Stap 3: 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.gitcd 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 4: Stuur sensorlesings na die wolk

Stuur sensorlesings na wolk
Stuur sensorlesings na wolk
Stuur sensorlesings na wolk
Stuur sensorlesings na wolk

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

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

Verwyder die voorbeeldkode soos in die prent hierbo.

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

voer Adafruit_DHT in

temp, neurie = Geen, Geen

last_update = time.time () - 20

def update_data ():

globale 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 () terugkeer ronde (temp, 2) as temp is nie Geen ander Geen def get_h (): update_data () terugkeer (hum, 2) as neurie is nie anders nie Geen

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': {'type': 'numeries', 'bind': cpu_temp}}

As u manipulasies verwarrend vind, gryp die finale weergawe van hierdie lêer deur op die rooi knoppie te druk om die data -oordrag te begin:

Dan kan u die apparaatbladsy nagaan.

python3 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 wat u reeds in die cloud4rpi-raspberrypi-python-gids het:

service_install.sh 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 Hoof -PID: 560 (python) CGroep: /system.slice/cloud4rpi.service └─560/usr/bin/python /home/pi/cloud_dht22.py

17 Mei 20:22:51 raspberrypi python [560]: Publisering van iot-hub/boodskappe: {'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 5: 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!

Met Cloud4RPi kan u u Raspberry Pi en ander IoT -toestelle op afstand in real -time beheer. Besoek ons webwerf en maak gratis onbeperkte toestelle aan.

Aanbeveel: