Talaan ng mga Nilalaman:

Pagsubaybay sa Temperatura at Humidity Gamit ang Raspberry Pi: 6 Hakbang (na may Mga Larawan)
Pagsubaybay sa Temperatura at Humidity Gamit ang Raspberry Pi: 6 Hakbang (na may Mga Larawan)

Video: Pagsubaybay sa Temperatura at Humidity Gamit ang Raspberry Pi: 6 Hakbang (na may Mga Larawan)

Video: Pagsubaybay sa Temperatura at Humidity Gamit ang Raspberry Pi: 6 Hakbang (na may Mga Larawan)
Video: 24 Best Tech Gadgets of Mid April 2023 on Amazon 2024, Nobyembre
Anonim
Pagsubaybay sa Temperatura at Humidity Gamit ang Raspberry Pi
Pagsubaybay sa Temperatura at Humidity Gamit ang Raspberry Pi
Pagsubaybay sa Temperatura at Humidity Gamit ang Raspberry Pi
Pagsubaybay sa Temperatura at Humidity Gamit ang Raspberry Pi

Darating ang tag-init, at ang mga walang air conditioner ay dapat maging handa na kontrolin ang kapaligiran sa loob ng manu-mano. Sa post na ito, inilalarawan ko ang modernong paraan upang masukat ang pinakamahalagang mga parameter para sa ginhawa ng tao: temperatura at halumigmig. Ang nakolektang data na ito ay ipinadala sa cloud at naproseso doon.

Gumagamit ako ng isang board na Raspberry Pi 1 at ang sensor ng DHT22. Maaari mong gawin ang pareho sa anumang computer na mayroong Internet, GPIO, at Python. Gumagana din ang mas murang sensor ng DHT11.

Hakbang 1: Paghahanda ng Hardware

Paghahanda ng Hardware
Paghahanda ng Hardware
Paghahanda ng Hardware
Paghahanda ng Hardware

Magsimula tayo sa simula pa lamang, dahil hindi ko ginamit ang aking Raspberry Pi sa mahabang panahon.

Kakailanganin namin ang:

  • Board na Raspberry Pi (o iba pang platform na naka-orient sa IoT).
  • SD o microSD card (depende sa platform).
  • 5V / 1A sa pamamagitan ng micro-USB.
  • LAN cable, na nagbibigay ng koneksyon sa Internet.
  • Pagpapakita ng HDMI, pagpapakita ng RCA, o port ng UART (upang paganahin ang SSH).

Ang pinakaunang hakbang ay ang pag-download ng Raspbian. Pinili ko ang bersyon ng Lite, dahil gagamitin ko ang SSH sa halip na ipakita. Ang mga bagay ay nagbago mula noong huling oras na ginawa ko ito: ngayon mayroong isang mahusay na nasusunog na software na tinatawag na Etcher, na gumagana nang perpekto, at may isang nakamamanghang disenyo.

Matapos makumpleto ang pagkasunog ng imahe, ipinasok ko ang SD card sa aking Pi, isinaksak ang LAN at mga kable ng kuryente, at makalipas ang ilang sandali, nairehistro ng aking router ang bagong aparato.

Hakbang 2: Paganahin ang SSH

Pagpapagana sa SSH
Pagpapagana sa SSH
Pagpapagana sa SSH
Pagpapagana sa SSH
Pagpapagana sa SSH
Pagpapagana sa SSH

Ang SSH ay hindi pinagana bilang default. Maaari kong gamitin ang alinman sa UART-USB converter o ikonekta lamang ang isang display upang ma-access ang shell at paganahin ang SSH.

Pagkatapos ng pag-reboot, sa wakas ay nakapasok na ako. Mga unang bagay muna, i-update natin:

sudo apt update && sudo apt upgrade -y

Ikonekta natin ngayon ang sariwang aparato sa Cloud.

Hakbang 3: Pag-install ng Cloud4RPi

Pag-install ng Cloud4RPi
Pag-install ng Cloud4RPi

Napagpasyahan kong subukan ang cloud platform na tinatawag na Cloud4RPi, na idinisenyo para sa IoT.

