Sisukord:

Temperatuuri ja niiskuse jälgimine Raspberry Pi abil: 6 sammu (koos piltidega)
Temperatuuri ja niiskuse jälgimine Raspberry Pi abil: 6 sammu (koos piltidega)

Video: Temperatuuri ja niiskuse jälgimine Raspberry Pi abil: 6 sammu (koos piltidega)

Video: Temperatuuri ja niiskuse jälgimine Raspberry Pi abil: 6 sammu (koos piltidega)
Video: KUKA DeviceConnector ENG Веб-семинар от KUKA Nordic 2024, November
Anonim
Temperatuuri ja niiskuse jälgimine Raspberry Pi abil
Temperatuuri ja niiskuse jälgimine Raspberry Pi abil
Temperatuuri ja niiskuse jälgimine Raspberry Pi abil
Temperatuuri ja niiskuse jälgimine Raspberry Pi abil

Suvi on tulemas ja need, kellel pole konditsioneeri, peaksid olema valmis siseruumides käsitsi käsitsi juhtima. Selles postituses kirjeldan tänapäevast viisi inimese mugavuse jaoks kõige olulisemate parameetrite mõõtmiseks: temperatuur ja niiskus. Need kogutud andmed saadetakse pilve ja töödeldakse seal.

Ma kasutan Raspberry Pi 1 plaati ja DHT22 andurit. Sama saate teha igas arvutis, kus on Internet, GPIO ja Python. Odavam DHT11 andur töötab ka hästi.

Samm: riistvara ettevalmistamine

Riistvara ettevalmistamine
Riistvara ettevalmistamine
Riistvara ettevalmistamine
Riistvara ettevalmistamine

Alustame algusest, kuna ma ei kasutanud oma Raspberry Pi -d päris pikka aega.

Meil on vaja:

  • Raspberry Pi plaat (või muu asjade internetile orienteeritud platvorm).
  • SD- või microSD -kaart (olenevalt platvormist).
  • 5V/1A mikro-USB kaudu.
  • LAN -kaabel, mis pakub Interneti -ühendust.
  • HDMI -ekraan, RCA -ekraan või UART -port (SSH lubamiseks).

Esimene samm on Raspbiani allalaadimine. Olen valinud Lite versiooni, kuna kasutan ekraani asemel SSH -d. Pärast viimast korda tegin asju. Nüüd on olemas suurepärane põletustarkvara nimega Etcher, mis töötab suurepäraselt ja millel on suurepärane disain.

Pärast pildi kirjutamise lõpetamist sisestasin SD -kaardi oma Pi -sse, ühendasin LAN- ja toitekaablid ning mõne aja pärast registreeris mu ruuter uue seadme.

2. toiming: SSH lubamine

SSH lubamine
SSH lubamine
SSH lubamine
SSH lubamine
SSH lubamine
SSH lubamine

SSH on vaikimisi keelatud. Ma võin kasutada kas UART-USB-muundurit või lihtsalt ühendada ekraani, et pääseda kestale ja lubada SSH.

Pärast taaskäivitamist olen lõpuks sisse lülitatud. Esiteks värskendame:

sudo apt update && sudo apt upgrade -y

Nüüd ühendame selle värske seadme pilvega.

Samm: Cloud4RPi installimine

Cloud4RPi installimine
Cloud4RPi installimine

Otsustasin proovida pilveplatvormi nimega Cloud4RPi, mis on mõeldud IoT jaoks.

Dokumentide kohaselt vajame selle käivitamiseks järgmisi pakette:

sudo apt install git python python -pip -y

Klienditeegi saab installida ühe käsuga:

sudo pip installige cloud4rpi

Nüüd vajame selle näitamiseks mõnda näidiskoodi.

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 && rmdir -re

Otsustasin käivitada minimaalse.py, kuid mulle ei meeldi võltsitud andmed. Õnneks märkasin selles näites lihtsat viisi diagnostikaandmete tegelikuks muutmiseks. Lisage importimise sektsiooni veel üks import:

rpi impordist *

Seejärel kustutage need võltsandmeid pakkuvad funktsioonid (rpi.py määratleb need nüüd):

def cpu_temp ():

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

Nüüd vajame märki, mis võimaldab Cloud4RPi -l seadmeid kontodega siduda. Selle saamiseks looge konto aadressil cloud4rpi.io ja klõpsake sellel lehel nuppu Uus seade. Asendage string _YOUR_DEVICE_TOKEN_ failis minimal.py oma seadme märgiga ja salvestage fail. Nüüd oleme esimeseks käivitamiseks valmis.

python minimaalne.py

Avage seadme leht ja kontrollige, kas andmed on olemas.

Liigume nüüd reaalse maailma andmete juurde.

Samm: anduri ühendamine

Anduri ühendamine
Anduri ühendamine

Meil on vaja:

  • DHT22 või DHT11 niiskusandur
  • Tõmbetakistus (5-10 KΩ)
  • Juhtmed

DHT22 sensor mõõdab samaaegselt temperatuuri ja niiskust. Kommunikatsiooniprotokoll pole standardiseeritud, seega ei pea me seda raspi -config -is lubama - lihtsast GPIO -nööbist piisab.

Andmete hankimiseks kasutan DHT -andurite jaoks Adafruit'i suurepärast raamatukogu, kuid see ei pruugi nii töötada. Leidsin kord koodist kummalise pideva viivituse, mis minu riistvara puhul ei töötanud ja kahe aasta pärast on minu tõmbetaotlus endiselt pooleli. Olen muutnud ka plaadi tuvastuskonstante, sest minu Raspberry Pi 1 koos BCM2835 -ga tuvastati üllatuslikult kui Raspberry Pi 3. Soovin, et see oleks tõsi … Seega soovitan kasutada oma kahvlit. Kui teil on sellega probleeme, proovige esialgset hoidlat, võib -olla see sobib kellelegi, kuid ma pole üks neist.

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

Kuna raamatukogu on kirjutatud C-keeles, nõuab see kompileerimist, seega vajate pakette build-essential ja python-dev.

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

Pakettide installimise ajal ühendage DHT22, nagu pildil näidatud.

Ja testige seda:

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

Kui näete midagi sellist (39.20000076293945, 22.600000381469727), peaksite teadma, et see on niiskus protsentides ja temperatuur Celsiuse järgi.

Nüüd paneme kõik kokku!

Samm: andurinäitude saatmine pilve

Andurite näitude saatmine pilve
Andurite näitude saatmine pilve

Ma kasutan alusena minimal.py ja lisan sinna DHT22 interaktsiooni.

cd cloud4rpi-vaarika-python

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

Kuna DHT22 tagastab ühe kõnega nii temperatuuri kui ka niiskuse, salvestan need globaalselt ja värskendan päringus ainult üks kord, eeldades, et nende vaheline viivitus on üle 10 sekundi. Mõelge järgmisele koodile, mis hangib DHT22 andmed:

import Adafruit_DHT

temp, hum = puudub, pole last_update = time.time () - 20 def update_data (): globaalne 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 () tagasivooru (temp, 2), kui temp ei ole Mitte ükski teine Puudub def get_h (): update_data () tagasivoor (hum, 2) kui hum ei ole Mitte keegi teine Mitte ükski

Sisestage see kood pärast olemasolevat importimist ja muutke muutujate jaotist nii, et see kasutaks uusi funktsioone:

muutujad = {

'DHT22 temp': {'type': 'numbriline', 'bind': get_t}, 'DHT22 niiskus': {'type': 'numbriline', 'bind': get_h}, 'CPU temp': {'tüüp ':' numbriline ',' sidumine ': cpu_temp}}

Andmeedastuse alustamiseks vajutage punast nuppu:

python cloud_dht22.py

Seejärel saate seadme lehte kontrollida.

Võite jätta selle nii, nagu see on, kuid ma eelistan, et mul oleks teenus kõige jaoks. See tagab, et skript töötab alati. Teenuse loomine täisautomaatse skriptiga:

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

Teenuse käivitamine:

sudo teenuse cloud4rpi käivitamine

Ja kontrollige seda:

pi@raspberrypi: ~ $ sudo teenus cloud4rpi olek -l

● cloud4rpi.service-Cloud4RPi deemon Laetud: laaditud (/lib/systemd/system/cloud4rpi.service; lubatud) Aktiivne: aktiivne (töötab) alates kolmapäevast 2017-05-17 20:22:48 UTC; 1 min tagasi Peamine PID: 560 (python) CGroup: /system.slice/cloud4rpi.service └─560/usr/bin/python /home/pi/cloud_dht22.py 17. mai 20:22:51 raspberrypi python [560]: Publishing iot -hub/messages: {'type': 'config', 'ts': '2017-05-17T20… y'}]} 17. mai 20:22:53 raspberrypi python [560]: iot-hub/sõnumite avaldamine: {'type': 'data', 'ts': '2017-05-17T20: 2… 40'}} 17. mai 20:22:53 raspberrypi python [560]: iot-hub/messages avaldamine: {'type': 'süsteem', 'ts': '2017-05-17T20….4'}}

Kui kõik töötab ootuspäraselt, saame jätkata ja kasutada andmetega manipuleerimiseks Cloud4RPi platvormi võimalusi.

6. samm: graafikud ja äratused

Graafikud ja äratused
Graafikud ja äratused
Graafikud ja äratused
Graafikud ja äratused
Graafikud ja äratused
Graafikud ja äratused

Esiteks joonistame muutujad, et näha, kuidas need muutuvad. Seda saab teha uue juhtpaneeli lisamisega ja vajalike diagrammide lisamisega.

Teine asi, mida saame siin teha, on hoiatuse seadmine. See funktsioon võimaldab teil konfigureerida muutuja ohutu vahemiku. Niipea kui vahemik on ületatud, saadab see e -kirjaga teatise. Juhtpaneeli redigeerimise lehel saate lülituda märguannetele ja need seadistada.

Kohe pärast seda hakkas minu toas niiskus ilma märgatava põhjuseta kiiresti langema ja peagi järgnes häire.

Saate Cloud4RPi tasuta kasutada mis tahes riistvaraga, mis suudab Pythoni käivitada. Minu jaoks tean nüüd alati, millal õhuniisutaja sisse lülitada, ja saan selle isegi Cloud4RPi kaudu kaugjuhtimispuldiga ühendada. Olen kuumuseks valmis! Tere suvi!

Soovitan: