2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
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..
1. Raspberry Pi
2. MPL3115A2
3. I²C kabel
4. I²C štít pro Raspberry Pi
5. Ethernetový kabel
Krok 2: 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:
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.