Sisukord:

Ilmajaam Raspberry Pi abil koos BME280 -ga Pythonis: 6 sammu
Ilmajaam Raspberry Pi abil koos BME280 -ga Pythonis: 6 sammu

Video: Ilmajaam Raspberry Pi abil koos BME280 -ga Pythonis: 6 sammu

Video: Ilmajaam Raspberry Pi abil koos BME280 -ga Pythonis: 6 sammu
Video: Arduino Nano, BME280 и SSD1306 OLED-метеостанция 2024, Juuli
Anonim
Image
Image
Imperatiivne seadmete eelnõu
Imperatiivne seadmete eelnõu

on stseen ja eesmärk (ilm on hea jutuvestja)

Globaalse soojenemise ja kliimamuutustega seotud probleemide tõttu muutub ülemaailmne ilmastikuolud kogu maailmas ebastabiilseks, põhjustades mitmeid ilmastikuga seotud loodusõnnetusi (põud, äärmuslikud temperatuurid, üleujutused, tormid ja metsatulekahjud), ilmateade tundub olevat vajalik kuri kodus. Õpid ilmajaama projektist palju põhielektroonika kohta, kasutades hunnikut odavaid osi ja andureid. Seadistamine on üsna lihtne ja saate selle kiiresti kätte.

1. samm: Imperatiivse varustuse arve

Imperatiivne seadmete eelnõu
Imperatiivne seadmete eelnõu
Imperatiivne seadmete eelnõu
Imperatiivne seadmete eelnõu
Imperatiivne seadmete eelnõu
Imperatiivne seadmete eelnõu

1. Vaarika Pi

Võtke oma käed Raspberry Pi tahvlile. Raspberry Pi on Linuxi toitega üheplaadiline arvuti. Raspberry Pi on tõesti odav, pisike ja mitmekülgne, juurdepääsetavast ja funktsionaalsest arvutist ehitatud, et õppijad saaksid programmeerimise ja tarkvaraarenduse põhitõdesid kasutada.

2. I2C kilp Raspberry Pi jaoks

INPI2 (I2C adapter) pakub Raspberry Pi 2/3 an I²C porti kasutamiseks mitme I2C seadmega. See on saadaval DCUBE poes.

3. Digitaalne niiskus-, rõhu- ja temperatuuriandur, BME280

BME280 on niiskus-, rõhu- ja temperatuuriandur, millel on kiire reageerimisaeg ja kõrge üldine täpsus. Ostsime selle anduri DCUBE poest.

4. I2C ühenduskaabel

Kasutasime I²C kaablit, mis on saadaval siin DCUBE Store'is.

5. Mikro -USB -kaabel

Mikro -USB -kaabel Toiteallikas on ideaalne valik Raspberry Pi toiteks.

6. Interneti -ühenduse tõlgendamine Etherneti kaabli/WiFi -adapteri kaudu

Interneti -ühenduse saab lubada Etherneti kaabli kaudu, mis on ühendatud kohaliku võrgu ja Internetiga. Teise võimalusena saate ühenduse luua traadita võrguga, kasutades USB -traadita donglit, mis nõuab konfigureerimist.

7. HDMI -kaabel (kuva- ja ühenduskaabel)

Kõik HDMI/DVI monitorid ja telerid peaksid Pi ekraanina töötama. Teise võimalusena saate Pi -le kaugjuurdepääsu SSH kaudu, ilma et oleks vaja monitori (ainult kogenud kasutajad).

Samm: riistvara ühendused vooluringi jaoks

Riistvaraühendused vooluringi jaoks
Riistvaraühendused vooluringi jaoks
Riistvaraühendused vooluringi jaoks
Riistvaraühendused vooluringi jaoks

Tehke skeem vastavalt näidatud skeemile. Üldiselt on ühendused väga lihtsad. Olge rahulik ja järgige ülaltoodud juhiseid ja pilte ning probleeme ei tohiks tekkida. Õppides õppisime põhjalikult elektroonika põhitõdesid riist- ja tarkvara tundma. Tahtsime selle projekti jaoks koostada lihtsa elektroonika skeemi. Elektroonilised skeemid on nagu joonised. Koostage plaan ja järgige hoolikalt disaini. Siin võivad olla kasulikud mõned elektroonika põhimõisted!

Raspberry Pi ja I2C Shield ühendus

Kõigepealt võtke Raspberry Pi ja asetage sellele I²C kilp. Vajutage õrnalt kilpi ja oleme selle sammuga sama lihtne kui pirukas (vt pilti).

Anduri ja Raspberry Pi ühendamine

Võtke andur ja ühendage sellega I²C kaabel. Veenduge, et I²C väljund ühendaks ALATI I²C sisendiga. Sama tuleb järgida ka Raspberry Pi puhul, mille külge on paigaldatud GP² tihvtid I²C kilbiga. Soovitame kasutada I²C kaableid, kuna see välistab vajaduse lugeda pisaraid, jootmist ja halba enesetunnet, mis on põhjustatud isegi väikseimast libisemisest. Selle lihtsa plug and play kaabli abil saate hõlpsalt paigaldada, vahetada plaate või lisada rakendusele rohkem tahvleid.

Märkus. Pruun juhe peaks alati järgima maandusühendust (GND) ühe seadme väljundi ja teise seadme sisendi vahel

Interneti -ühendus on võti

Siin on teil kaks valikut. Kas saate Raspberry Pi võrguga ühendada Etherneti kaabli abil või kasutada WIFI -ühenduse jaoks USB -WiFi -adapterit. Mõlemal juhul, kui see on Internetiga ühendatud, olete kaetud.

Ahela sisselülitamine

Ühendage mikro -USB -kaabel Raspberry Pi pistikupessa. Löö üles ja voila! Meie meeskond on teave.

Ühendus ekraaniga

HDMI -kaabel võib olla ühendatud monitoriga või teleriga. Lisaks saame Raspberry Pi -le juurde pääseda ilma seda kaugjuurdepääsu abil monitoriga ühendamata. SSH on mugav tööriist turvaliseks kaugjuurdepääsuks. Selleks saate kasutada ka tarkvara PUTTY. See valik on mõeldud kogenud kasutajatele, nii et me ei käsitle seda siin üksikasjalikult.

See on ökonoomne meetod, kui te ei soovi palju kulutada

Samm: Raspberry Pi programmeerimine Pythonis

Raspberry Pi programmeerimine Pythonis
Raspberry Pi programmeerimine Pythonis

Raspberry Pi ja BME280 anduri Pythoni kood. See on saadaval meie Githubi hoidlas.

Enne koodi juurde asumist lugege kindlasti läbi lugemisfailis antud juhised ja seadistage oma Raspberry Pi vastavalt sellele. Vaid natuke aega valmistab teid seadistamiseks ette. Ilmajaam on rajatis nii maal kui ka merel, kus on instrumendid ja seadmed atmosfääritingimuste mõõtmiseks, et saada teavet ilmateadete kohta ning uurida ilmateadet ja kliimat.

Kood on selgelt teie ees ja see on kõige lihtsamal kujul, mida võite ette kujutada, ja teil ei tohiks probleeme olla. Küsige ikka, kas üldse (isegi kui teate tuhat asja, küsige ikka kelleltki, kes teab).

Siit saate kopeerida ka selle anduri töötava Pythoni koodi.

# Levitatakse vabatahtliku litsentsiga.# Kasutage seda nii, nagu soovite, kasumit teenides või tasuta, kui see sobib sellega seotud teoste litsentsidega. # BME280 # See kood on loodud töötama koos BME280_I2CS I2C minimooduliga, mis on saadaval saidil ControlEverything.com. #

import smbus

impordi aeg

# Hankige I2C buss

buss = smbus. SMBus (1)

# BME280 aadress, 0x76 (118)

# Loe andmeid tagasi 0x88 (136), 24 baiti b1 = bus.read_i2c_block_data (0x76, 0x88, 24)

# Teisendage andmed

# Tempikoefitsiendid dig_T1 = b1 [1] * 256 + b1 [0] dig_T2 = b1 [3] * 256 + b1 [2] kui dig_T2> 32767: dig_T2 -= 65536 dig_T3 = b1 [5] * 256 + b1 [4] kui dig_T3> 32767: dig_T3 -= 65536

# Rõhu koefitsiendid

dig_P1 = b1 [7] * 256 + b1 [6] dig_P2 = b1 [9] * 256 + b1 [8] kui dig_P2> 32767: dig_P2 -= 65536 dig_P3 = b1 [11] * 256 + b1 [10] kui dig_P3 > 32767: dig_P3 -= 65536 dig_P4 = b1 [13] * 256 + b1 [12] kui dig_P4> 32767: dig_P4 -= 65536 dig_P5 = b1 [15] * 256 + b1 [14], kui dig_P5> 32767: dig_P5 -= 65536 dig_P6 = b1 [17] * 256 + b1 [16] kui dig_P6> 32767: dig_P6 -= 65536 dig_P7 = b1 [19] * 256 + b1 [18] kui dig_P7> 32767: dig_P7 -= 65536 dig_P8 = b1 [21] * 256 + b1 [20] kui dig_P8> 32767: dig_P8 -= 65536 dig_P9 = b1 [23] * 256 + b1 [22] kui dig_P9> 32767: dig_P9 -= 65536

# BME280 aadress, 0x76 (118)

# Lugege andmeid tagasi 0xA1 (161), 1 bait dig_H1 = bus.read_byte_data (0x76, 0xA1)

# BME280 aadress, 0x76 (118)

# Loe andmeid tagasi 0xE1 (225), 7 baiti b1 = bus.read_i2c_block_data (0x76, 0xE1, 7)

# Teisendage andmed

# Niiskuskoefitsiendid dig_H2 = b1 [1] * 256 + b1 [0] kui dig_H2> 32767: dig_H2 -= 65536 dig_H3 = (b1 [2] & 0xFF) dig_H4 = (b1 [3] * 16) + (b1 [4] & 0xF) kui dig_H4> 32767: dig_H4 -= 65536 dig_H5 = (b1 [4] / 16) + (b1 [5] * 16) kui dig_H5> 32767: dig_H5 -= 65536 dig_H6 = b1 [6] kui dig_H6> 127: dig_H6 -= 256

# BME280 aadress, 0x76 (118)

# Valige kontrollniiskuse register, 0xF2 (242) # 0x01 (01) Niiskuse üleproovide võtmine = 1 bus.write_byte_data (0x76, 0xF2, 0x01) # BME280 aadress, 0x76 (118) # Valige kontrollmõõtmise register, 0xF4 (244) # 0x27 (39) Rõhu ja temperatuuri üleproovide võtmise sagedus = 1 # Normaalrežiimi siin.write_byte_data (0x76, 0xF4, 0x27) # BME280 aadress, 0x76 (118) # Valige konfiguratsiooniregister, 0xF5 (245) # 0xA0 (00) Ooterežiimi aeg = 1000 ms buss.write_byte_data (0x76, 0xF5, 0xA0)

aeg. uni (0,5)

# BME280 aadress, 0x76 (118)

# Andmete lugemine 0xF7 (247), 8 baiti

# Teisendage rõhu ja temperatuuri andmed 19-bitisteks

adc_p = ((andmed [0] * 65536) + (andmed [1] * 256) + (andmed [2] ja 0xF0)) / 16 adc_t = ((andmed [3] * 65536) + (andmed [4] * 256) + (andmed [5] ja 0xF0)) / 16

# Teisendage niiskuse andmed

adc_h = andmed [6] * 256 + andmed [7]

# Temperatuuri nihke arvutused

var1 = (((adc_t) / 16384.0 - (dig_T1) / 1024.0) * (dig_T2) var2 = ((((adc_t) / 131072.0 - (dig_T1) / 8192.0) * ((adc_t) /131072.0 - (dig_T1) / 8192.0)) * (dig_T3) t_fine = (var1 + var2) cTemp = (var1 + var2) / 5120,0 fTemp = cTemp * 1,8 + 32

# Rõhu nihke arvutused

var1 = (t_fine / 2.0) - 64000.0 var2 = var1 * var1 * (dig_P6) / 32768.0 var2 = var2 + var1 * (dig_P5) * 2.0 var2 = (var2 / 4.0) + ((dig_P4) * 65536.0) var1 = (((dig_P3) * var1 * var1 / 524288.0 + (dig_P2) * var1) / 524288.0 var1 = (1.0 + var1 / 32768.0) * (dig_P1) p = 1048576.0 - adc_p p = (p - (var2 / 4096.0)) * 6250.0 / var1 var1 = (dig_P9) * p * p / 2147483648.0 var2 = p * (dig_P8) / 32768.0 rõhk = (p + (var1 + var2 + (dig_P7)) / 16.0) / 100

# Niiskuse nihke arvutused

var_H = {)) niiskus = var_H * (1,0 - dig_H1 * var_H / 524288.0) kui niiskus> 100.0: niiskus = 100.0 elif niiskus <0.0: niiskus = 0.0

# Väljastage andmed ekraanile

print "Temperatuur Celsiuse järgi: %.2f C" %cTempprint "Temperatuur Fahrenheiti järgi: %.2f F" %fTempprint "Rõhk: %.2f hPa" %rõhutrükk "Suhteline õhuniiskus: %.2f %%" %niiskus

4. samm: käitamise kood

Jooksmise kood
Jooksmise kood

Nüüd laadige kood alla (või tõmmake see alla) ja avage see Raspberry Pi -s.

Käivitage terminali koodi kompileerimise ja üleslaadimise käsud ning vaadake väljundit ekraanil. Mõne sekundi pärast kuvatakse kõik parameetrid. Kui olete veendunud, et kõik töötab suurepäraselt, saate välja töötada mõned huvitavamad.

Samm: kasutamine praktilises maailmas

BME280 saavutab suure jõudluse kõikides niiskuse ja rõhu mõõtmist nõudvates rakendustes. Need uued rakendused on kontekstiteadlikkus, nt. Naha tuvastamine, ruumivahetuse tuvastamine, sobivuse jälgimine / heaolu, hoiatus kuivuse või kõrge temperatuuri kohta, mahu ja õhuvoolu mõõtmine, koduautomaatika juhtimine, juhtküte, ventilatsioon, kliimaseade (HVAC), asjade internet (IoT), GPS-i täiustamine (nt esimese parandusaja parandamine, surnud arvestus, kallakutuvastus), siseruumides navigeerimine (põranda tuvastamise muutmine, lifti tuvastamine), väljas navigeerimine, vaba aja ja spordirakendused, ilmaprognoos ja vertikaalse kiiruse näit (tõus/vajumine) Kiirus).

6. samm: järeldus

Loodetavasti inspireerib see projekt edasisi katsetusi. Keerukama ilmajaama tegemine võib hõlmata veel mõningaid andureid, nagu vihmamõõtur, valgusandur, anemomeeter (tuule kiirus) jne. Saate need lisada ja koodi muuta. Meil on YouTube'is videoõpetus, millel on Rasp Pi -ga I²C anduri põhifunktsioon. On tõesti hämmastav näha I²C kommunikatsiooni tulemusi ja toimimist. Kontrollige seda ka. Lõbutsege ehitades ja õppides! Palun andke meile teada, mida te sellest juhendatavast arvate. Vajadusel sooviksime mõningaid parandusi teha.

Soovitan: