Obsah:

Raspberry Pi - presný výškomer MPL3115A2, Python, návod: 4 kroky
Raspberry Pi - presný výškomer MPL3115A2, Python, návod: 4 kroky

Video: Raspberry Pi - presný výškomer MPL3115A2, Python, návod: 4 kroky

Video: Raspberry Pi - presný výškomer MPL3115A2, Python, návod: 4 kroky
Video: Open i2c bus on Raspberry Pi 2024, Júl
Anonim
Image
Image

MPL3115A2 využíva snímač tlaku MEMS s rozhraním I2C, ktorý poskytuje presné údaje o tlaku/nadmorskej výške a teplote. Výstupy senzorov sú digitalizované 24-bitovým ADC s vysokým rozlíšením. Interné spracovanie odstráni úlohy kompenzácie z hostiteľského systému MCU. Je schopný detekovať zmenu iba o 0,05 kPa, čo sa rovná zmene výšky 0,3 m. Tu je jeho ukážka s malinou pi pomocou kódu python.

Krok 1: Čo potrebujete.. !

Čo potrebuješ..!!
Čo potrebuješ..!!

1. Raspberry Pi

2. MPL3115A2

3. Kábel I²C

4. I²C štít pre Raspberry Pi

5. Ethernetový kábel

Krok 2: Pripojenia:

Pripojenia
Pripojenia
Pripojenia
Pripojenia
Pripojenia
Pripojenia
Pripojenia
Pripojenia

Vezmite I2C štít na malinový pi a jemne ho zatlačte cez gpio kolíky malinového pi.

Potom pripojte jeden koniec kábla I2C k senzoru MPL3115A2 a druhý koniec k štítu I2C.

Pripojte tiež ethernetový kábel k pí alebo môžete použiť modul WiFi.

Pripojenia sú znázornené na obrázku vyššie.

Krok 3: Kód:

Kód
Kód

Pythonový kód pre MPL3115A2 je možné stiahnuť z nášho úložiska Github- Komunita obchodu DCUBE.

Tu je odkaz

Na kód pythonu sme použili knižnicu SMBus, kroky na inštaláciu SMBus na Raspberry Pi sú popísané tu:

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

Odtiaľto môžete tiež skopírovať kód, ktorý je nasledujúci:

# Distribuované s licenciou slobodnej vôle.

# Používajte ho akýmkoľvek spôsobom chcete, so ziskom alebo zadarmo, za predpokladu, že sa zmestí do licencií súvisiacich diel.

# MPL3115A2

# Tento kód je navrhnutý tak, aby pracoval s mini modulom MPL3115A2_I2CS I2C

import smbus

čas importu

# Získajte autobus I2C

bus = smbus. SMBus (1)

# MPL3115A2 adresa, 0x60 (96)

# Vyberte riadiaci register, 0x26 (38)

# 0xB9 (185) Aktívny režim, OSR = 128, režim výškomeru

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

# Adresa MPL3115A2, 0x60 (96)

# Vyberte register konfigurácie údajov, 0x13 (19)

# 0x07 (07) Udalosť pripravená na údaje je povolená pre nadmorskú výšku, tlak, teplotu

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

# MPL3115A2 adresa, 0x60 (96)

# Vyberte riadiaci register, 0x26 (38)

# 0xB9 (185) Aktívny režim, OSR = 128, režim výškomeru

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

time.sleep (1)

# Adresa MPL3115A2, 0x60 (96)

# Načítajte údaje späť od 0x00 (00), 6 bajtov

# status, tHeight MSB1, tHight MSB, tHeight LSB, temp MSB, temp LSB

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

# Konvertujte údaje na 20-bitové

tHeight = ((údaje [1] * 65536) + (údaje [2] * 256) + (údaje [3] a 0xF0)) / 16

teplota = ((údaje [4] * 256) + (údaje [5] a 0xF0)) / 16

nadmorská výška = tVýška / 16.0

cTemp = teplota / 16,0

fTemp = cTemp * 1,8 + 32

# Adresa MPL3115A2, 0x60 (96)

# Vyberte riadiaci register, 0x26 (38)

# 0x39 (57) Aktívny režim, OSR = 128, režim barometra

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

time.sleep (1)

# MPL3115A2 adresa, 0x60 (96)

# Načítajte údaje späť od 0x00 (00), 4 bajty

# status, pres MSB1, pres MSB, pres LSB

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

# Konvertujte údaje na 20-bitové

pres = ((údaje [1] * 65536) + (údaje [2] * 256) + (údaje [3] a 0xF0)) / 16

tlak = (prez / 4,0) / 1000,0

# Výstup údajov na obrazovku

vytlačiť "Tlak: %.2f kPa" %tlaku

vytlačiť "Nadmorská výška: %.2f m" %nadmorská výška

vytlačiť "Teplota v stupňoch Celzia: %.2f C" %cTemp

vytlačiť "Teplota vo Fahrenheite: %.2f F" %fTemp

Krok 4: Aplikácie:

Rôzne aplikácie MPL3115A2 zahŕňajú vysoko presnú výškomer, smartphony/tablety, osobnú elektronickú výškomer atď. Môže byť tiež začlenený do systému GPS Dead Reckoning, GPS Enhancement for Emergency Services, Map Assist, Navigation, rovnako ako vybavenie meteorologickej stanice.

Odporúča: