Talaan ng mga Nilalaman:

Humidity in the Cloud: 5 Hakbang
Humidity in the Cloud: 5 Hakbang

Video: Humidity in the Cloud: 5 Hakbang

Video: Humidity in the Cloud: 5 Hakbang
Video: 92岁道长绝活“五步梳头法”,每天1次,脑供血足了,经络都打开【人体百科David伟】 2024, Hulyo
Anonim
Humidity sa Cloud
Humidity sa Cloud

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.

Mga gamit

Gumagamit ako ng isang board na Raspberry Pi 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
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.

Malaki! Magpatuloy tayo at SSH dito.

OK ang seguridad, gusto ko ito, ngunit ginagawang medyo mahirap ang mga bagay. Gagamitin ko ang UART-USB adapter upang ma-access ang shell at paganahin ang SSH…

Ang paggamit ng isang display sa halip na UART ay ginagawang mas madali.

Pagkatapos ng pag-reboot, sa wakas ay nasa.

Una muna, i-update natin:

sudo apt update && sudo apt upgrade -y

Ikonekta natin ngayon ang sariwang aparato sa Cloud.

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

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

sudo pip3 i-install ang cloud4rpi

Ngayon kailangan namin ng ilang sample code.

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

Ang maipapatupad na script ay control.py.

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 control.py file sa token ng iyong aparato at i-save ang file. Handa na kami para sa unang paglulunsad.

sudo python3 control.py

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

Lumipat tayo ngayon sa data ng totoong mundo.

Hakbang 3: Pagkonekta sa Sensor

Pagkonekta sa Sensor
Pagkonekta sa Sensor

Kakailanganin namin ang:

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

Sinusukat ng sensor ng DHT22 ang temperatura at kahalumigmigan 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.gitcd 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 4: Pagpapadala ng Mga Pagbasa ng Sensor sa Cloud

Pagpapadala ng Mga Pagbasa ng Sensor sa Cloud
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 control.py bilang isang batayan at idaragdag dito ang pakikipag-ugnay ng DHT22.

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

Alisin ang sample code tulad ng sa imahe sa itaas.

Tulad ng pagbabalik ng DHT22 ng parehong temperatura at halumigmig sa isang solong tawag, iimbak ko sila sa buong mundo at 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 ang hum ay wala Walang 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}}

Kung nakita mong nakalilito ang mga manipulasyon, kunin ang pangwakas na bersyon ng file na ito. Itulak ang pulang pindutan upang simulan ang paglilipat ng data:

Pagkatapos ay maaari mong suriin ang pahina ng aparato.

python3 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 kumpletong naka-automate na script na mayroon ka sa direktoryo ng cloud4rpi-raspberrypi-python:

service_install.sh cloud_dht22.py

Simula sa serbisyo:

sudo serbisyo cloud4rpi magsimula

At suriin ito:

pi @ raspberrypi: ~ $ sudo service cloud4rpi status -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.py

Mayo 17 20:22:51 raspberrypi python [560]: Pag-publish ng 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 5: 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!

Sa Cloud4RPi, maaari mong makontrol ang iyong Raspberry Pi at iba pang mga aparatong IoT nang malayuan sa real time. Bisitahin ang aming site at kumonekta nang walang limitasyong mga aparato nang libre.

Inirerekumendang: