2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
MPL3115A2 koristi MEMS senzor tlaka s I2C sučeljem za pružanje točnih podataka o tlaku/nadmorskoj visini i temperaturi. Izlazi senzora digitalizirani su 24-bitnim ADC-om visoke rezolucije. Interna obrada uklanja zadatke kompenzacije iz host MCU sustava. 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: Što 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.
Priključci su prikazani na gornjoj slici.
Korak 3: Kôd:
Python kôd za MPL3115A2 može se preuzeti s našeg skladišta Github- DCUBE Store Community.
Evo linka
Koristili smo knjižnicu SMBus za python kôd, koraci za instaliranje SMBusa na malinu pi opisani su ovdje:
pypi.python.org/pypi/smbus-cffi/0.5.1
Ovdje možete i kopirati kôd, dat je na sljedeći način:
# Distribuirano s licencom slobodne volje.
# 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
uvoz smbus
vrijeme uvoza
# Nabavite I2C autobus
sabirnica = smbus. SMBus (1)
# MPL3115A2 adresa, 0x60 (96)
# Odaberite upravljački registar, 0x26 (38)
# 0xB9 (185) Aktivni način rada, OSR = 128, Način visinomjera
bus.write_byte_data (0x60, 0x26, 0xB9)
# MPL3115A2 adresa, 0x60 (96)
# Odaberite registar konfiguracije podataka, 0x13 (19)
# 0x07 (07) Događaj spreman za podatke omogućen za nadmorsku visinu, tlak, temperaturu
bus.write_byte_data (0x60, 0x13, 0x07)
# MPL3115A2 adresa, 0x60 (96)
# Odaberite upravljački registar, 0x26 (38)
# 0xB9 (185) Aktivni način rada, OSR = 128, Način visinomjera
bus.write_byte_data (0x60, 0x26, 0xB9)
vrijeme.spavanje (1)
# MPL3115A2 adresa, 0x60 (96)
# Pročitajte podatke natrag 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 upravljački registar, 0x26 (38)
# 0x39 (57) Aktivni način rada, OSR = 128, način rada barometra
bus.write_byte_data (0x60, 0x26, 0x39)
vrijeme.spavanje (1)
# MPL3115A2 adresa, 0x60 (96)
# Očitavanje podataka unatrag 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
tlak = (pres / 4,0) / 1000,0
# Izlažite podatke na zaslon
ispis "Tlak: %.2f kPa" %tlak
ispis "Visina: %.2f m" %nadmorske visine
ispis "Temperatura u Celzijusima: %.2f C" %cTemp
ispis "Temperatura u Fahrenheitu: %.2f F" %fTemp
Korak 4: Aplikacije:
Različite primjene MPL3115A2 uključuju altimetriju visoke točnosti, pametne telefone/tablete, altimetriju osobne elektronike itd. Također se može uključiti u GPS mrtvo računanje, GPS poboljšanje za hitne službe, pomoć pri zemljovidu, navigaciju kao i opremu meteorološke postaje.