Obsah:

Raspberry Pi - MPL3115A2 Přesný snímač výškoměru Python Výuka: 4 kroky
Raspberry Pi - MPL3115A2 Přesný snímač výškoměru Python Výuka: 4 kroky

Video: Raspberry Pi - MPL3115A2 Přesný snímač výškoměru Python Výuka: 4 kroky

Video: Raspberry Pi - MPL3115A2 Přesný snímač výškoměru Python Výuka: 4 kroky
Video: Arduino návody | Senzor Tlaku a Teploty BMP280 2024, Listopad
Anonim
Image
Image

MPL3115A2 využívá tlakový senzor MEMS s rozhraním I2C, který poskytuje přesné údaje o tlaku/nadmořské výšce a teplotě. Výstupy senzorů jsou digitalizovány 24bitovým ADC s vysokým rozlišením. Interní zpracování odstraní úlohy kompenzace z hostitelského systému MCU. Je schopen detekovat změnu pouze o 0,05 kPa, což odpovídá změně výšky o 0,3 m. Zde je jeho ukázka s malinou pi pomocí kódu pythonu.

Krok 1: Co potřebujete..

Co potřebuješ..!!
Co potřebuješ..!!

1. Raspberry Pi

2. MPL3115A2

3. I²C kabel

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

5. Ethernetový kabel

Krok 2: Připojení:

Připojení
Připojení
Připojení
Připojení
Připojení
Připojení
Připojení
Připojení

Vezměte I2C štít pro malinový pi a jemně jej zatlačte přes gpio piny malinového pi.

Poté připojte jeden konec kabelu I2C k senzoru MPL3115A2 a druhý konec ke stínění I2C.

Připojte také ethernetový kabel k pí nebo můžete použít modul WiFi.

Připojení jsou znázorněna na obrázku výše.

Krok 3: Kód:

Kód
Kód

Pythonový kód pro MPL3115A2 lze stáhnout z našeho úložiště Github- komunita obchodu DCUBE.

Tady je odkaz

Pro kód pythonu jsme použili knihovnu SMBus, kroky k instalaci SMBus na Raspberry Pi jsou popsány zde:

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

Odtud můžete také zkopírovat kód, který je uveden následovně:

# Distribuováno s licencí svobodné vůle.

# Použijte jej jakýmkoli způsobem, ať už ziskem nebo zdarma, za předpokladu, že se vejde do licencí souvisejících děl.

# MPL3115A2

# Tento kód je navržen pro práci s mini modulem MPL3115A2_I2CS I2C

importovat smbus

čas importu

# Získejte autobus I2C

bus = smbus. SMBus (1)

# MPL3115A2 adresa, 0x60 (96)

# Vyberte řídicí registr, 0x26 (38)

# 0xB9 (185) Aktivní režim, OSR = 128, režim výškoměru

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

# MPL3115A2 adresa, 0x60 (96)

# Vyberte registr konfigurace dat, 0x13 (19)

# 0x07 (07) Událost připravenosti dat povolena pro nadmořskou výšku, tlak, teplotu

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

# MPL3115A2 adresa, 0x60 (96)

# Vyberte řídicí registr, 0x26 (38)

# 0xB9 (185) Aktivní režim, OSR = 128, režim výškoměru

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

time.sleep (1)

# MPL3115A2 adresa, 0x60 (96)

# Přečtěte data zpět od 0x00 (00), 6 bytů

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

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

# Převeďte data na 20 bitů

tHeight = ((data [1] * 65536) + (data [2] * 256) + (data [3] & 0xF0)) / 16

temp = ((data [4] * 256) + (data [5] & 0xF0)) / 16

nadmořská výška = tVýška / 16.0

cTemp = teplota / 16.0

fTemp = cTemp * 1,8 + 32

# MPL3115A2 adresa, 0x60 (96)

# Vyberte řídicí registr, 0x26 (38)

# 0x39 (57) Aktivní režim, OSR = 128, režim barometru

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

time.sleep (1)

# MPL3115A2 adresa, 0x60 (96)

# Přečtěte data zpět od 0x00 (00), 4 bajty

# status, pres MSB1, pres MSB, pres LSB

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

# Převeďte data na 20 bitů

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

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

# Výstup dat na obrazovku

tisk "Tlak: %.2f kPa" %tlaku

tisk "Nadmořská výška: %.2f m" %nadmořská výška

tisk "Teplota ve stupních Celsia: %.2f C" %cTemp

tisk "Teplota ve Fahrenheitech: %.2f F" %fTemp

Krok 4: Aplikace:

Různé aplikace MPL3115A2 zahrnují vysoce přesnou výškoměr, smartphony/tablety, osobní elektronickou výškoměr atd. Lze jej také začlenit do systému GPS Dead Reckoning, GPS Enhancement pro záchranné služby, Map Assist, Navigation a vybavení meteorologické stanice.

Doporučuje: