- Darbas ir „ThingSpeak“ sąranka:
- Grandinės schema:
- „Raspberry Pi“ konfigūracija ir „Python“ programa:
Drėgmė, temperatūra ir slėgis yra trys pagrindiniai parametrai, skirti pastatyti bet kurią meteorologinę stotį ir išmatuoti aplinkos sąlygas. Anksčiau mes pastatėme mini meteorologinę stotį naudodami „Arduino“ ir šį kartą mes pratęsėme meteorologijos stotį su „Raspberry Pi“. Šiuo daiktų interneto projektu siekiama parodyti dabartinius drėgmės, temperatūros ir slėgio parametrus LCD ekrane, taip pat interneto serveryje, naudojant „Raspberry Pi“, todėl ji yra „ Raspberry Pi“ meteorologinė stotis. Šią sąranką galite įdiegti bet kur ir internete galite stebėti tos vietos oro sąlygas iš bet kurios pasaulio vietos. Ji ne tik parodys dabartinius duomenis, bet ir gali parodyti praeities vertes grafikų pavidalu.
Temperatūros jutimui naudojome DHT11 drėgmės ir temperatūros jutiklį, o barometriniam slėgiui matuoti - BM180 slėgio jutiklio modulį. Šis Celsijaus skalės termometras ir procentinė skalės drėgmės matuoklis per LCD ekraną rodo aplinkos temperatūrą ir drėgmę, o barometrinis slėgis rodomas milibarais arba hPa (hektopaskaliais). Visi šie duomenys per internetą siunčiami į „ ThingSpeak“ serverį tiesioginiam stebėjimui iš bet kurios pasaulio vietos. Patikrinkite demonstracinio vaizdo įrašo ir „Python“ programą, pateiktą šios pamokos pabaigoje.
Darbas ir „ThingSpeak“ sąranka:
Šis DI pagrįstas projektas turi keturis skyrius. Pirmiausia DHT11 jutiklis nustato drėgmės ir temperatūros duomenis, o BM180 jutiklis matuoja atmosferos slėgį. Antra, „ Raspberry Pi“ nuskaito DHT11 jutiklio modulio išvestį naudodamas vieno laido protokolą ir BM180 slėgio jutiklio išvestį naudodamas I2C protokolą ir išskiria abi jutiklių vertes į tinkamą skaičių procentais (drėgmė), Celsijaus skalė (temperatūra), hektoPascal arba milibaras (slėgis). Trečia, šios vertės siunčiamos į „ThingSpeak“ serverį naudojant integruotą „ Raspberry Pi 3“ „ Wi-Fi“. Galiausiai „ ThingSpeak“ analizuoja duomenis ir rodo juos „Graph“ forma. LCD taip pat naudojamas šioms vertėms rodyti vietoje.
„ThingSpeak“ yra labai gera priemonė, pagrįsta daiktų interneto projektais. Naudodamiesi „ThingSpeak“ svetaine, mes galime stebėti savo duomenis ir valdyti savo sistemą internete, naudodami „ThingSpeak“ pateiktus kanalus ir tinklalapius. „ThingSpeak “ renka duomenis iš jutiklių, „analizuoja ir vizualizuoja“ duomenis ir „veiksmus“, sukeldamas reakciją. Anksčiau mes išsamiai paaiškinome apie duomenų siuntimą „ThingSpeak“, galite tai patikrinti. Čia mes trumpai paaiškiname, kaip naudoti „ThingSpeak“ šiai „Raspberry Pi“ meteorologinei stočiai.
Pirmiausia turite susikurti paskyrą „ThingSpeak“ svetainėje ir joje sukurti „naują kanalą“. Naujame kanale turite apibrėžti keletą laukų duomenims, kuriuos norite stebėti, pvz., Šiame projekte sukursime tris drėgmės, temperatūros ir slėgio duomenų laukus.
Dabar spustelėkite „API raktų“ skirtuką ir išsaugokite „Write and Read“ API raktus, čia mes naudojame tik „Write key“. Turite nukopijuoti šį raktą į kodo kintamąjį.
Po to spustelėkite „Duomenų importavimas / eksportavimas“ ir nukopijuokite naujinimo kanalo sklaidos kanalo GET užklausos URL, kuris yra:
api.thingspeak.com/update?api_key=30BCDSRQ52AOI3UA&field1=0
Dabar mums reikia šio „Feed Get Request URL“ mūsų „Python“ kode, kad atidarytume „api.thingspeak.com“, o tada siųskite duomenis naudodami šią užklausos kanalą kaip užklausos eilutę. Prieš siunčiant duomenis, vartotojas turi įvesti temperatūros, drėgmės ir slėgio duomenis šioje užklausoje. Eilutė, naudodama kintamuosius programoje, patikrinkite šio straipsnio pabaigoje pateiktą kodą.
URL = 'https://api.thingspeak.com/update?api_key=%s'% key finalURL = URL + "& laukas1 =% s & laukas2 =% s"% (humi, temp) + "& laukas3 =% s"% (slėgis)
DHT11 darbas yra pagrįstas viengubu nuosekliu ryšiu, norint gauti duomenis iš DHT11. Čia mes naudojome „ AdaFruit DHT11“ biblioteką, kad susietume DHT11 su „Raspberry Pi“. „Raspberry Pi“ čia renka drėgmės ir temperatūros duomenis iš DHT11 ir atmosferos slėgį iš BMP180 jutiklio ir tada siunčia juos į 16x2 LCD ir „ThingSpeak“ serverį. „ThingSpeak“ rodo duomenis grafiko pavidalu, kaip nurodyta toliau:
Čia galite sužinoti daugiau apie DHT11 jutiklį ir jo sąsają su „Arduino“.
Grandinės schema:
„Raspberry Pi“ konfigūracija ir „Python“ programa:
Programai čia naudojame Python kalbą. Prieš koduodamas vartotojas turi sukonfigūruoti „Raspberry Pi“. Galite patikrinti ankstesnes „Raspberry Pi“ darbo pradžios ir „Raspbian Jessie OS“ diegimo ir konfigūravimo „Pi“ instrukcijas.
Pirmiausia turime įdiegti „Adafruit Python DHT Sensor Library“ failus, kad galėtume vykdyti šį projektą „Raspberry Pi“. Norėdami tai padaryti, turime vykdyti nurodytas komandas:
sudo apt-get install git-core sudo apt-get update git clone https://github.com/adafruit/Adafruit_Python_DHT.git cd Adafruit_Python_DHT sudo apt-get install build-essential python-dev sudo python setup.py install
Po to vartotojas turi įjungti „Raspberry Pi I2C“, eidamas per „RPi“ programinės įrangos konfigūraciją:
sudo raspi-config
Tada eikite į „Išankstinės parinktys“, pasirinkite „I2C“ ir „Įgalinti“.
Programinė šio projekto dalis vaidina labai svarbų vaidmenį atliekant visas operacijas. Pirmiausia įtraukiame visas reikalingas bibliotekas, inicijuojame kintamuosius ir nustatome LCD ir DHT11 kaiščius.
importuoti sys importuoti RPi.GPIO kaip GPIO importuoti OS importuoti „Adafruit_DHT“ importuoti „urllib2“ importuoti „smbus“ importavimo laiką iš ctypes importo c_short #Registruoti adresą regCall = 0xAA……………..
Be def main (): funkcija, code yra naudojamas siųsti duomenis į serverį ir rodyti jį per LCD, nuolat , o kilpa.
def main (): spausdinti „Parengta sistemai…“ URL = 'https://api.thingspeak.com/update?api_key=%s'% key print "Wait…." while True: (humi, temp) = readDHT () (slėgis) = readBmp180 () lcdcmd (0x01) lcdstring ("Humi # Temp # P (hPa)") lcdstring (humi + '%' + "% sC% s"% (temp, slėgis)) finalURL = URL + "& laukas1 =% s & laukas2 =% s"% (humi, temp) + "& laukas3 =% s"% (slėgis) spausdinimo galutinisURL s = urllib2.urlopen (finalURL); spausdinti humi + "" + temp + "" + slėgis s.close () time.sleep (10)
Skystųjų kristalų ekrane funkcija def lcd_init () naudojama norint inicializuoti LCD keturių bitų režimu, def lcdcmd (ch) funkcija naudojama komandai siųsti į LCD, def lcddata (ch) funkcija naudojama duomenims siųsti į LCD ir def lcdstring (Str ) funkcija naudojama duomenų eilutėms siųsti į LCD. Visas šias funkcijas galite patikrinti vėliau pateiktame kode.
DHT11 jutiklio skaitymui naudojama duota def readDHT () funkcija:
def readDHT (): humi, temp = Adafruit_DHT.read_retry (Adafruit_DHT.DHT11, DHTpin) return (str (int (humi)), str (int (temp)))
def readBmp180 funkcija naudojama skaitant slėgį iš BM180 jutiklio. BM180 jutiklis taip pat gali suteikti temperatūrą, tačiau čia mes ją naudojome tik slėgiui apskaičiuoti.
def readBmp180 (addr = deviceAdd): reikšmė = autobusai. read_i2c_block_data (addr, regCall, 22) # Skaityti kalibravimo duomenis # Konvertuoti baitų duomenis į žodžio reikšmes AC1 = konvertuoti1 (reikšmė, 0) AC2 = konvertuoti1 (reikšmė, 2) AC3 = konvertuoti1 (reikšmė, 4) AC4 = konvertuoti2 (reikšmė, 6)……………………..
Taigi tai yra pagrindinė „ Raspberry Pi“ meteorologinė stotis, kurią galite dar išplėsti, kad matuotumėte įvairius su oru susijusius parametrus, tokius kaip vėjo greitis, dirvožemio temperatūra, apšvietimas (liuksai), krituliai, oro kokybė ir kt.