2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-13 06:58
MPL3115A2 përdor një sensor presioni MEMS me një ndërfaqe I2C për të siguruar të dhëna të sakta të Presionit/Lartësisë dhe Temperaturës. Daljet e sensorit digjitalizohen nga një ADC me rezolucion të lartë 24-bit. Përpunimi i brendshëm heq detyrat e kompensimit nga sistemi pritës MCU. Shtë i aftë të zbulojë një ndryshim në vetëm 0.05 kPa që barazohet me një ndryshim 0.3m në lartësi. Këtu është demonstrimi i tij me mjedër pi duke përdorur kodin python.
Hapi 1: Ajo që ju nevojitet.. !
1. Raspberry Pi
2. MPL3115A2
3. Kabllo I²C
4. Mburoja I²C për Raspberry Pi
5. Kabllo Ethernet
Hapi 2: Lidhjet:
Merrni një mburojë I2C për mjedrën pi dhe shtyjeni butësisht mbi kunjat e gpio të mjedrës pi.
Pastaj lidhni njërin skaj të kabllit I2C me sensorin MPL3115A2 dhe skajin tjetër me mburojën I2C.
Gjithashtu lidhni kabllon Ethernet me pi ose mund të përdorni një modul WiFi.
Lidhjet janë treguar në figurën e mësipërme.
Hapi 3: Kodi:
Kodi python për MPL3115A2 mund të shkarkohet nga depoja jonë Github- Komuniteti i Dyqaneve DCUBE.
Këtu është lidhja
Ne kemi përdorur bibliotekën SMBus për kodin python, hapat për të instaluar SMBus në mjedër pi janë përshkruar këtu:
pypi.python.org/pypi/smbus-cffi/0.5.1
Ju gjithashtu mund të kopjoni kodin nga këtu, ai jepet si më poshtë:
# Shpërndarë me një licencë me vullnet të lirë.
# Përdoreni atë në çdo mënyrë që dëshironi, fitimprurëse ose falas, me kusht që të përshtatet në licencat e veprave të tij shoqëruese.
# MPL3115A2
# Ky kod është krijuar për të punuar me Mini Modulin MPL3115A2_I2CS I2C
import smbus
koha e importit
# Merrni autobusin I2C
autobus = smbus. SMBus (1)
# Adresa MPL3115A2, 0x60 (96)
# Zgjidh regjistrin e kontrollit, 0x26 (38)
# 0xB9 (185) Mënyra aktive, OSR = 128, Mënyra Altimetër
bus.write_byte_data (0x60, 0x26, 0xB9)
# Adresa MPL3115A2, 0x60 (96)
# Zgjidhni regjistrin e konfigurimit të të dhënave, 0x13 (19)
# 0x07 (07) Ngjarja e gatshme për të dhëna u aktivizua për lartësinë, presionin, temperaturën
bus.write_byte_data (0x60, 0x13, 0x07)
# Adresa MPL3115A2, 0x60 (96)
# Zgjidh regjistrin e kontrollit, 0x26 (38)
# 0xB9 (185) Mënyra aktive, OSR = 128, Mënyra Altimetër
bus.write_byte_data (0x60, 0x26, 0xB9)
koha. gjumi (1)
# Adresa MPL3115A2, 0x60 (96)
# Lexoni të dhënat përsëri nga 0x00 (00), 6 bajt
# status, tHeight MSB1, tHeight MSB, tHeight LSB, temp MSB, temp LSB
të dhëna = bus.read_i2c_block_data (0x60, 0x00, 6)
# Ktheni të dhënat në 20-bit
tHeight = ((të dhënat [1] * 65536) + (të dhënat [2] * 256) + (të dhënat [3] & 0xF0)) / 16
temp = ((të dhënat [4] * 256) + (të dhënat [5] & 0xF0)) / 16
lartësi = tLartësia / 16.0
cTemp = temp / 16.0
fTemp = cTemp * 1.8 + 32
# Adresa MPL3115A2, 0x60 (96)
# Zgjidh regjistrin e kontrollit, 0x26 (38)
# 0x39 (57) Mënyra aktive, OSR = 128, Mënyra e barometrit
bus.write_byte_data (0x60, 0x26, 0x39)
koha. gjumi (1)
# Adresa MPL3115A2, 0x60 (96)
# Lexoni të dhënat përsëri nga 0x00 (00), 4 bajt
# status, pres MSB1, pres MSB, pres LSB
të dhëna = bus.read_i2c_block_data (0x60, 0x00, 4)
# Ktheni të dhënat në 20-bit
pres = ((të dhënat [1] * 65536) + (të dhënat [2] * 256) + (të dhënat [3] & 0xF0)) / 16
presion = (pres / 4.0) / 1000.0
# Dalja e të dhënave në ekran
shtyp "Presioni: %.2f kPa" %presion
print "Lartësia: %.2f m" %lartësi
print "Temperatura në Celsius: %.2f C" %cTemp
print "Temperatura në Fahrenheit: %.2f F" %fTemp
Hapi 4: Aplikimet:
Aplikime të ndryshme të MPL3115A2 përfshijnë Altimetri të Saktësisë së Lartë, Smartphone/Tableta, Elektronikë Personale Altimetri etj. Gjithashtu mund të inkorporohet në llogaritjen e vdekur të GPS, Përmirësimi i GPS për Shërbimet e Emergjencave, Ndihma në Hartë, Lundrimi si dhe Pajisjet e Stacionit Moti.