Turinys:

Kaip sukurti „Raspberry Pi“temperatūros monitorių: 9 žingsniai
Kaip sukurti „Raspberry Pi“temperatūros monitorių: 9 žingsniai

Video: Kaip sukurti „Raspberry Pi“temperatūros monitorių: 9 žingsniai

Video: Kaip sukurti „Raspberry Pi“temperatūros monitorių: 9 žingsniai
Video: Lesson 68, Home Automation: How to control 16 Channel Relay module using Arduino control 16 AC loads 2024, Lapkritis
Anonim
Kaip sukurti „Raspberry Pi“temperatūros monitorių
Kaip sukurti „Raspberry Pi“temperatūros monitorių

Temperatūra ir drėgmė yra gyvybiškai svarbūs duomenys šiuolaikiniame pramonės pasaulyje. Norint, kad viskas vyktų sklandžiai, būtina stebėti serverių, komercinių šaldiklių ir gamybos linijų aplinkos duomenis. Yra daug sprendimų, pradedant nuo pagrindinių iki sudėtingų, ir tai gali atrodyti nepaprastai svarbu, ko reikia jūsų verslui ir nuo ko pradėti.

Apžvelgsime, kaip stebėti temperatūrą naudojant „Raspberry Pi“ir įvairius temperatūros jutiklius, kuriuos galite naudoti. Tai gera vieta pradėti, nes šie sprendimai yra nebrangūs, lengvai atliekami ir suteikia pagrindą kitiems aplinkos stebėjimams.

Prekės

  • „Raspberry Pi“(3, 4 arba „Zero WH“)
  • Temperatūros jutiklis (DHT2, DSB18B20, BME280 arba „Sense HAT“)
  • 6 colių 40 kontaktų IDE nuo vyrų iki moterų ilginamasis kabelis („Sense HAT Solution“)
  • 10K rezistorius, duonos lenta, 40 kontaktų pertraukimo lenta + juostelės kabelis, laidai (DSB18B20 sprendimui)

1 žingsnis: Raspberry Pi

„Raspberry Pi“yra nebrangus vienos plokštės kompiuteris, leidžiantis prisijungti prie temperatūros jutiklio ir perduoti duomenis į duomenų vizualizavimo programinę įrangą. „Raspberry Pi“prasidėjo kaip mokymosi priemonė ir tapo pramonės įrankiu. Paprastas naudojimas ir galimybė koduoti naudojant sparčiausiai augančią programavimo kalbą „Python“privertė juos ieškoti sprendimo.

Norėsite „Raspberry Pi“, kuriame yra įmontuotas „WiFi“, kuris yra bet koks 3, 4 modelis ir nulis W/WH. Tarp jų galite pasirinkti pagal kainas ir funkcijas. „Zero W/WH“yra pigiausias, tačiau, jei jums reikia daugiau funkcijų, galite pasirinkti iš 3 ir 4. Dėl „Raspberry Pi Foundation“apribojimų vienu metu galite įsigyti tik vieną „Zero W/WH“. Kad ir kokį „Pi“pasirinktumėte, būtinai įsigykite įkroviklį, nes taip „Pip“ir SD kortelę įjungsite su „Raspbian“, kad operacinė sistema būtų įdiegta kuo lengviau.

Yra ir kitų vienos plokštės kompiuterių, kurie taip pat gali veikti, bet tai kitam kartui ir kitam straipsniui.

2 žingsnis: jutikliai

Rekomenduojame naudoti tris jutiklius, nes jie yra nebrangūs, lengvai prijungiami ir pateikia tikslius rodmenis; DSB18B20, DHT22 ir Raspberry Pi Sense HAT.

DHT22 - Šio temperatūros ir drėgmės jutiklio temperatūros tikslumas yra +/- 0,5 C, o drėgmės diapazonas yra nuo 0 iki 100 procentų. Prijungti prie „Raspberry Pi“paprasta ir nereikia jokių traukimo rezistorių.

DSB18B20 - Šis temperatūros jutiklis turi skaitmeninį išėjimą, kuris gerai veikia su „Raspberry Pi“. Jame yra trys laidai, todėl prijungimui reikia duonos lentos ir rezistoriaus.

BME280 - Šis jutiklis matuoja temperatūrą, drėgmę ir barometrinį slėgį. Jis gali būti naudojamas tiek SPI, tiek I2C.

„Sense HAT“- tai „Raspberry Pi“priedas, turintis šviesos diodus, jutiklius ir mažą vairasvirtę. Jis jungiamas tiesiai prie „Raspberry Pi“GPIO, tačiau naudojant juostinį kabelį galite gauti tikslesnius temperatūros rodmenis.

3 žingsnis: „Raspberry Pi“sąranka

Jei „Raspberry Pi“nustatote pirmą kartą, turėsite įdiegti „Raspbian“operacinę sistemą ir prijungti „Pi“prie „WiFi“. Norint prisijungti prie „Pi“, reikės monitoriaus ir klaviatūros. Kai jis bus paleistas ir prijungtas prie „WiFI“, „Pi“bus paruoštas naudoti.

4 žingsnis: pradinė valstybės sąskaita

Pradinė valstybės sąskaita
Pradinė valstybės sąskaita
Pradinė valstybės sąskaita
Pradinė valstybės sąskaita

Jums reikės kažkur išsiųsti savo duomenis, kad galėtumėte laikyti istorinį žurnalą ir peržiūrėti duomenų srautą realiuoju laiku, todėl naudosime pradinę būseną. Eikite į https://iot.app.initialstate.com ir sukurkite naują paskyrą arba prisijunkite prie esamos paskyros.

Toliau turime įdiegti pradinės būsenos „Python“modulį į jūsų „Pi“. Komandų eilutėje (nepamirškite SSH į savo Pi pirmiausia) paleiskite šią komandą:

$ cd/home/pi/

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

Įvedę komandą curl komandų eilutėje, ekrane pamatysite kažką panašaus į šią išvestį:

pi@aviečių ~

$ / curl -sSL https://get.initialstate.com/python -o -| sudo bash Slaptažodis: Pradedant ISStreamer Python Lengvas diegimas! Tai gali užtrukti kelias minutes, kol bus įdiegta, išgerkite kavos:) Bet nepamirškite sugrįžti, vėliau turėsiu klausimų! Rasta easy_install: setuptools 1.1.6 Rasta pip: pip 1.5.6 iš /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip pagrindinė versija: 1 pip minor versija: 5 ISStreamer rastas, atnaujinamas … Reikalavimas jau atnaujintas: ISStreamer /Library/Python/2.7/site-packages Valymas … Ar norite automatiškai gauti scenarijaus pavyzdį? [y/N] Kur norite išsaugoti pavyzdį? [numatytasis:./is_example.py] Pasirinkite, kurią pradinės būsenos programą naudojate: 1. app.initialstate.com 2. [NAUJIENA!].initialstate.com vartotojo vardas: įveskite iot.app.initialstate.com slaptažodį:

Kai būsite paraginti automatiškai gauti scenarijaus pavyzdį, įveskite y. Taip bus sukurtas bandomasis scenarijus, kurį galime paleisti, kad užtikrintume, jog galime perduoti duomenis į pradinę būseną. Kitame raginime bus klausiama, kur norite išsaugoti pavyzdinį failą. Galite įvesti pasirinktinį vietinį kelią arba paspausti Enter, kad patvirtintumėte numatytąją vietą. Galiausiai jūsų paklaus, kurią pradinės būsenos programą naudojate. Jei neseniai sukūrėte paskyrą, pasirinkite 2 parinktį, įveskite savo vartotojo vardą ir slaptažodį. Po to diegimas bus baigtas.

Pažvelkime į sukurto scenarijaus pavyzdį.

$ nano is_example.py

15 eilutėje pamatysite eilutę, kuri prasideda streamer = Streamer (bucket_…. Šios eilutės sukuria naują duomenų grupę pavadinimu „Python Stream Example“ir yra susieta su jūsų paskyra. Šis susiejimas įvyksta dėl „access_key =“… “parametras toje pačioje eilutėje. Ši ilga raidžių ir skaičių serija yra jūsų pradinės būsenos paskyros prieigos raktas. Jei žiniatinklio naršyklėje einate į pradinės būsenos paskyrą, viršuje dešinėje spustelėkite savo vartotojo vardą, tada eikite į „mano nustatymai“tą patį prieigos raktą rasite čia, skiltyje „Srautinio perdavimo prieigos raktai“.

Kiekvieną kartą, kai sukuriate duomenų srautą, tas prieigos raktas nukreipia tą duomenų srautą į jūsų paskyrą (todėl nebendrinkite rakto su niekuo).

Paleiskite bandomąjį scenarijų, kad įsitikintumėte, jog galime sukurti duomenų srautą į jūsų pradinės būsenos paskyrą. Vykdykite šiuos veiksmus:

$ python is_example.py

Grįžkite į pradinės būsenos paskyrą žiniatinklio naršyklėje. Kairėje žurnalo lentynoje turėtų būti rodomas naujas duomenų rinkinys, pavadintas „Python Stream Example“(gali tekti atnaujinti puslapį). Spustelėkite šį segmentą, tada spustelėkite bangų piktogramą, kad pamatytumėte bandymo duomenis

Jei naudojate „Python 3“, galite įdiegti „Initial State Streamer“modulį, kurį galite įdiegti naudodami šią komandą:

pip3 įdiegti ISStreamer

Dabar esame pasirengę nustatyti temperatūros jutiklį su „Pi“, kad temperatūra būtų nukreipta į prietaisų skydelį.

5 žingsnis: DHT22 sprendimas

DHT22 sprendimas
DHT22 sprendimas

DHT22 turės tris kaiščius - 5 V, Gnd ir duomenis. DHT22 maitinimo šaltinyje turi būti kaiščio etiketė (pvz., „+“Arba „5V“). Prijunkite jį prie Pi kaiščio 2 (viršutinis dešinysis kaištis, 5 V). Gnd smeigtukas bus pažymėtas „-“arba „Gnd“arba kažkas panašaus. Prijunkite tai prie 6 Gnd kaiščio (du kaiščiai žemiau 5V kaiščio) ant Pi. Likęs DHT22 kaištis yra duomenų smeigtukas ir bus pažymėtas „out“arba „s“arba „data“. Prijunkite tai prie vieno iš „GPIO“kaiščių, tokių kaip GPIO4 (7 kaištis). Kai tai bus prijungta, įjunkite „Pi“.

Įdiekite „Adafruit DHT Python“modulį komandų eilutėje, kad būtų labai lengva skaityti DHT22 jutiklio duomenis:

$ sudo pip įdiegti „Adafruit_DHT“

Kai mūsų operacinė sistema yra įdiegta kartu su dviem „Python“moduliais, skirtais skaityti jutiklių duomenis ir siųsti duomenis į pradinę būseną, esame pasirengę parašyti savo „Python“scenarijų. Šis scenarijus sukurs/pridės pradinės būsenos duomenų grupę, perskaitys DHT22 jutiklio duomenis ir nusiųs tuos duomenis į realaus laiko prietaisų skydelį. Viskas, ką jums reikia padaryti, yra pakeisti 6–11 eilutes.

importuoti „Adafruit_DHT“

iš ISStreamer. Streamer importas Streamer importo laikas# --------- Vartotojo nustatymai --------- SENSOR_LOCATION_NAME = "Office" BUCKET_NAME = ": semi_sunny: kambario temperatūra" BUCKET_KEY = "rt0129" ACCESS_KEY = „ĮRENGKITE PIRMĄ VALSTYBĖS VALSTIJOS RAKTĄ ČIA“MINUTES_BETWEEN_READS = 10METRIC_UNITS = Netiesa # --------------------------------- streamer = Streamer (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY), o tiesa: drėgmė, temp_c = Adafruit_DHT.read_retry (Adafruit_DHT. DHT22, 4), jei METRIC_UNITS: streamer.log (SENSOR_TEMP.): temp_f = formatas (temp_c * 9.0 / 5.0 + 32.0, ".2f") streamer.log (SENSOR_LOCATION_NAME + "Temperatūra (F)", temp_f) drėgmė = formatas (drėgmė, ".2f") streamer.log (SENSOR_LOCATION_NAME + „Drėgmė (%)“, drėgmė) „streamer.flush“() time.sleep (60*MINUTES_BETWEEN_READS)

  • 6 eilutė - ši vertė turi būti unikali kiekvienam mazgui/temperatūros jutikliui. Tai gali būti jūsų jutiklio mazgo kambario pavadinimas, fizinė vieta, unikalus identifikatorius ar bet kas kitas. Tiesiog įsitikinkite, kad kiekvienas mazgas yra unikalus, kad užtikrintumėte, jog duomenys iš šio mazgo patenka į savo duomenų srautą jūsų prietaisų skydelyje.
  • 7 eilutė - tai duomenų segmento pavadinimas. Tai bet kada galima pakeisti pradinės būsenos vartotojo sąsajoje.
  • 8 eilutė - tai jūsų kibiro raktas. Tai turi būti tas pats segmento raktas kiekvienam mazgui, kurį norite rodyti toje pačioje prietaisų skydelyje.
  • 9 eilutė - tai jūsų pradinės būsenos paskyros prieigos raktas. Nukopijuokite ir įklijuokite šį raktą iš savo pradinės būsenos paskyros.
  • 10 eilutė - tai laikas tarp jutiklių nuskaitymų. Atitinkamai keiskite.
  • 11 eilutė - 11 eilutėje galite nurodyti metrinius arba imperinius vienetus.

Nustatę 6–11 eilutes „Python“scenarijuje „Pi“, išsaugokite ir išeikite iš teksto rengyklės. Paleiskite scenarijų naudodami šią komandą:

$ python tempsensor.py

Dabar turėsite siųsti duomenis į pradinės būsenos prietaisų skydelį. Norėdami sužinoti, kaip tinkinti prietaisų skydelį, eikite į paskutinį šio straipsnio skyrių.

6 žingsnis: DSB18B20 sprendimas

DSB18B20 sprendimas
DSB18B20 sprendimas
DSB18B20 sprendimas
DSB18B20 sprendimas

Juostinis kabelis jungiamas prie „GP“kaiščių. DS18B20 turi tris laidus. Raudona viela jungiama prie 3.3V. Mėlyna/juoda viela jungiasi prie žemės. Geltona viela jungiama prie ištraukiamojo rezistoriaus/kaiščio 4. Kai tai bus prijungta, įjunkite „Pi“.

Naujausiai „Raspbian“versijai (3.18 branduolys) reikia pridėti /boot/config.txt failą, kad „Pi“galėtų bendrauti su DS18B20. Norėdami redaguoti šį failą, atlikite šiuos veiksmus:

$ sudo nano /boot/config.txt

Jei šios eilutės šiame faile dar nėra (jei yra, greičiausiai ji yra failo apačioje), pridėkite ją ir išsaugokite failą.

dtoverlay = w1-gpio, gpiopin = 4

Iš naujo paleiskite „Pi“, kad pakeitimai įsigaliotų.

$ sudo perkraukite

Norėdami paleisti temperatūros jutiklio skaitymo sąsają, turime paleisti dvi komandas. Eikite į komandų eilutę savo Pi arba SSH į savo Pi. Įveskite šias komandas:

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

Jūsų temperatūros jutiklio išvestis dabar įrašoma į jūsų Pi failą. Norėdami rasti tą failą:

$ cd/sys/bus/w1/devices

Šiame kataloge bus pakatalogis, prasidedantis „28-“. Po „28“nurodomas jūsų jutiklio serijos numeris. cd į tą katalogą. Šiame kataloge faile, pavadintame w1_slave, yra jūsų jutiklio išvestis. Norėdami peržiūrėti failo turinį, naudokite „nano“. Kai įvesite failą, jis atrodys maždaug taip:

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

Skaičius po „t =“yra skaičius, kurio norime. Tai yra temperatūra 1/1000 laipsnių Celsijaus (aukščiau pateiktame pavyzdyje temperatūra yra 26,125 C). Mums tereikia paprastos programos, kuri nuskaito šį failą ir išnagrinėja tą skaičių. Mes tai pasieksime vos per sekundę.

Dabar viskas paruošta, kad galėtume pradėti transliuoti duomenis. Norėdami atidaryti teksto rengyklę, komandų eilutėje įveskite:

$ nano temperatūra.py

Nukopijuokite ir įklijuokite žemiau esantį kodą į teksto rengyklę.

importuoti

importuoti globalinį importo laiką iš ISStreamer. Streamer importuoti Streamerstreamer = Streamer (bucket_name = "Temperature Stream", bucket_key = "piot_temp_stream031815", access_key = "PUT_YOUR_ACCESS_KEY_HERE") os.system ('modprobe w1-gpio') mod.beystem -therm ') base_dir ='/sys/bus/w1/devices/'device_folder = glob.glob (base_dir + '28*') [0] device_file = device_folder + '/w1_slave' def read_temp_raw (): f = atviras (device_file, 'r') lines = f.readlines () f.close () grąžinimo eilutės def read_temp (): lines = read_temp_raw (), o eilutės [0].strip () [-3:]! = 'TAIP': time.sleep (0.2) lines = read_temp_raw () equals_pos = lines [1].find ('t =') if equals_pos! = -1: temp_string = lines [1] [equals_pos+2:] temp_c = float (temp_string) / 1000.0 grąžinti temp_c, o tiesa: temp_c = read_temp () temp_f = temp_c * 9.0 / 5.0 + 32.0 streamer.log ("temperatūra (C)", temp_c) streamer.log ("temperatūra (F)", temp_f) time.sleep (.5)

Turite įdėti pradinės būsenos prieigos raktą į 6 eilutę vietoj PUT_YOUR_ACCESS_KEY_HERE (nukopijuokite srautinio perdavimo raktą į iškarpinę iš „Mano paskyra“ir įklijuokite jį į terminalo „nano“kodą).

6 eilutė jūsų pradinės būsenos paskyroje sukurs grupę pavadinimu „Temperatūros srautas“(darant prielaidą, kad šioje toje eilutėje teisingai nurodėte savo prieigos raktą). Šio scenarijaus 8–30 eilutės tiesiog sąveikauja su DS18B20 jutikliu, kad nuskaitytų jo temperatūrą iš anksčiau aptarto „w1_slave“failo. Funkcija read_temp_raw () 15 eilutėje nuskaito neapdorotą „w1_slave“failą. Funkcija read_temp () 21 eilutėje analizuoja šio failo temperatūrą. 34 eilutė iškviečia šias funkcijas, kad gautų esamą temperatūrą. 35 eilutė paverčia temperatūrą iš Celsijaus į Farenheitą. 35 ir 36 eilutės perduoda temperatūrą į pradinę būsenos sąskaitą. 37 eilutė sustabdo scenarijų 0,5 sekundės, nustatydama, kaip dažnai temperatūros jutiklis bus skaitomas ir transliuojamas.

Esame pasirengę pradėti transliaciją. Vykdykite šią komandą:

$ sudo python temperatūra.py

Grįžkite į savo pradinės būsenos paskyrą žiniatinklio naršyklėje ir suraskite naują duomenų grupę, pavadintą „Temperature Stream“. Turėtumėte tiesiogiai matyti srautą apie temperatūrą. Keiskite jutiklio temperatūrą, laikydami jį rankoje arba įdėdami į stiklinę ledo.

Dabar turėsite siųsti duomenis į pradinės būsenos prietaisų skydelį. Norėdami sužinoti, kaip tinkinti prietaisų skydelį, eikite į paskutinį šio straipsnio skyrių.

7 žingsnis: BME280 sprendimas

Norėdami sukurti šį sprendimą, jums reikės šių dalykų:

-BME280 slėgio, temperatūros ir drėgmės jutiklis

Šis jutiklis yra su kaiščiais, kuriuos turėsite lituoti ant jutiklio. Norėdami palengvinti litavimą, rekomenduoju naudoti duonos lentą su smeigtukais ilga puse žemyn. Kai tai atliksite, turime prijungti jutiklį prie „Pi“.

Prijunkite jutiklio VIN kaištį prie „3.3“1 kaiščio „Pi“. Prijunkite jutiklio GND kaištį prie Pi įžeminimo kaiščio 6. Prijunkite jutiklio SCK kaištį prie 5 SCL kaiščio ant Pi. Prijunkite jutiklio SDI kaištį prie „Pi“3 SDA kaiščio. Šiam sprendimui turėsite naudoti „Python 3“ir įdiegti „Initial State Streamer“modulį naudodami „pip3“diegimo metodą.

Taip pat turėsite įdiegti kelias „Adafruit Python“bibliotekas.

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

Norėdami naudoti jutiklį, turime įgalinti I2C „Pi“.

sudo raspi-config

Tai atvers „Raspberry Pi“programinės įrangos konfigūravimo įrankį. Eikite į 5 parinktį Sąsajos parinktys. Iš čia eikite į I2C. Jis paprašys jūsų paklausti, ar norite įjungti I2C, pasirinkite Taip ir Baigti. Dabar įjungtas I2C ryšys su jutikliu.

Mes galime tai patikrinti atlikdami šiuos veiksmus:

sudo i2cdetect -y 1

Tai patikrins, ar jūsų Pi mato jutiklį. Taip, kaip jis yra prijungtas, jis turėtų parodyti jutiklį adresu 77. Jei nerandate jutiklio, iš naujo paleiskite „Pi“, iš naujo įjunkite „Pi“I2C sąsajos parinktį ir bandykite dar kartą. Kai jūsų jutiklis bus aptiktas, laikas paleisti pagrindinį kodą, kuris siunčia duomenis į pradinę būseną. Sukūrė failą pavadinimu bme280sensor.py su komanda nano. Nukopijuokite ir įklijuokite kodą iš esmės į teksto rengyklę. Turėsite pakeisti 12–19 eilutes.

importo laikas

importuoti lentą importuoti autobusą importuoti adafruit_bme280 iš ISStreamer. Streamer import Streamer # Sukurkite bibliotekos objektą naudodami mūsų autobusą I2C porti2c = busio. I2C (board. SCL, board. SDA) bme280 = adafruit_bme280. Adafruit_BME280_I2C (i2c) # ------- -Vartotojo nustatymai --------- SENSOR_LOCATION_NAME = "Biuras" BUCKET_NAME = ": iš dalies_sunny: Kambario temperatūra" BUCKET_KEY = "temp1" ACCESS_KEY = "JŪSŲ PRIEIGOS RAKTAS ČIA" # pakeiskite tai, kad atitiktų vietos slėgį (hPa) jūros lygyje bme280.sea_level_pressure = 1013,25 MINUTES_BETWEEN_READS = 10 METRIC_UNITS = Netiesa # --------------------------------- # ARBA sukurkite bibliotekos objektą naudodami mūsų autobusų SPI prievadą #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), o tiesa: drėgmė = formatas (bme280.humidity, ".1f") pressure = format (bme280.pressure, ".1f") temp_c = bme280.temperatu re if METRIC_UNITS: streamer.log (SENSOR_LOCATION_NAME + "Temperatūra (C)", temp_c) else: temp_f = format (temp_c * 9.0 / 5.0 + 32.0, ".1f") streamer.log (SENSOR_LOCATION_NAME + "Temperatūra (F)", temp_f) streamer.log (SENSOR_LOCATION_NAME + „Drėgmė (%)“, drėgmė) streamer.log (SENSOR_LOCATION_NAME + „Slėgis (hPA)“, slėgis) streamer.flush () time.sleep (60*MINUTES_BETWEEN_READS)

  • 12 eilutė- ši vertė turi būti unikali kiekvienam mazgui/temperatūros jutikliui. Tai gali būti jūsų jutiklio mazgo kambario pavadinimas, fizinė vieta, unikalus identifikatorius ar bet kas kitas. Tiesiog įsitikinkite, kad kiekvienas mazgas yra unikalus, kad užtikrintumėte, jog duomenys iš šio mazgo patenka į jo duomenų srautą jūsų prietaisų skydelyje.
  • 13 eilutė- tai duomenų segmento pavadinimas. Tai bet kada galima pakeisti pradinės būsenos vartotojo sąsajoje.
  • 14 eilutė- tai jūsų kibiro raktas. Tai turi būti tas pats segmento raktas kiekvienam mazgui, kurį norite rodyti toje pačioje prietaisų skydelyje.
  • 15 eilutė- tai jūsų pradinės būsenos paskyros prieigos raktas. Nukopijuokite ir įklijuokite šį raktą iš savo pradinės būsenos paskyros.
  • 17 eilutė- tai jūsų vietos slėgis (hPa) jūros lygyje. Šią informaciją galite rasti daugumoje orų svetainių.
  • 18 eilutė - tai laikas tarp jutiklių nuskaitymų. Atitinkamai keiskite. 19 eilutė- čia galite nurodyti metrinius arba imperinius vienetus.

Nustatę 12–19 eilutes „Python“scenarijuje „Pi Zero WH“, išsaugokite ir išeikite iš teksto rengyklės. Paleiskite scenarijų naudodami šią komandą:

$ python3 bme280sensor.py

Dabar turėsite siųsti duomenis į pradinės būsenos prietaisų skydelį. Norėdami sužinoti, kaip tinkinti prietaisų skydelį, eikite į paskutinį šio straipsnio skyrių.

8 žingsnis: pajuskite skrybėlę

Sense HAT
Sense HAT
Sense HAT
Sense HAT

Pirmasis žingsnis naudojant „Sense HAT“yra fiziškai įdiegti jį į „Pi“. Išjungę „Pi“, pritvirtinkite skrybėlę, kaip parodyta paveikslėlyje.

Jei nuspręsite naudoti tirpalą, kaip parodyta aukščiau, galite pastebėti, kad jūsų „Sense HAT“temperatūros rodmenys bus šiek tiek aukšti - taip yra todėl. Kaltininkas yra šiluma, susidaranti dėl „Pi“procesoriaus, kaitinant orą aplink „Sense HAT“, kai jis sėdi ant „Pi“. Kad temperatūros jutiklis būtų naudingas, turime arba atitraukti HAT nuo „Pi“, arba pabandyti sukalibruoti temperatūros jutiklio rodmenis. Geras sprendimas, kaip jutiklį atitraukti nuo „Pi“, yra kabelis, leidžiantis „Sense HAT“pakabinti nuo „Pi“. 6 colių, 40 kontaktų IDE patelės ir ilgintuvo laidas, kuris padės jums tai padaryti.

Kai nuspręsite dėl dviejų variantų, įjunkite „Pi“. Turime įdiegti „Python“biblioteką, kad būtų lengva nuskaityti jutiklio vertes iš „Sense HAT“. Pirmiausia turite įsitikinti, kad viskas yra atnaujinta jūsų „Raspbian“versijoje:

$ sudo apt-get atnaujinimas

Tada įdiekite „Sense HAT Python“biblioteką:

$ sudo apt-get install sense-hat

Perkraukite „Pi“. Esame pasirengę išbandyti „Sense HAT“skaitydami iš jo jutiklių duomenis ir siunčiant juos į pradinę būseną.

Sukurkite failą, pavadintą sensehat, ir atidarykite jį teksto rengyklėje, komandų eilutėje įvesdami toliau nurodytą informaciją:

$ nano sensehat.py

Nukopijuokite ir įklijuokite žemiau esantį kodą teksto rengyklėje.

iš sense_hat importo „SenseHat“

importo laiko importavimo sistema iš ISStreamer. Streamer importas Streamer # --------- Vartotojo nustatymai --------- BUCKET_NAME = "Office Weather" BUCKET_KEY = "sensehat" ACCESS_KEY = "Your_Access_Key" SENSOR_LOCATION_NAME = " Biuras „MINUTES_BETWEEN_SENSEHAT_READS = 0.1 # --------------------------------- streamer = Streamer (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY), access_key = ACCESS_KEY) sense = SenseHat () o tiesa: # Skaitykite jutiklius temp_c = sense.get_temperature () drėgmė = sense.get_humidity () pressure_mb = sense.get_pressure () # Formatuokite duomenis temp_f = temp_c * 9.0 / 5.0 + 32.0 temp_f = plūdė ("{0:.2f}". Formatas (temp_f)) drėgmė = plūdė ("{0:.2f}". Formatas (drėgmė)) pressure_in = 0,03937008*(pressure_mb) pressure_in = float ("{ 0:.2f} ". Formatas (spaudimas) Slėgis (IN): " + str (pressure_in) streamer.log (": saulėta: " + SEN SOR_LOCATION_NAME + "Temperatūra (F)", temp_f) streamer.log (": swe_drops:" + SENSOR_LOCATION_NAME + "Drėgmė (%)", drėgmė) streamer.log (": cloud:" + SENSOR_LOCATION_NAME + "Slėgis (IN)", pressure_in) streamer.flush () time.sleep (60*MINUTES_BETWEEN_SENSEHAT_READS)

Pirmoje eilutėje atkreipkite dėmesį, kad į scenarijų importuojame „SenseHat“biblioteką. Prieš paleisdami šį scenarijų, turime nustatyti vartotojo parametrus.

# --------- Vartotojo nustatymai ---------

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

Tiksliau, turite nustatyti savo ACCESS_KEY į pradinės būsenos paskyros prieigos raktą. Galite pakeisti BUCKET_NAME ir SENSOR_LOCATION_NAME į tikrąją jutiklio vietą. Išsaugokite ir išeikite iš teksto rengyklės.

„Pi“komandų eilutėje paleiskite scenarijų:

$ sudo python sensehat.py

Dabar turėsite siųsti duomenis į pradinės būsenos prietaisų skydelį. Norėdami sužinoti, kaip tinkinti prietaisų skydelį, eikite į paskutinį šio straipsnio skyrių.

9 veiksmas: tinkinkite pradinės būsenos prietaisų skydelį

Tinkinkite pradinės būsenos prietaisų skydelį
Tinkinkite pradinės būsenos prietaisų skydelį

Eikite į savo pradinės būsenos paskyrą ir peržiūrėkite savo duomenis. Galite dešiniuoju pelės klavišu spustelėti plytelę, kad pakeistumėte diagramos tipą, ir spustelėkite Redaguoti plyteles, kad pakeistumėte plytelių dydį ir jas perkeltumėte. Aš rekomenduočiau naudoti temperatūros matuoklį, o drėgmei - skysčio lygį. Galite sukurti linijines diagramas tiek temperatūrai, tiek drėgmei, kad matytumėte pokyčius laikui bėgant. Prie prietaisų skydelio taip pat galite pridėti fono paveikslėlį.

Galite nustatyti įspėjimus apie trigerį, kad gautumėte SMS ar el. Laišką, jei temperatūra nukris žemiau arba viršys tam tikrą slenkstį. Eikite į savo duomenų grupę ir spustelėkite nustatymus. Iš ten eikite į skirtuką Trigeriai. Įveskite srauto raktą, kurį norite stebėti, operatorių, kurį norite naudoti, ir slenkstinę vertę. Spustelėkite pliuso ženklą, kad pridėtumėte trigerį. Tada įvesite savo el. Pašto adresą arba telefono numerį, kad gautumėte įspėjimą, ir spustelėkite pliuso ženklą. Nustatę visus trigerius, apačioje spustelėkite mygtuką Atlikta.

Dabar, kai sukūrėte temperatūros monitorių, naudodami temperatūros jutiklį ir „Raspberry Pi“, galite pradėti galvoti, kokius kitus aplinkos duomenis galite stebėti toliau.

Rekomenduojamas: