2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
MPL3115A2 koristi MEMS senzor pritiska sa I2C interfejsom za pružanje tačnih podataka o pritisku/nadmorskoj visini i temperaturi. Izlazi senzora digitalizirani su 24-bitnim ADC-om visoke rezolucije. Interna obrada uklanja zadatke kompenzacije iz host MCU sistema. Sposoban je otkriti promjenu od samo 0,05 kPa, što je jednako promjeni visine 0,3 m. Evo njegove demonstracije s malinom pi pomoću python koda.
Korak 1: Šta vam treba..
1. Malina Pi
2. MPL3115A2
3. I²C kabel
4. I²C štit za Raspberry Pi
5. Ethernet kabel
Korak 2: Veze:
Uzmite I2C štit za malinu pi i nježno je gurnite preko gpio igle maline pi.
Zatim spojite jedan kraj I2C kabela na senzor MPL3115A2, a drugi kraj na I2C štit.
Također priključite Ethernet kabel na pi ili možete koristiti WiFi modul.
Veze su prikazane na gornjoj slici.
Korak 3: Kod:
Python kod za MPL3115A2 može se preuzeti sa našeg Github spremišta- DCUBE Store Community.
Evo linka
Koristili smo SMBus biblioteku za python kod, koraci za instaliranje SMBus -a na malinu pi opisani su ovdje:
pypi.python.org/pypi/smbus-cffi/0.5.1
Kôd možete i kopirati odavde, dat je na sljedeći način:
# Distribuirano s licencom za slobodnu volju.
# Koristite ga kako god želite, profitno ili besplatno, pod uvjetom da se uklapa u licence povezanih djela.
# MPL3115A2
# Ovaj kôd je dizajniran za rad s MPL3115A2_I2CS I2C mini modulom
import smbus
vreme uvoza
# Nabavite I2C autobus
sabirnica = smbus. SMBus (1)
# MPL3115A2 adresa, 0x60 (96)
# Odaberite kontrolni registar, 0x26 (38)
# 0xB9 (185) Aktivni način rada, OSR = 128, način rada visinomjera
bus.write_byte_data (0x60, 0x26, 0xB9)
# MPL3115A2 adresa, 0x60 (96)
# Odaberite registar konfiguracije podataka, 0x13 (19)
# 0x07 (07) Dozvoljen događaj spremnosti podataka za nadmorsku visinu, pritisak, temperaturu
bus.write_byte_data (0x60, 0x13, 0x07)
# MPL3115A2 adresa, 0x60 (96)
# Odaberite kontrolni registar, 0x26 (38)
# 0xB9 (185) Aktivni način rada, OSR = 128, način rada visinomjera
bus.write_byte_data (0x60, 0x26, 0xB9)
time.sleep (1)
# MPL3115A2 adresa, 0x60 (96)
# Pročitajte podatke nazad od 0x00 (00), 6 bajtova
# status, tHeight MSB1, tHeight MSB, tHeight LSB, temp MSB, temp LSB
data = bus.read_i2c_block_data (0x60, 0x00, 6)
# Pretvorite podatke u 20-bitne
tHeight = ((podaci [1] * 65536) + (podaci [2] * 256) + (podaci [3] & 0xF0)) / 16
temp = ((podaci [4] * 256) + (podaci [5] & 0xF0)) / 16
nadmorska visina = tVisina / 16,0
cTemp = temp / 16.0
fTemp = cTemp * 1,8 + 32
# MPL3115A2 adresa, 0x60 (96)
# Odaberite kontrolni registar, 0x26 (38)
# 0x39 (57) Aktivni način rada, OSR = 128, način rada barometra
bus.write_byte_data (0x60, 0x26, 0x39)
time.sleep (1)
# MPL3115A2 adresa, 0x60 (96)
# Očitavanje podataka unazad od 0x00 (00), 4 bajta
# status, pres MSB1, pres MSB, pres LSB
data = bus.read_i2c_block_data (0x60, 0x00, 4)
# Pretvorite podatke u 20-bitne
pres = ((podaci [1] * 65536) + (podaci [2] * 256) + (podaci [3] & 0xF0)) / 16
pritisak = (pres / 4,0) / 1000,0
# Izlažite podatke na ekran
ispis "Pritisak: %.2f kPa" %pritisak
ispis "Nadmorska visina: %.2f m" %nadmorske visine
ispis "Temperatura u Celzijusima: %.2f C" %cTemp
ispis "Temperatura u Farenhajtu: %.2f F" %fTemp
Korak 4: Aplikacije:
Različite primjene MPL3115A2 uključuju altimetriju visoke preciznosti, pametne telefone/tablete, altimetriju lične elektronike itd. Također se može uključiti u GPS mrtvo računanje, GPS poboljšanje za hitne službe, pomoć pri mapiranju, navigaciju kao i opremu meteorološke stanice.