Ayon sa mga doc, kailangan namin ang mga sumusunod na pakete upang mapatakbo ito:

sudo apt install git python python-pip -y

Ang client library ay maaaring mai-install sa isang solong utos:

sudo pip install cloud4rpi

Ngayon kailangan namin ng ilang sample code upang matiyak na gumagana ito.

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

Napagpasyahan kong magpatakbo ng minimal.py, ngunit hindi ko gusto ang pekeng data. Sa kabutihang palad, napansin ko ang isang madaling paraan upang gawing totoo ang data ng diagnostic sa halimbawang ito. Magdagdag ng isa pang pag-import sa seksyon ng mga pag-import:

mula sa rpi import *

Pagkatapos tanggalin ang mga pagpapaandar na ito na nagbibigay ng pekeng data (ang rpi.py ay tumutukoy sa kanila ngayon):

def cpu_temp ():

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

Ngayon kailangan namin ng isang token, na nagbibigay-daan sa Cloud4RPi na mai-link ang mga aparato sa mga account. Upang makakuha ng isa, lumikha ng isang account sa cloud4rpi.io at pindutin ang pindutan ng Bagong Device sa pahinang ito. Palitan ang _YOUR_DEVICE_TOKEN_ string sa minimal.py file sa token ng iyong aparato at i-save ang file. Handa na kami para sa unang paglulunsad.

sawa minimal.py

Buksan ang pahina ng aparato at suriin na ang data ay naroroon.

Lumipat tayo ngayon sa data ng totoong mundo.

Hakbang 4: Pagkonekta sa Sensor

Pagkonekta sa Sensor
Pagkonekta sa Sensor

Kakailanganin namin ang:

  • DHT22 o DHT11 kahalumigmigan sensor
  • Pull-up risistor (5-10 KΩ)
  • Mga wire

Sinusukat ng sensor ng DHT22 ang temperatura at halumigmig nang sabay-sabay. Ang pamamahala ng komunikasyon ay hindi na-standardize, kaya hindi namin kailangan itong paganahin sa raspi-config - isang simpleng GPIO pin ay higit sa sapat.

Upang makuha ang data, gagamitin ko ang mahusay na library ng Adafruit para sa mga sensor ng DHT, ngunit maaaring hindi ito gumana tulad ng dati. Natagpuan ko minsan ang isang kakaibang pare-pareho na pagkaantala sa code, na hindi gumana para sa aking hardware, at makalipas ang dalawang taon ay nakabinbin pa rin ang aking kahilingan sa paghila. Binago ko rin ang mga Constant na pagkakita ng board dahil ang aking Raspberry Pi 1 na may BCM2835 ay nakakagulat na nakita bilang Raspberry Pi 3. Nais kong totoo ito … Kaya, inirerekumenda kong gamitin ang aking tinidor. Kung nakakaranas ka ng anumang mga problema dito, mangyaring subukan ang orihinal na imbakan, marahil ito gumagana para sa isang tao, ngunit hindi ako isa sa kanila.

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

Tulad ng aklatan na nakasulat sa C, nangangailangan ito ng compilation, kaya't kailangan mo ng build-vital at python-dev packages.

sudo apt install install-importanteng python-dev -ysudo python setup.py install

Habang nag-i-install ang mga pakete, ikonekta ang DHT22 tulad ng ipinakita sa larawan.

At subukan ito:

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

Kung nakakita ka ng tulad ng (39.20000076293945, 22.600000381469727), dapat mong malaman na ito ang halumigmig sa mga percents at temperatura sa Celsius.

Ngayon, tipunin natin ang lahat nang sama-sama!

Hakbang 5: Pagpapadala ng Mga Pagbasa ng Sensor sa Cloud

Pagpapadala ng Mga Pagbasa ng Sensor sa Cloud
Pagpapadala ng Mga Pagbasa ng Sensor sa Cloud

Gagamitin ko ang minimal.py bilang isang batayan at idaragdag dito ang pakikipag-ugnay ng DHT22.

cd cloud4rpi-raspberrypi-python

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

Tulad ng pagbabalik ng DHT22 ng parehong temperatura at halumigmig sa isang solong tawag, iniimbak ko sila sa buong mundo at nag-i-update lamang nang isang beses sa isang kahilingan, sa pag-aakalang ang pagkaantala sa pagitan nila ay higit sa 10 segundo. Isaalang-alang ang sumusunod na code, na kumukuha ng data ng DHT22:

i-import ang Adafruit_DHT

temp, hum = Wala, Wala last_update = time.time () - 20 def update_data (): global last_update, hum, temp kung 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) kung ang temp ay wala Walang iba Wala def get_h (): update_data () return round (hum, 2) kung hum ay hindi Wala nang iba Wala

Ipasok ang code na ito pagkatapos ng umiiral na mga pag-import at i-edit ang seksyon ng mga variable upang magamit nito ang mga bagong pag-andar:

variable = {

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

Itulak ang pulang pindutan upang simulan ang paglipat ng data:

python cloud_dht22.py

Pagkatapos ay maaari mong suriin ang pahina ng aparato.

Maaari mong iwanan ito tulad ng dati, ngunit mas gusto ko ang pagkakaroon ng isang serbisyo para sa lahat. Tinitiyak nito na palaging tumatakbo ang script. Lumilikha ng isang serbisyo gamit ang ganap na awtomatikong script:

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

Simula sa serbisyo:

sudo serbisyo cloud4rpi magsimula

At suriin ito:

pi @ raspberrypi: ~ $ sudo serbisyo cloud4rpi katayuan -l

● cloud4rpi.service - Cloud4RPi daemon Loaded: load (/lib/systemd/system/cloud4rpi.service; pinagana) Aktibo: aktibo (tumatakbo) mula Wed 2017-05-17 20:22:48 UTC; 1min na nakalipas Main PID: 560 (python) CGroup: /system.slice/cloud4rpi.service └─560 / usr / bin / python /home/pi/cloud_dht22.pyMay 17 20:22:51 raspberrypi python [560]: Publishing iot -hub / mga mensahe: {'type': 'config', 'ts': '2017-05-17T20… y'}]} Mayo 17 20:22:53 raspberrypi python [560]: Pag-publish ng iot-hub / mga mensahe: {'type': 'data', 'ts': '2017-05-17T20: 2… 40'}} Mayo 17 20:22:53 raspberrypi python [560]: Pag-publish ng iot-hub / mga mensahe: {'type': 'system', 'ts': '2017-05-17T20….4'}}

Kung ang lahat ay gumagana tulad ng inaasahan, maaari kaming magpatuloy at magamit ang mga kakayahan ng platform ng Cloud4RPi upang manipulahin sa data.

Hakbang 6: Mga Tsart at Alarma

Mga Tsart at Alarma
Mga Tsart at Alarma
Mga Tsart at Alarma
Mga Tsart at Alarma
Mga Tsart at Alarma
Mga Tsart at Alarma

Una sa lahat, balangkasin natin ang mga variable upang makita kung paano sila nagbabago. Maaari itong magawa sa pamamagitan ng pagdaragdag ng isang bagong Control Panel at paglalagay ng mga kinakailangang tsart dito.

Ang isa pang bagay na magagawa natin dito ay ang pagtatakda ng isang Alerto. Pinapayagan ka ng tampok na ito na mai-configure ang ligtas na saklaw para sa isang variable. Sa sandaling lumampas ang saklaw, nagpapadala ito ng isang abiso sa email. Sa pahina ng pag-edit ng Control Panel, maaari kang lumipat sa Mga Alerto at i-set up ang isa.

Kaagad pagkatapos nito, ang halumigmig sa aking silid ay nagsimulang mabawasan nang mabilis nang walang anumang kapansin-pansin na dahilan, at agad na sumunod ang alarma.

Maaari mong gamitin ang Cloud4RPi nang libre sa anumang hardware na nakapagpatupad ng Python. Tulad ng sa akin, ngayon palagi kong alam kung kailan bubukas ang air humidifier, at maaari ko rin itong ikonekta sa isang relay para sa remote control sa pamamagitan ng Cloud4RPi. Handa ako sa init! Maligayang pagdating, Tag-araw!

Inirerekumendang: