Sisukord:

Raspberry Pi - MPL3115A2 Täpse altimeetri anduri Pythoni õpetus: 4 sammu
Raspberry Pi - MPL3115A2 Täpse altimeetri anduri Pythoni õpetus: 4 sammu

Video: Raspberry Pi - MPL3115A2 Täpse altimeetri anduri Pythoni õpetus: 4 sammu

Video: Raspberry Pi - MPL3115A2 Täpse altimeetri anduri Pythoni õpetus: 4 sammu
Video: PiicoDev Pressure Sensor MS5637 | Raspberry Pi Guide 2024, November
Anonim
Image
Image

MPL3115A2 kasutab rõhu/kõrguse ja temperatuuri täpsete andmete saamiseks IEM -liidesega MEMS -rõhuandurit. Anduri väljundid digiteeritakse kõrge eraldusvõimega 24-bitise ADC abil. Sisemine töötlemine eemaldab kompenseerimisülesanded host -MCU süsteemist. See on võimeline tuvastama muutusi vaid 0,05 kPa, mis võrdub 0,3 m kõrguse muutusega. Siin on selle demonstratsioon vaarika pi abil, kasutades pythoni koodi.

Samm: mida vajate..

Mida sa vajad..!!
Mida sa vajad..!!

1. Vaarika Pi

2. MPL3115A2

3. I²C kaabel

4. I²C kilp Raspberry Pi jaoks

5. Etherneti kaabel

Samm: ühendused:

Ühendused
Ühendused
Ühendused
Ühendused
Ühendused
Ühendused
Ühendused
Ühendused

Võtke vaarika pi jaoks I2C -kilp ja lükake see õrnalt üle vaarika pi gpio -tihvtide.

Seejärel ühendage I2C kaabli üks ots MPL3115A2 anduriga ja teine ots I2C varjestusega.

Ühendage ka Etherneti kaabel pi -ga või võite kasutada WiFi -moodulit.

Ühendused on näidatud ülaltoodud pildil.

3. samm: kood:

Kood
Kood

MPL3115A2 püütoni koodi saab alla laadida meie Githubi hoidlast- DCUBE Store Community.

Siin on link

Oleme python -koodi jaoks kasutanud SMBusi teeki, SMBus -i vaarika pi -le installimise samme kirjeldatakse siin:

pypi.python.org/pypi/smbus-cffi/0.5.1

Siit saate koodi ka kopeerida, see on järgmine:

# Levitatud vabatahtliku litsentsiga.

# Kasutage seda mis tahes viisil, kasumit teenides või tasuta, tingimusel et see sobib sellega seotud teoste litsentsidega.

# MPL3115A2

# See kood on loodud töötama koos MPL3115A2_I2CS I2C minimooduliga

import smbus

impordi aeg

# Hankige I2C buss

buss = smbus. SMBus (1)

# MPL3115A2 aadress, 0x60 (96)

# Valige juhtregister, 0x26 (38)

# 0xB9 (185) Aktiivne režiim, OSR = 128, kõrgusmõõturi režiim

bus.write_byte_data (0x60, 0x26, 0xB9)

# MPL3115A2 aadress, 0x60 (96)

# Valige andmete konfiguratsiooniregister, 0x13 (19)

# 0x07 (07) Andmevalmis sündmus on lubatud kõrguse, rõhu ja temperatuuri jaoks

bus.write_byte_data (0x60, 0x13, 0x07)

# MPL3115A2 aadress, 0x60 (96)

# Valige juhtregister, 0x26 (38)

# 0xB9 (185) Aktiivne režiim, OSR = 128, kõrgusmõõturi režiim

bus.write_byte_data (0x60, 0x26, 0xB9)

aeg. uni (1)

# MPL3115A2 aadress, 0x60 (96)

# Lugege andmeid tagasi 0x00 (00), 6 baiti

# olek, tKõrgus MSB1, tKõrgus MSB, tKõrgus LSB, temp MSB, temp LSB

andmed = bus.read_i2c_block_data (0x60, 0x00, 6)

# Teisendage andmed 20-bitisteks

tKõrgus = ((andmed [1] * 65536) + (andmed [2] * 256) + (andmed [3] ja 0xF0)) / 16

temp = ((andmed [4] * 256) + (andmed [5] ja 0xF0)) / 16

kõrgus = tKõrgus / 16,0

cTemp = temp / 16.0

fTemp = cTemp * 1,8 + 32

# MPL3115A2 aadress, 0x60 (96)

# Valige juhtregister, 0x26 (38)

# 0x39 (57) Aktiivne režiim, OSR = 128, baromeetri režiim

bus.write_byte_data (0x60, 0x26, 0x39)

aeg. uni (1)

# MPL3115A2 aadress, 0x60 (96)

# Lugege andmeid tagasi 0x00 (00), 4 baiti

# olek, enne MSB1, enne MSB, enne LSB

andmed = bus.read_i2c_block_data (0x60, 0x00, 4)

# Teisendage andmed 20-bitisteks

pres = ((andmed [1] * 65536) + (andmed [2] * 256) + (andmed [3] ja 0xF0)) / 16

rõhk = (pres / 4,0) / 1000,0

# Väljastage andmed ekraanile

print "Rõhk: %.2f kPa" %rõhk

print "Kõrgus: %.2f m" %kõrgus

print "Temperatuur Celsiuse järgi: %.2f C" %cTemp

print "Temperatuur Fahrenheiti järgi: %.2f F" %fTemp

4. samm: rakendused:

MPL3115A2 mitmesugused rakendused hõlmavad suure täpsusega kõrguse mõõtmist, nutitelefoni/tahvelarvutit, isikliku elektroonika kõrguse mõõtmist jne. Seda saab lisada ka GPS -i surnud arvestusse, hädaabiteenuste GPS -i täiustamisse, kaardiabi, navigeerimisseadmesse ja ilmajaama seadmetesse.

Soovitan: