Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
MPL3115A2 använder en MEMS -trycksensor med ett I2C -gränssnitt för att ge exakta tryck/höjd- och temperaturdata. Sensorutgångarna digitaliseras med en högupplöst 24-bitars ADC. Intern behandling tar bort kompensationsuppgifter från värd -MCU -systemet. Den kan upptäcka en förändring på endast 0,05 kPa vilket motsvarar en höjdförändring på 0,3 m. Här är dess demonstration med hallon pi med pythonkod.
Steg 1: Vad du behöver.. !
1. Hallon Pi
2. MPL3115A2
3. I²C -kabel
4. I²C -sköld för Raspberry Pi
5. Ethernet -kabel
Steg 2: Anslutningar:
Ta en I2C -sköld för hallonpi och tryck den försiktigt över gpio -stiften på hallonpi.
Anslut sedan den ena änden av I2C -kabeln till MPL3115A2 -sensorn och den andra änden till I2C -skärmen.
Anslut också Ethernet -kabeln till pi eller så kan du använda en WiFi -modul.
Anslutningar visas på bilden ovan.
Steg 3: Kod:
Pythonkoden för MPL3115A2 kan laddas ner från vårt Github-arkiv- DCUBE Store Community.
Här är länken
Vi har använt SMBus -biblioteket för pythonkod, stegen för att installera SMBus på hallon pi beskrivs här:
pypi.python.org/pypi/smbus-cffi/0.5.1
Du kan också kopiera koden härifrån, den ges enligt följande:
# Distribueras med en fri vilja licens.
# Använd det hur du vill, vinst eller gratis, förutsatt att det passar i licensen för dess associerade verk.
# MPL3115A2
# Denna kod är utformad för att fungera med MPL3115A2_I2CS I2C Mini Module
importera smbus
importtid
# Skaffa I2C -buss
buss = smbus. SMBus (1)
# MPL3115A2 -adress, 0x60 (96)
# Välj kontrollregister, 0x26 (38)
# 0xB9 (185) Aktivt läge, OSR = 128, höjdmätarläge
bus.write_byte_data (0x60, 0x26, 0xB9)
# MPL3115A2 -adress, 0x60 (96)
# Välj datakonfigurationsregister, 0x13 (19)
# 0x07 (07) Dataklar händelse aktiverad för höjd, tryck, temperatur
bus.write_byte_data (0x60, 0x13, 0x07)
# MPL3115A2 -adress, 0x60 (96)
# Välj kontrollregister, 0x26 (38)
# 0xB9 (185) Aktivt läge, OSR = 128, höjdmätarläge
bus.write_byte_data (0x60, 0x26, 0xB9)
tid. sover (1)
# MPL3115A2 -adress, 0x60 (96)
# Läs tillbaka data från 0x00 (00), 6 byte
# status, höjd MSB1, höjd MSB, höjd LSB, temp MSB, temp LSB
data = buss.läs_i2c_block_data (0x60, 0x00, 6)
# Konvertera data till 20-bitar
tHöjd = ((data [1] * 65536) + (data [2] * 256) + (data [3] & 0xF0)) / 16
temp = ((data [4] * 256) + (data [5] & 0xF0)) / 16
höjd = tHöjd / 16,0
cTemp = temp / 16,0
fTemp = cTemp * 1,8 + 32
# MPL3115A2 -adress, 0x60 (96)
# Välj kontrollregister, 0x26 (38)
# 0x39 (57) Aktivt läge, OSR = 128, Barometerläge
bus.write_byte_data (0x60, 0x26, 0x39)
tid. sover (1)
# MPL3115A2 -adress, 0x60 (96)
# Läs data tillbaka från 0x00 (00), 4 byte
# status, pres MSB1, pres MSB, pres LSB
data = buss.läs_i2c_block_data (0x60, 0x00, 4)
# Konvertera data till 20-bitar
pres = ((data [1] * 65536) + (data [2] * 256) + (data [3] & 0xF0)) / 16
tryck = (pres / 4.0) / 1000.0
# Mata ut data till skärmen
tryck "Tryck: %.2f kPa" %tryck
print "Höjd: %.2f m" %höjd
print "Temperatur i Celsius: %.2f C" %cTemp
print "Temperatur i Fahrenheit: %.2f F" %fTemp
Steg 4: Ansökningar:
Olika tillämpningar av MPL3115A2 inkluderar hög noggrannhetsmätning, smartphones/surfplattor, personlig elektronisk höjdmätning etc. Det kan också införlivas med GPS Dead Reckoning, GPS -förbättring för räddningstjänster, kartassistans, navigering samt väderstationsutrustning.