Kazalo:

Nadmorska višina, tlak in temperatura z uporabo Raspberry Pi z MPL3115A2: 6 korakov
Nadmorska višina, tlak in temperatura z uporabo Raspberry Pi z MPL3115A2: 6 korakov

Video: Nadmorska višina, tlak in temperatura z uporabo Raspberry Pi z MPL3115A2: 6 korakov

Video: Nadmorska višina, tlak in temperatura z uporabo Raspberry Pi z MPL3115A2: 6 korakov
Video: Высокая плотность 2022 2024, November
Anonim
Nadmorska višina, tlak in temperatura z uporabo Raspberry Pi z MPL3115A2
Nadmorska višina, tlak in temperatura z uporabo Raspberry Pi z MPL3115A2
Nadmorska višina, tlak in temperatura z uporabo Raspberry Pi z MPL3115A2
Nadmorska višina, tlak in temperatura z uporabo Raspberry Pi z MPL3115A2

Sliši se zanimivo. To je povsem mogoče v tem času, ko vsi prehajamo v generacijo IoT. Kot čudak z elektroniko smo se igrali z Raspberry Pi in se odločili, da bomo s tem znanjem naredili zanimive projekte. V tem projektu bomo z Raspberry Pi merili višino, zračni tlak, temperaturo. Torej gre tukaj dokumentacija (vedno se spreminja in širi). Priporočamo, da sledite navodilom in kopirate kodo. Kasneje lahko eksperimentirate. Pa začnimo.

1. korak: Nujna oprema, ki jo potrebujemo

Nujna oprema, ki jo potrebujemo
Nujna oprema, ki jo potrebujemo
Nujna oprema, ki jo potrebujemo
Nujna oprema, ki jo potrebujemo
Nujna oprema, ki jo potrebujemo
Nujna oprema, ki jo potrebujemo
Nujna oprema, ki jo potrebujemo
Nujna oprema, ki jo potrebujemo

1. Malina Pi

Prvi korak je bil pridobitev plošče Raspberry Pi. Mi smo kupili našega, vi pa tudi. Začeli smo se učiti iz vadnic, razumeli smo scenarije in koncepte povezovanja ter se kasneje naučili. Ta mali genij je običajen za ljubitelje, učitelje in ustvarjanje inovativnih okolij.

2. I²C ščit za Raspberry Pi

INPI2 (I2C adapter) ponuja vrata Raspberry Pi 2/3 in I²C za uporabo z več napravami I2C. Na voljo je v trgovini Dcube

3. Višinomer, senzor tlaka in temperature, MPL3115A2

MPL3115A2 je senzor tlaka MEMS z vmesnikom I²C, ki podaja podatke o tlaku/nadmorski višini in temperaturi. Ta senzor za komunikacijo uporablja protokol I²C. Ta senzor smo kupili v trgovini Dcube

4. Priključni kabel

V trgovini Dcube smo imeli na voljo priključni kabel I2C

5. Kabel mikro USB

Napajalni kabel mikro USB je idealna izbira za napajanje Raspberry Pi.

6. Izboljšanje dostopa do interneta - Ethernetni kabel/WiFi adapter

V tem obdobju za dostop do česar koli potrebujete internetno povezavo (skoraj tako kot obstaja tudi življenje brez povezave). Zato upoštevamo nasvet kabla LAN ali brezžičnega Nano USB adapterja (WiFi) za vzpostavitev internetne povezave, tako da lahko z lahkoto in brez težav uporabljamo naš Rasp Pi.

7. Kabel HDMI (neobvezno, vaša izbira)

To je nekoliko zapleteno. Če želite, ali če je to za vas zelo stroškovno učinkovito, lahko povežete drug monitor tako, da vzpostavite brezglavo povezavo Pi z računalnikom/prenosnikom.

2. korak: Strojne povezave za sestavljanje vezja

Strojne povezave za sestavljanje vezja
Strojne povezave za sestavljanje vezja
Strojne povezave za sestavljanje vezja
Strojne povezave za sestavljanje vezja

Naredite vezje po prikazani shemi. Na splošno so povezave zelo preproste. Sledite navodilom in slikam in ne bi smelo biti težav.

Med načrtovanjem smo preučili strojno opremo in kodiranje ter osnove elektronike. Za ta projekt smo želeli oblikovati preprosto shemo elektronike. Na diagramu lahko opazite različne dele, komponente napajanja in senzor I²C po komunikacijskih protokolih I²C. Upajmo, da to ponazarja, kako preprosta je elektronika za ta projekt.

Povezava Raspberry Pi in I2C Shield

Najprej vzemite Raspberry Pi in nanj položite I²C ščit. Nežno pritisnite ščit (glejte sliko).

Povezava senzorja in Raspberry Pi

Vzemite senzor in z njim povežite kabel I²C. Prepričajte se, da je izhod I²C VEDNO povezan z vhodom I²C. Enako sledi Raspberry Pi z nameščenim I²C ščitom. I²C Shield in I²C povezovalni kabli sta na naši strani kot zelo velika prednost, saj nam preostane samo možnost plug and play. Ni več težav z zatiči in ožičenjem, zato zmede ni več. Kakšno olajšanje, ko si samo predstavljate sebe v spletu žic in vstopite v to. Preprost postopek, ki smo ga omenili.

Opomba: Rjava žica mora vedno slediti ozemljitveni (GND) povezavi med izhodom ene naprave in vhodom druge naprave

Internetna povezava je ključnega pomena

Tu imaš pravzaprav izbiro. Raspberry Pi lahko povežete s kablom LAN ali brezžičnim Nano USB vmesnikom za povezljivost WiFi. Kakor koli že, glavni cilj je bil povezati se z internetom.

Napajanje vezja

Priključite kabel Micro USB v vtičnico za napajanje Raspberry Pi. Prižgite ga in lahko gremo.

Povezava z zaslonom

Kabel HDMI lahko povežemo z novim monitorjem ali pa naredimo naš Pi brez glave, ki je ustvarjalen in stroškovno učinkovit z oddaljenim dostopom, kot je SSH/PuTTY. (Vem, da nismo financirani kot tajna organizacija)

3. korak: Programiranje Raspberry Pi v Pythonu

Programiranje Raspberry Pi v Pythonu
Programiranje Raspberry Pi v Pythonu

Koda Python za senzor Raspberry Pi in MPL3115A2. Na voljo je v našem skladišču Github.

Preden nadaljujete s kodo, se prepričajte, da ste prebrali navodila v datoteki Readme in v skladu z njimi nastavite Raspberry Pi. To bo trajalo le trenutek.

Nadmorska višina se izračuna iz tlaka z uporabo spodnje enačbe:

h = 44330,77 {1 - (p / p0) ^ 0,1902632} + OFF_H (vrednost registra)

Kjer je p0 = tlak nadmorske višine (101326 Pa) in h v metrih. MPL3115A2 uporablja to vrednost, saj je odmični register definiran kot 2 paskala na LSB.

Koda je očitno pred vami in je v najpreprostejši obliki, ki si jo lahko zamislite, in ne bi smeli imeti težav.

Delovno kodo Python za ta senzor lahko kopirate tudi od tu.

# Razdeljeno z licenco za svobodno voljo.# Uporabite ga na kakršen koli način, dobičkonosno ali brezplačno, pod pogojem, da ustreza licencam povezanih del. # MPL3115A2 # Ta koda je zasnovana za delo z mini modulom MPL3115A2_I2CS I2C, ki je na voljo na spletnem mestu ControlEverything.com. #

uvoz smbus

čas uvoza

# Pridobite avtobus I2C

vodilo = smbus. SMBus (1)

# Naslov MPL3115A2, 0x60 (96)

# Izberite krmilni register, 0x26 (38) # 0xB9 (185) Aktivni način, OSR = 128, Višina načina vodila.write_byte_data (0x60, 0x26, 0xB9) # Naslov MPL3115A2, 0x60 (96) # Izberite register konfiguracije podatkov, 0x13 (19) # 0x07 (07) Podatkovno pripravljen dogodek za nadmorsko višino, tlak, temperaturno vodilo.write_byte_data (0x60, 0x13, 0x07) # naslov MPL3115A2, 0x60 (96) # Izberite kontrolni register, 0x26 (38) # 0xB9 (185) Aktivni način, OSR = 128, vodilo v načinu višinomera.write_byte_data (0x60, 0x26, 0xB9)

time.sleep (1)

# Naslov MPL3115A2, 0x60 (96)

# Preberite podatke nazaj iz 0x00 (00), 6 bajtov # status, tHeight MSB1, tHeight MSB, tHeight LSB, temp MSB, temp LSB data = bus.read_i2c_block_data (0x60, 0x00, 6)

# Pretvorite podatke v 20-bitne

tHeight = ((podatki [1] * 65536) + (podatki [2] * 256) + (podatki [3] & 0xF0)) / 16 temp = ((podatki [4] * 256) + (podatki [5] & 0xF0)) / 16 nadmorske višine = tVišina / 16,0 cTemp = temp / 16,0 fTemp = cTemp * 1,8 + 32

# Naslov MPL3115A2, 0x60 (96)

# Izberite kontrolni register, 0x26 (38) # 0x39 (57) Aktivni način, OSR = 128, Vodilo za način barometra.write_byte_data (0x60, 0x26, 0x39)

time.sleep (1)

# Naslov MPL3115A2, 0x60 (96)

# Preberite podatke nazaj iz 0x00 (00), 4 bajtov # status, pres MSB1, pres MSB, pres LSB data = bus.read_i2c_block_data (0x60, 0x00, 4)

# Pretvorite podatke v 20-bitne

pres = ((podatki [1] * 65536) + (podatki [2] * 256) + (podatki [3] & 0xF0)) / 16 tlak = (pres / 4.0) / 1000.0

# Iznesite podatke na zaslon

tiskanje "Tlak: %.2f kPa" %tisk tlaka "Nadmorska višina: %.2f m" %nadmorska višina tisk "Temperatura v Celzijih: %.2f C" %cTemperaturni tisk "Temperatura v Fahrenheitu: %.2f F" %fTemp

4. korak: Praktičnost kodeksa (testiranje)

Praktičnost kodeksa (testiranje)
Praktičnost kodeksa (testiranje)

Zdaj prenesite (ali git povlecite) kodo in jo odprite v Raspberry Pi.

Zaženite ukaze za sestavljanje in nalaganje kode v terminalu in si oglejte rezultate na monitorju. Po nekaj sekundah bodo prikazani vsi parametri. Ko se prepričate, da vse deluje brezhibno, lahko ta projekt vzamete v večji projekt.

5. korak: Aplikacije in funkcije

Običajno se uporablja senzor preciznega višinomera MPL3115A2 I²C v aplikacijah, kot so zemljevid (pomoč pri zemljevidu, navigacija), magnetni kompas ali GPS (GPS mrtvo računanje, izboljšava GPS za nujne storitve), visoko natančnost altimetrije, pametni telefoni/tablice, altimetrija osebne elektronike in sateliti (oprema vremenskih postaj/napovedovanje).

Za npr. projekt izdelave višinomera za osebno elektroniko, ki z Raspberry Pi meri višino, zračni tlak in temperaturo. Višinomer za osebno elektroniko je skupaj precej hiter projekt. Trajalo bo le nekaj trenutkov, če imate vse dele in ne improvizirate (seveda lahko!). Višinomer tlaka je višinomer, ki ga najdemo v večini letal, padalci pa za podobne namene uporabljajo različice, nameščene na zapestju. Pohodniki in alpinisti uporabljajo višinomere, nameščene na zapestju ali ročno.

6. korak: Zaključek

Upam, da bo ta projekt navdihnil nadaljnje eksperimentiranje. Ta senzor I²C je neverjetno vsestranski, poceni in dostopen. Ker gre za izjemno spremenljiv program, lahko na zanimiv način razširite ta projekt in ga naredite še boljšega. Na primer, višinomer je instrument, ki je neobvezen pri terenskih vozilih in pomaga pri navigaciji. Nekateri visoko zmogljivi luksuzni avtomobili, ki nikoli niso nameravali zapustiti asfaltiranih cest, uporabljajo to tehnologijo. Za vaše udobje imamo na YouTubu zanimivo video vadnico, ki bi vam lahko pomagala pri raziskovanju. Upam, da bo ta projekt navdihnil nadaljnje eksperimentiranje.

Priporočena: