Paano Bumuo ng isang Monitor ng Temperatura ng Raspberry Pi: 9 Mga Hakbang
Paano Bumuo ng isang Monitor ng Temperatura ng Raspberry Pi: 9 Mga Hakbang
Anonim
Paano Bumuo ng isang Monitor ng Temperatura ng Raspberry Pi
Paano Bumuo ng isang Monitor ng Temperatura ng Raspberry Pi

Ang temperatura at halumigmig ay mahalaga sa mga puntos ng data sa industriyal na mundo ngayon. Ang pagsubaybay sa data ng kapaligiran para sa mga silid ng server, mga komersyal na freezer, at mga linya ng produksyon ay kinakailangan upang mapanatiling maayos ang pagpapatakbo ng mga bagay. Mayroong maraming mga solusyon doon mula sa pangunahing hanggang sa kumplikado at maaaring mukhang napakalaki sa kung ano ang kailangan ng iyong negosyo at kung saan magsisimula.

Dadaanin namin kung paano subaybayan ang temperatura gamit ang isang Raspberry Pi at iba't ibang mga sensor ng temperatura na maaari mong gamitin. Ito ay isang magandang lugar upang magsimula dahil ang mga solusyon na ito ay hindi magastos, madaling gawin, at bibigyan ka ng isang pundasyon upang mabuo para sa iba pang pagsubaybay sa kapaligiran.

Mga gamit

  • Raspberry Pi (3, 4, o Zero WH)
  • Temperatura Sensor (DHT2, DSB18B20, BME280, o Sense HAT)
  • 6 "40-Pin IDE Lalaki hanggang Babae na Extension Cable (Sense HAT Solution)
  • 10K Resistor, Breadboard, 40-Pin Breakout Board + Ribbon Cable, Wires (Para sa DSB18B20 Solution)

Hakbang 1: Raspberry Pi

Ang isang Raspberry Pi ay isang murang solong computer ng board na magpapahintulot sa iyo na kumonekta sa isang sensor ng temperatura at mai-stream ang data sa isang data visualization software. Ang Raspberry Pi's ay nagsimula bilang isang tool sa pag-aaral at nagbago sa isang pang-industriya na tool sa lugar ng trabaho. Ang kadalian ng paggamit at kakayahang mag-code sa Python, ang pinakamabilis na lumalagong wika ng programa, ay gumawa ng solusyon sa kanila.

Gusto mo ng isang Raspberry Pi na naka-built in na WiFi, na kung alin ang anumang modelo ng 3, 4, at zero W / WH. Sa pagitan ng mga maaari kang pumili batay sa pagpepresyo at mga tampok. Ang Zero W / WH ang pinakamura ngunit kung kailangan mo ng higit na pag-andar maaari kang pumili sa pagitan ng 3 at 4. Maaari ka lamang bumili ng isang Zero W / WH nang paisa-isa dahil sa mga limitasyon ng Raspberry Pi Foundation. Anumang Pi ang pipiliin mo, siguraduhing bumili ng isang charger dahil ganyan ang lakas mo ng Pi at isang SD card kasama ang Raspbian upang gawing madali ang pag-install ng operating system.

Mayroong iba pang solong board computer na maaari ring gumana, ngunit iyon ay para sa ibang oras at ibang artikulo.

Hakbang 2: Mga Sensor

Mayroong tatlong mga sensor na inirerekumenda naming gamitin dahil ang mga ito ay hindi magastos, madaling kumonekta, at magbigay ng tumpak na pagbabasa; DSB18B20, DHT22, at Raspberry Pi Sense HAT.

DHT22 - Ang sensor ng temperatura at kahalumigmigan na ito ay may katumpakan ng temperatura na +/- 0.5 C at saklaw ng halumigmig mula 0 hanggang 100 porsyento. Ito ay simpleng mag-wire hanggang sa Raspberry Pi at hindi nangangailangan ng anumang mga pull up resistor.

DSB18B20 - Ang sensor ng temperatura na ito ay may digital output, na gumagana nang maayos sa Raspberry Pi. Mayroon itong tatlong mga wire at nangangailangan ng isang breadboard at risistor para sa koneksyon.

BME280 - Sinusukat ng sensor na ito ang temperatura, halumigmig, at presyon ng barometric. Maaari itong magamit sa parehong SPI at I2C.

Sense HAT - Ito ay isang add on board para sa Raspberry Pi na may mga LED, sensor, at isang maliit na joystick. Direktang kumokonekta ito sa GPIO sa Raspberry Pi ngunit ang paggamit ng isang ribbon cable ay nagbibigay sa iyo ng mas tumpak na pagbabasa ng temperatura.

Hakbang 3: Pag-setup ng Raspberry Pi

Kung ito ang kauna-unahang oras na pag-set up ng iyong Raspberry Pi kakailanganin mong i-install ang Raspbian Operating System at ikonekta ang iyong Pi sa WiFi. Mangangailangan ito ng isang monitor at keyboard upang kumonekta sa Pi. Kapag natapos mo na ito at tumakbo at kumonekta sa WiFI, handa nang umalis ang iyong Pi.

Hakbang 4: Paunang Account ng Estado

Paunang Account ng Estado
Paunang Account ng Estado
Paunang Account ng Estado
Paunang Account ng Estado

Kakailanganin mo sa kung saan upang ipadala ang iyong data upang mapanatili ang isang makasaysayang log at tingnan ang real-time na stream ng data upang magamit namin ang Paunang Estado. Pumunta sa https://iot.app.initialstate.com at lumikha ng isang bagong account o mag-log in sa iyong mayroon nang account.

Susunod, kailangan naming i-install ang module ng Initial State Python sa iyong Pi. Sa isang prompt ng utos (huwag kalimutang i-SSH muna ang iyong Pi), patakbuhin ang sumusunod na utos:

$ cd / home / pi /

$ / curl -sSL https://get.initialstate.com/python -o - | sudo bash

Matapos mong ipasok ang curl command sa command prompt makikita mo ang isang bagay na katulad sa sumusunod na output sa screen:

pi @ raspberrypi ~

$ / curl -sSL https://get.initialstate.com/python -o - | sudo bash Password: Simula ng ISStreamer Python Madaling Pag-install! Maaari itong tumagal ng ilang minuto upang mai-install, kumuha ng kape:) Ngunit huwag kalimutang bumalik, magkakaroon ako ng mga katanungan sa paglaon! Natagpuan easy_install: setuptools 1.1.6 Natagpuan pip: pip 1.5.6 mula sa /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip pangunahing bersyon: 1 pip menor de edad na bersyon: Natagpuan ang 5 ISStreamer, ina-update… Napapanahon na ang kinakailangan: ISStreamer sa /Library/Python/2.7/site-packages Nililinis … Nais mo bang awtomatikong makakuha ng isang halimbawa ng script? [y / N] Saan mo nais i-save ang halimbawa? [default:./is_example.py] Mangyaring piliin kung aling Initial State app ang iyong ginagamit: 1. app.initialstate.com 2. [BAGO!] iot.app.initialstate.com Ipasok ang pagpipilian 1 o 2: Ipasok ang iot.app.initialstate.com pangalan ng gumagamit: Ipasok ang iot.app.initialstate.com password:

Kapag na-prompt na awtomatikong makakuha ng isang halimbawa ng script, i-type ang y. Lilikha ito ng isang script ng pagsubok na maaari naming patakbuhin upang matiyak na maaari naming mai-stream ang data sa Paunang Estado. Ang susunod na prompt ay magtatanong kung saan mo nais i-save ang halimbawang file. Maaari kang mag-type ng isang pasadyang lokal na landas o pindutin ang enter upang tanggapin ang default na lokasyon. Panghuli, tatanungin ka kung aling Initial State app ang iyong ginagamit. Kung nakagawa ka kamakailan ng isang account, piliin ang pagpipilian 2, ipasok ang iyong pangalan ng gumagamit at password. Pagkatapos nito ay kumpleto ang pag-install.

Tingnan natin ang halimbawa ng script na nilikha.

$ nano ay_example.py

Sa linya 15, makikita mo ang isang linya na nagsisimula sa streamer = Streamer (bucket_…. Lumilikha ang mga linyang ito ng isang bagong bucket ng data na pinangalanang "Halimbawa ng Python Stream" at nauugnay sa iyong account. Nangyayari ang ugnayan na ito dahil sa access_key = "…" parameter sa parehong linya na iyon. Ang mahabang serye ng mga titik at numero ay ang iyong key sa pag-access sa Paunang Estado ng account. Kung pupunta ka sa iyong Initial State account sa iyong web browser, mag-click sa iyong username sa kanang tuktok, pagkatapos ay pumunta sa "aking mga setting", mahahanap mo ang parehong access key dito sa ilalim ng "Streaming Access Keys".

Sa tuwing lumilikha ka ng isang data stream, ididirekta ng access key na iyon ang data stream sa iyong account (kaya huwag ibahagi ang iyong susi sa sinuman).

Patakbuhin ang script ng pagsubok upang matiyak na makakalikha kami ng isang stream ng data sa iyong Initial State account. Patakbuhin ang sumusunod:

$ python ay_example.py

Bumalik sa iyong Initial State account sa iyong web browser. Ang isang bagong bucket ng data na tinawag na "Halimbawa ng Python Stream" ay dapat na lumabas sa kaliwa sa iyong log shelf (maaaring kailanganin mong i-refresh ang pahina). Mag-click sa bucket na ito at pagkatapos ay mag-click sa icon ng Waves upang matingnan ang data ng pagsubok

Kung gumagamit ka ng Python 3 maaari mong i-install ang Initial State Streamer Module maaari kang mag-install gamit ang sumusunod na utos:

pip3 i-install ang ISStreamer

Handa na kaming i-set up ang sensor ng temperatura gamit ang Pi upang mag-stream ng temperatura sa isang dashboard.

Hakbang 5: Solusyon ng DHT22

Solusyon sa DHT22
Solusyon sa DHT22

Ang DHT22 ay magkakaroon ng tatlong mga pin - 5V, Gnd, at data. Dapat mayroong isang label na pin para sa lakas sa DHT22 (hal. '+' O '5V'). Ikonekta ito sa pin 2 (sa kanang tuktok na pin, 5V) ng Pi. Ang Gnd pin ay mamamarkahan na '-' o 'Gnd' o isang bagay na katumbas. Ikonekta ito sa pin 6 Gnd (dalawang pin sa ibaba ng 5V pin) sa Pi. Ang natitirang pin sa DHT22 ay ang data pin at mamarkahan na 'out' o 's' o 'data'. Ikonekta ito sa isa sa mga pin ng GPIO sa Pi tulad ng GPIO4 (pin 7). Kapag na-wire na ito, kapangyarihan sa iyong Pi.

I-install ang module ng Adafruit DHT Python sa isang prompt ng utos upang gawing napakadali ang pagbabasa ng data ng sensor ng DHT22:

$ sudo pip i-install ang Adafruit_DHT

Sa aming naka-install na operating system kasama ang aming dalawang module ng Python para sa pagbabasa ng data ng sensor at pagpapadala ng data sa Paunang Estado, handa kaming isulat ang aming script sa Python. Ang sumusunod na script ay lilikha / idadagdag sa isang data ng Initial State bucket, basahin ang data ng sensor ng DHT22, at ipadala ang data na iyon sa isang real-time dashboard. Ang kailangan mo lang gawin ay baguhin ang mga linya 6-11.

i-import ang Adafruit_DHT

mula sa ISStreamer. Streamer import time ng pag-import ng Streamer # --------- Mga Setting ng Gumagamit --------- SENSOR_LOCATION_NAME = "Opisina" BUCKET_NAME = ": partly_sunny: Mga Temperatura sa Silid" BUCKET_KEY = "rt0129" ACCESS_KEY = "LUGARIN ANG IYONG INITIAL STATE ACCESS KEY DITO" MINUTES_BETWEEN_READS = 10METRIC_UNITS = Maling # -----------------streamer = Streamer (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY) habang Totoo: halumigmig, temp_c = Adafruit_DHT.read_retry (Adafruit_DHT. DHT22, 4) kung METRIC_UNITS: streamer.log (SENSOR_LOCATION_NAME) "streamer.log (SENSOR_LOCATION_NAME)": temp_f = format (temp_c * 9.0 / 5.0 + 32.0, ".2f") streamer.log (SENSOR_LOCATION_NAME + "Temperature (F)", temp_f) halumigmig = format (halumigmig, ".2f") streamer.log (SENSOR_LOCATION_NAME + "Humidity (%)", halumigmig) streamer.flush () time.s Sleep (60 * MINUTES_BETWEEN_READS)

  • Linya 6 - Ang halagang ito ay dapat na natatangi para sa bawat node / sensor ng temperatura. Maaaring ito ang pangalan ng silid ng iyong node ng sensor, pisikal na lokasyon, natatanging identifier, o kung ano pa man. Tiyaking tiyak na natatangi ito para sa bawat node upang matiyak na ang data mula sa node na ito ay papunta sa sarili nitong stream ng data sa iyong dashboard.
  • Linya 7 - Ito ang pangalan ng data bucket. Maaari itong mabago anumang oras sa UI ng Paunang Estado.
  • Linya 8 - Ito ang iyong bucket key. Kailangan itong maging parehong bucket key para sa bawat node na nais mong ipakita sa parehong dashboard.
  • Linya 9 - Ito ang iyong key ng pag-access sa Inisyal na Estado ng account. Kopyahin at i-paste ang key na ito mula sa iyong Initial State account.
  • Linya 10 - Ito ang oras sa pagitan ng pagbasa ng sensor. Baguhin nang naaayon.
  • Linya 11 - Maaari mong tukuyin ang mga unit ng panukat o imperyal sa linya 11.

Matapos mong itakda ang mga linya 6-11 sa iyong script sa Python sa iyong Pi, i-save at lumabas sa text editor. Patakbuhin ang script gamit ang sumusunod na utos:

$ python tempsensor.py

Ngayon ay magkakaroon ka ng pagpapadala ng data sa isang dashboard ng Paunang Estado. Pumunta sa huling seksyon ng artikulong ito para sa mga detalye sa kung paano ipasadya ang iyong dashboard.

Hakbang 6: Solusyon ng DSB18B20

Solusyon ng DSB18B20
Solusyon ng DSB18B20
Solusyon ng DSB18B20
Solusyon ng DSB18B20

Ang ribbon cable ay kumokonekta sa mga GPIO pin sa Pi. Ang DS18B20 ay may tatlong mga wire. Ang pulang kawad ay kumokonekta sa 3.3V. Ang asul / itim na kawad ay kumokonekta sa lupa. Ang dilaw na kawad ay kumokonekta sa isang pull-up risistor / pin 4. Kapag ito ay naka-wire na, kapangyarihan sa iyong Pi.

Ang pinakabagong bersyon ng Raspbian (kernel 3.18) ay nangangailangan ng isang karagdagan sa iyong /boot/config.txt file para sa Pi upang makipag-usap sa DS18B20. Patakbuhin ang sumusunod upang mai-edit ang file na ito:

$ sudo nano /boot/config.txt

Kung ang sumusunod na linya ay wala sa file na ito (kung ito ay, malamang na ito ay nasa ilalim ng file), idagdag ito at i-save ang file.

dtoverlay = w1-gpio, gpiopin = 4

I-restart ang iyong Pi para magkabisa ang mga pagbabago.

$ sudo reboot

Upang simulan ang sensor ng sensor ng basahin ang interface kailangan namin upang magpatakbo ng dalawang mga utos. Pumunta sa isang prompt ng utos sa iyong Pi o SSH sa iyong Pi. I-type ang mga sumusunod na utos:

$ sudo modprobe w1-gpio $ sudo modprobe w1-therm

Ang output ng iyong sensor ng temperatura ay sinusulat na ngayon sa isang file sa iyong Pi. Upang hanapin ang file na iyon:

$ cd / sys / bus / w1 / mga aparato

Sa direktoryo na ito, magkakaroon ng isang sub-direktoryo na nagsisimula sa “28-“. Ang darating pagkatapos ng "28-" ay ang serial number ng iyong sensor. cd sa direktoryo na iyon. Sa loob ng direktoryong ito, ang isang file na pinangalanang w1_slave ay naglalaman ng output ng iyong sensor. Gumamit ng nano upang matingnan ang mga nilalaman ng file. Kapag nakapasok ka na sa file, magmumukhang ganito:

a2 01 4b 46 7f ff 0e 10 d8: crc = d8 YESa2 01 4b 46 7f ff 0e 10 d8 t = 26125

Ang numero pagkatapos ng "t =" ay ang bilang na gusto namin. Ito ang temperatura sa 1/1000 degree Celsius (sa halimbawa sa itaas, ang temperatura ay 26.125 C). Kailangan lang namin ng isang simpleng programa na binabasa ang file na ito at na-parse ang numerong iyon. Makakarating tayo doon sa isang segundo lamang.

Handa na ang lahat para sa amin upang simulan ang streaming data. Upang buksan ang pag-type ng text editor ng sumusunod sa command prompt:

$ nano temperatura.py

Kopyahin at i-paste ang code sa ibaba sa text editor.

import os

i-import ang oras ng pag-import ng glob mula sa ISStreamer. Streamer import Streamerstreamer = Streamer (bucket_name = "Temperature Stream", bucket_key = "piot_temp_stream031815", access_key = "PUT_YOUR_ACCESS_KEY_HERE") os.system ('modprobe w1-gpio') osprobe system -therm ') base_dir =' / sys / bus / w1 / device / 'device_folder = glob.glob (base_dir + '28 *') [0] device_file = device_folder + '/ w1_slave' def read_temp_raw (): f = bukas (aparato_file, 'r') mga linya = f.readlines () f.close () ibalik ang mga linya def read_temp (): mga linya = read_temp_raw () habang ang mga linya [0].strip () [- 3:]! = 'YES': oras.sulog (0.2) mga linya = read_temp_raw () katumbas ng_pos = mga linya [1].find ('t =') kung katumbas ng_pos! = -1: temp_string = mga linya [1] [equals_pos + 2:] temp_c = float (temp_string) / 1000.0 bumalik temp_c habang Totoo: temp_c = read_temp () temp_f = temp_c * 9.0 / 5.0 + 32.0 streamer.log ("temperatura (C)", temp_c) streamer.log ("temperatura (F)", temp_f) oras. Tulog (.5)

Kailangan mong ilagay ang iyong Inisyal na Pag-access ng estado key sa linya 6 sa lugar ng PUT_YOUR_ACCESS_KEY_HERE (kopyahin ang streaming key sa iyong clipboard mula sa 'Aking Account' at i-paste ito sa code sa nano sa iyong terminal).

Lilikha ang Linya 6 ng isang timba na pinangalanang "Temperatura Stream" sa iyong Initial State account (sa pag-aakalang tama mong tinukoy ang iyong access_key sa parehong linya na ito). Ang mga linya na 8 hanggang 30 ng script na ito ay simpleng interface sa DS18B20 sensor upang mabasa ang temperatura nito mula sa w1_slave file na tinalakay namin nang mas maaga. Ang function na read_temp_raw () sa linya 15 ay binabasa ang hilaw na file na w1_slave. Ang function na read_temp () sa linya 21 ay parse ang temperatura mula sa file na iyon. Ang linya 34 ay tumatawag sa mga pagpapaandar na ito upang makuha ang kasalukuyang temperatura. Binabago ng linya 35 ang temperatura mula sa Celsius patungong Fahrenheit. Ang mga linya na 35 at 36 ay dumadaloy ng temperatura sa iyong Initial State account. Ang linya 37 ay naka-pause ng script sa loob ng 0.5 segundo, na itinatakda kung gaano kadalas babasahin at mai-stream ang sensor ng temperatura.

Handa na kaming magsimulang mag-streaming. Patakbuhin ang sumusunod na utos:

$ sudo python temperatura.py

Bumalik sa iyong Initial State account sa iyong web browser at maghanap ng isang bagong data bucket na tinatawag na Temperature Stream. Dapat mong makita ang data ng temperatura na streaming sa live. Iiba ang temperatura ng sensor sa pamamagitan ng paghawak sa iyong kamay o paglalagay sa isang basong yelo.

Ngayon ay magkakaroon ka ng pagpapadala ng data sa isang dashboard ng Paunang Estado. Pumunta sa huling seksyon ng artikulong ito para sa mga detalye sa kung paano ipasadya ang iyong dashboard.

Hakbang 7: Solusyon ng BME280

Kakailanganin mo ang sumusunod na pagbuo ng solusyon na ito:

-BME280 Pressure, Temperatura, at Sensor ng Humidity

Ang sensor na ito ay may kasamang mga pin na kakailanganin mong maghinang sa sensor. Inirerekumenda ko ang paggamit ng isang breadboard na may mga gilid na mahaba ang mga pin pababa sa breadboard upang gawing mas madali ang paghihinang. Kapag nakumpleto mo na ito kailangan naming i-wire ang sensor sa Pi.

Ikonekta ang VIN pin sa sensor sa 3.3V pin 1 sa Pi. Ikonekta ang pin ng GND sa sensor ng ground pin 6 sa Pi. Ikonekta ang SCK pin sa sensor sa SCL pin 5 sa Pi. Ikonekta ang pin ng SDI sa sensor sa SDA pin 3 sa Pi. Kakailanganin mong gumamit ng Python 3 para sa solusyon na ito at mai-install ang module ng Initial State Streamer gamit ang pamamaraang pag-install ng pip3.

Kakailanganin mo ring mag-install ng ilang mga aklatan ng Adafruit Python.

pip3 install adafruit-blinkapip3 install pureio pip3 install spidev pip3 install adafruit-GPIO pip3 install adafruit-circuitpython-bme280

Upang magamit ang sensor kailangan namin upang paganahin ang I2C sa Pi.

sudo raspi-config

Bubuksan nito ang Tool ng Pag-configure ng Raspberry Pi Software. Pumunta sa Opsyon 5 Mga Pagpipilian sa Pag-interface. Mula dito pumunta sa I2C. Susubukan nitong tanungin ka kung nais mong paganahin ang I2C, Piliin ang Oo at Tapusin. Ngayon ay mayroon ka ng I2C pinagana upang makipag-usap sa sensor.

Maaari naming subukan ito sa pamamagitan ng pagpapatakbo ng sumusunod:

sudo i2cdetect -y 1

Mapatunayan nito na nakikita ng iyong Pi ang sensor. Sa paraan ng pagkonekta nito, dapat ipakita ang sensor sa address 77. Kung hindi mo nakita ang sensor, i-reboot ang iyong Pi, gayahin ang pagpipiliang interface ng I2C sa iyong Pi, at subukang muli. Kapag nakita ang iyong sensor, oras na upang patakbuhin ang aming pangunahing code na magpapadala ng data sa Paunang Estado. Lumikha ng isang file na tinatawag na bme280sensor.py gamit ang nano utos. Kopyahin at i-paste ang code mula sa diwa sa text editor. Kakailanganin mong gumawa ng mga pagbabago sa mga linya 12-19.

oras ng pag-import

import board import busio import adafruit_bme280 mula sa ISStreamer. Streamer import Streamer # Lumikha ng object ng library gamit ang aming Bus I2C porti2c = busio. I2C (board. SCL, board. SDA) bme280 = adafruit_bme280. Adafruit_BME280_I2C (i2c) # ------- - Mga Setting ng Gumagamit --------- SENSOR_LOCATION_NAME = "Opisina" BUCKET_NAME = ": partly_sunny: Temperatura sa Silid" BUCKET_KEY = "temp1" ACCESS_KEY = "IYONG ACCESS KEY DITO" # baguhin ito upang tumugma sa presyon ng lokasyon (hPa) sa antas ng dagat bme280.sea_level_pressure = 1013.25 MINUTES_BETWEEN_READS = 10 METRIC_UNITS = Mali # # # # # # # O lumikha ng object ng library gamit ang aming Port SPI port #spi = busio. SPI (board. SCK, board. MOSI, board. MISO) #bme_cs = digitalio. DigitalInOut (board. D10) # bme280 = adafruit_bme280. Adafruit_BME280_SPI (spi, bme_cs) streamer = Streamer (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY) habang Totoo: kahalumigmigan = format (bme280.humidity, ".1f") pressure = format (bme280.pressure, ".1f") temp_c = bme280.temperatu kung METRIC_UNITS: streamer.log (SENSOR_LOCATION_NAME + "Temperatura (C)", temp_c) iba pa: temp_f = format (temp_c * 9.0 / 5.0 + 32.0, ".1f") streamer.log (SENSOR_LOCATION_NAME + "Temperature (F)", temp_f) streamer.log (SENSOR_LOCATION_NAME + "Humidity (%)", halumigmig) streamer.log (SENSOR_LOCATION_NAME + "Pressure (hPA)", pressure) streamer.flush () time.s Sleep (60 * MINUTES_BETWEEN_READS)

  • Linya 12- Ang halagang ito ay dapat na natatangi para sa bawat node / sensor ng temperatura. Maaaring ito ang pangalan ng silid ng iyong node ng sensor, pisikal na lokasyon, natatanging identifier, o kung ano pa man. Tiyaking tiyak na natatangi ito para sa bawat node upang matiyak na ang data mula sa node na ito ay papunta sa sarili nitong stream ng data sa iyong dashboard.
  • Linya 13- Ito ang pangalan ng data bucket. Maaari itong mabago anumang oras sa UI ng Paunang Estado.
  • Linya 14- Ito ang iyong bucket key. Kailangan itong maging parehong bucket key para sa bawat node na nais mong ipakita sa parehong dashboard.
  • Linya 15- Ito ang iyong key ng pag-access sa Inisyal na Estado ng account. Kopyahin at i-paste ang key na ito mula sa iyong Initial State account.
  • Linya 17- Ito ang presyon ng iyong lokasyon (hPa) sa antas ng dagat. Mahahanap mo ang impormasyong ito sa karamihan ng mga website sa panahon.
  • Linya 18 - Ito ang oras sa pagitan ng pagbasa ng sensor. Baguhin nang naaayon. Linya 19- Dito maaari mong tukuyin ang mga unit ng panukat o imperyal.

Matapos mong itakda ang mga linya 12-19 sa iyong script sa Python sa iyong Pi Zero WH, i-save at lumabas sa text editor. Patakbuhin ang script gamit ang sumusunod na utos:

$ python3 bme280sensor.py

Ngayon ay magkakaroon ka ng pagpapadala ng data sa isang dashboard ng Paunang Estado. Pumunta sa huling seksyon ng artikulong ito para sa mga detalye sa kung paano ipasadya ang iyong dashboard.

Hakbang 8: Sense HAT

Sense HAT
Sense HAT
Sense HAT
Sense HAT

Ang unang hakbang sa paggamit ng Sense HAT ay ang pisikal na i-install ito sa iyong Pi. Sa pamamagitan ng pagpapatakbo ng Pi pababa, ikinabit ang HAT tulad ng ipinakita sa larawan.

Kung magpasya kang gamitin ang solusyon tulad ng ipinakita sa itaas maaari mong mapansin na ang pagbabasa ng temperatura ng iyong Sense HAT ay medyo mataas - iyon ay dahil sa sila. Ang salarin ay ang init na nabuo mula sa CPU ng Pi na nagpapainit ng hangin sa paligid ng Sense HAT kapag nakaupo ito sa tuktok ng Pi. Upang gawing kapaki-pakinabang ang sensor ng temperatura, kailangan nating alisin ang HAT mula sa Pi o subukang i-calibrate ang pagbabasa ng sensor ng temperatura. Ang isang mahusay na solusyon para sa pagkuha ng sensor mula sa Pi ay isang cable na hinahayaan ang Sense HAT na nakalawit palayo sa Pi. Isang 6 , 40-pin IDE na lalaki hanggang babaeng extension cable cable ang gagawa ng trick.

Kapag nagpasya ka sa dalawang mga pagpipilian, kapangyarihan sa iyong Pi. Kailangan naming i-install ang Python library upang gawing madali na basahin ang mga halaga ng sensor mula sa Sense HAT. Una, kakailanganin mong tiyakin na ang lahat ay napapanahon sa iyong bersyon ng Raspbian:

$ sudo apt-get update

Susunod, i-install ang library ng Sense HAT Python:

$ sudo apt-get install na sense-hat

I-reboot ang iyong Pi. Handa kaming subukan ang Sense HAT sa pamamagitan ng pagbabasa ng data ng sensor mula rito at ipadala ang data na iyon sa Paunang Estado.

Lumikha ng isang file na tinatawag na sensehat at buksan ito sa text editor sa pamamagitan ng pagpasok ng follwoing sa command prompt:

$ nano sensehat.py

Kopyahin at i-paste ang code sa ibaba sa text editor.

mula sa sense_hat import SenseHat

mag-import ng oras ng pag-import ng sys mula sa ISStreamer. Streamer import Streamer # --------- Mga Setting ng Gumagamit --------- BUCKET_NAME = "Panahon ng Opisina" BUCKET_KEY = "sensehat" ACCESS_KEY = "Iyong_Access_Key" SENSOR_LOCATION_NAME = " Opisina "MINUTES_BETWEEN_SENSEHAT_READS = 0.1 # ----------------- streamer = Streamer (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY) sense = SenseHat () habang Totoo: # Basahin ang mga sensor temp_c = sense.get_temperature () halumigmig = sense.get_humidity () pressure_mb = sense.get_pressure () # I-format ang data temp_f = temp_c * 9.0 / 5.0 + 32.0 temp_f = float ("{0:.2f}". Format (temp_f)) halumigmig = float ("{0:.2f}". Format (halumigmig)) pressure_in = 0.03937008 * (pressure_mb) pressure_in = float ("{ 0:.2f} ". Format (pressure_in)) # Print and stream print SENSOR_LOCATION_NAME +" Temperatura (F): "+ str (temp_f) print SENSOR_LOCATION_NAME +" Humidity (%): "+ str (halumigmig) print SENSOR_LOCATION_NAME +" Pressure (IN): "+ str (pressure_in) streamer.log (": sunny: "+ SEN SOR_LOCATION_NAME + "Temperatura (F)", temp_f) streamer.log (": sweat_drops:" + SENSOR_LOCATION_NAME + "Humidity (%)", halumigmig) streamer.log (": cloud:" + SENSOR_LOCATION_NAME + "Pressure (IN)", pressure_in) streamer.flush () time.s Sleep (60 * MINUTES_BETWEEN_SENSEHAT_READS)

Pansinin sa unang linya na ini-import namin ang library ng SenseHat sa script. Bago mo patakbuhin ang script na ito, kailangan naming i-set up ang aming mga parameter ng gumagamit.

# --------- Mga Setting ng Gumagamit ----

BUCKET_NAME = "Weather sa Opisina" BUCKET_KEY = "sensehat" ACCESS_KEY = "Your_Access_Key" SENSOR_LOCATION_NAME = "Office" MINUTES_BETWEEN_SENSEHAT_READS = 0.1 # ----------------- --------

Partikular, kailangan mong itakda ang iyong ACCESS_KEY sa iyong key ng pag-access sa Paunang Estado ng account. Maaari mong baguhin ang BUCKET_NAME at SENSOR_LOCATION_NAME sa aktwal na lokasyon ng sensor. I-save at lumabas sa text editor.

Sa isang prompt ng utos sa iyong Pi, patakbuhin ang script:

$ sudo python sensehat.py

Ngayon ay magkakaroon ka ng pagpapadala ng data sa isang dashboard ng Paunang Estado. Pumunta sa huling seksyon ng artikulong ito para sa mga detalye sa kung paano ipasadya ang iyong dashboard.

Hakbang 9: Ipasadya ang Iyong Paunang Dashboard ng Estado

Ipasadya ang Iyong Paunang Dashboard ng Estado
Ipasadya ang Iyong Paunang Dashboard ng Estado

Pumunta sa iyong Initial State account at tingnan ang iyong data. Maaari kang mag-right click sa isang Tile upang baguhin ang uri ng tsart at i-click ang I-edit ang Mga Tile upang baguhin ang laki at ilipat ang iyong mga Tile sa paligid. Inirerekumenda ko ang paggamit ng gauge termostat para sa temperatura at antas ng likido ng gauge para sa halumigmig. Maaari kang lumikha ng mga line graph para sa parehong temperatura at halumigmig upang makita ang mga pagbabago sa paglipas ng panahon. Maaari ka ring magdagdag ng isang imahe sa background sa iyong dashboard.

Maaari mong itakda ang mga alerto sa Trigger upang makakuha ka ng isang SMS o email kung ang temperatura ay bumaba sa ibaba o napupunta sa itaas ng isang tiyak na threshold. Pumunta sa iyong data bucket at mag-click sa mga setting. Mula doon pumunta sa tab na Mga Trigger. Ipasok ang stream key na nais mong subaybayan, ang operator na nais mong gamitin, at ang halaga ng threshold. I-click ang plus sign upang idagdag ang Trigger. Pagkatapos ay ipasok mo ang iyong email o numero ng telepono upang matanggap ang alerto at i-click ang plus sign. Kapag naitakda mo na ang lahat ng iyong mga Trigger i-click ang Tapos na button sa ibaba.

Ngayong lumikha ka ng isang monitor ng temperatura gamit ang isang sensor ng temperatura at isang Raspberry Pi, maaari mo nang simulang mag-isip tungkol sa kung anong iba pang data sa kapaligiran ang maaari mong subaybayan sa susunod.