Kazalo:

Raspberry Pi - MPL3115A2 Precizni senzor višinomera za Python Vadnica: 4 koraki
Raspberry Pi - MPL3115A2 Precizni senzor višinomera za Python Vadnica: 4 koraki

Video: Raspberry Pi - MPL3115A2 Precizni senzor višinomera za Python Vadnica: 4 koraki

Video: Raspberry Pi - MPL3115A2 Precizni senzor višinomera za Python Vadnica: 4 koraki
Video: Arduino Altimeter 2024, November
Anonim
Image
Image

MPL3115A2 uporablja senzor tlaka MEMS z vmesnikom I2C za zagotavljanje točnih podatkov o tlaku/nadmorski višini in temperaturi. Izhode senzorjev digitalizira 24-bitni ADC z visoko ločljivostjo. Notranja obdelava odstrani kompenzacijske naloge iz gostiteljskega sistema MCU. Sposoben je zaznati spremembo le 0,05 kPa, kar pomeni 0,3 m višinske spremembe. Tukaj je njegova predstavitev z malinovim pi z uporabo kode python.

Korak: Kaj potrebujete.. !

Kaj rabiš..!!
Kaj rabiš..!!

1. Malina Pi

2. MPL3115A2

3. Kabel I²C

4. I²C ščit za Raspberry Pi

5. Ethernetni kabel

2. korak: Povezave:

Povezave
Povezave
Povezave
Povezave
Povezave
Povezave
Povezave
Povezave

Za malino pi vzemite ščit I2C in ga nežno potisnite čez zatiče gpio maline pi.

Nato en konec kabla I2C priključite na senzor MPL3115A2, drugi konec pa na ščit I2C.

Ethernetni kabel priključite tudi na pi ali pa uporabite modul WiFi.

Povezave so prikazane na zgornji sliki.

3. korak: Koda:

Koda
Koda

Kodo python za MPL3115A2 lahko prenesete iz našega skladišča Github- skupnosti trgovin DCUBE.

Tukaj je povezava

Za kodo python smo uporabili knjižnico SMBus, koraki za namestitev SMBus na malino pi so opisani tukaj:

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

Kodo lahko tudi kopirate od tu, podana je na naslednji način:

# Razdeljeno z licenco za svobodno voljo.

# Uporabite ga kakor koli želite, dobičkonosno ali brezplačno, pod pogojem, da ustreza licencam pripadajočih del.

# MPL3115A2

# Ta koda je zasnovana za delo z mini modulom MPL3115A2_I2CS I2C

uvoz smbus

čas uvoza

# Pridobite avtobus I2C

vodilo = smbus. SMBus (1)

# Naslov MPL3115A2, 0x60 (96)

# Izberite kontrolni register, 0x26 (38)

# 0xB9 (185) Aktivni način, OSR = 128, Način višinomera

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

# Naslov MPL3115A2, 0x60 (96)

# Izberite register konfiguracije podatkov, 0x13 (19)

# 0x07 (07) Dogodek za pripravljenost podatkov za višino, tlak, temperaturo

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

# Naslov MPL3115A2, 0x60 (96)

# Izberite kontrolni register, 0x26 (38)

# 0xB9 (185) Aktivni način, OSR = 128, Način višinomera

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

time.sleep (1)

# Naslov MPL3115A2, 0x60 (96)

# Preberite podatke nazaj od 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

nadmorska višina = 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, Način barometra

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

time.sleep (1)

# Naslov MPL3115A2, 0x60 (96)

# Preberite podatke nazaj od 0x00 (00), 4 bajte

# 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

natisnite "Tlak: %.2f kPa" %tlak

natisni "Nadmorska višina: %.2f m" %nadmorske višine

natisni "Temperatura v Celzijah: %.2f C" %cTemp

natisni "Temperatura v Fahrenheitu: %.2f F" %fTemp

4. korak: Aplikacije:

Različne aplikacije MPL3115A2 vključujejo visoko natančnost altimetrije, pametne telefone/tablične računalnike, višino osebne elektronike itd. Lahko se vključijo tudi v GPS mrtve obračune, izboljšavo GPS za službe v sili, pomoč pri zemljevidih, navigacijo in opremo vremenskih postaj.

Priporočena: