2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
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.. !
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:
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:
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.