Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
MPL3115A2 naudojamas MEMS slėgio jutiklis su I2C sąsaja, kad būtų gauti tikslūs slėgio/aukščio ir temperatūros duomenys. Jutiklių išėjimai yra skaitmeninami didelės skiriamosios gebos 24 bitų ADC. Vidinis apdorojimas pašalina kompensavimo užduotis iš pagrindinės MCU sistemos. Jis gali aptikti tik 0,05 kPa pokytį, o tai prilygsta 0,3 m aukščio pokyčiui. Čia yra jo demonstravimas su aviečių pi naudojant python kodą.
1 žingsnis: ko jums reikia..
1. Avietė Pi
2. MPL3115A2
3. I²C kabelis
4. „I²C Shield“, skirtas „Raspberry Pi“
5. Ethernet kabelis
2 žingsnis: jungtys:
Paimkite aviečių pi I2C skydą ir švelniai stumkite jį virš aviečių pi gpio kaiščių.
Tada vieną I2C kabelio galą prijunkite prie MPL3115A2 jutiklio, o kitą - prie I2C skydo.
Taip pat prijunkite Ethernet kabelį prie pi arba galite naudoti „WiFi“modulį.
Sujungimai parodyti aukščiau esančiame paveikslėlyje.
3 žingsnis: kodas:
MPL3115A2 python kodą galima atsisiųsti iš mūsų „Github“saugyklos- „DCUBE Store Community“.
Čia yra nuoroda
„Python“kodui naudojome „SMBus“biblioteką, čia aprašyti SMBus diegimo „Raspberry pi“veiksmai:
pypi.python.org/pypi/smbus-cffi/0.5.1
Taip pat galite nukopijuoti kodą iš čia, jis pateikiamas taip:
# Platinama su laisvos valios licencija.
# Naudokite bet kokiu būdu, pelningai ar nemokamai, jei jis atitinka su juo susijusių darbų licencijas.
# MPL3115A2
# Šis kodas skirtas dirbti su MPL3115A2_I2CS I2C mini moduliu
importuoti smbus
importo laikas
# Gaukite I2C autobusą
autobusas = smbus. SMBus (1)
# MPL3115A2 adresas, 0x60 (96)
# Pasirinkite valdymo registrą, 0x26 (38)
# 0xB9 (185) Aktyvus režimas, OSR = 128, altimetro režimas
bus.write_byte_data (0x60, 0x26, 0xB9)
# MPL3115A2 adresas, 0x60 (96)
# Pasirinkite duomenų konfigūracijos registrą, 0x13 (19)
# 0x07 (07) Įgalintas duomenų paruošimo įvykis dėl aukščio, slėgio, temperatūros
bus.write_byte_data (0x60, 0x13, 0x07)
# MPL3115A2 adresas, 0x60 (96)
# Pasirinkite valdymo registrą, 0x26 (38)
# 0xB9 (185) Aktyvus režimas, OSR = 128, altimetro režimas
bus.write_byte_data (0x60, 0x26, 0xB9)
laikas. miegas (1)
# MPL3115A2 adresas, 0x60 (96)
# Perskaitykite duomenis iš 0x00 (00), 6 baitų
# status, tHeight MSB1, tHeight MSB, tHeight LSB, temp MSB, temp LSB
duomenys = autobusas.read_i2c_block_data (0x60, 0x00, 6)
# Konvertuokite duomenis į 20 bitų
tAukštis = ((duomenys [1] * 65536) + (duomenys [2] * 256) + (duomenys [3] ir 0xF0)) / 16
temp = ((duomenys [4] * 256) + (duomenys [5] ir 0xF0)) / 16
aukštis = tAukštis / 16,0
cTemp = temp / 16.0
fTemp = cTemp * 1,8 + 32
# MPL3115A2 adresas, 0x60 (96)
# Pasirinkite valdymo registrą, 0x26 (38)
# 0x39 (57) Aktyvus režimas, OSR = 128, barometro režimas
bus.write_byte_data (0x60, 0x26, 0x39)
laikas. miegas (1)
# MPL3115A2 adresas, 0x60 (96)
# Perskaitykite duomenis iš 0x00 (00), 4 baitų
# status, pres MSB1, pres MSB, pres LSB
duomenys = autobusas.read_i2c_block_data (0x60, 0x00, 4)
# Konvertuokite duomenis į 20 bitų
pres = ((duomenys [1] * 65536) + (duomenys [2] * 256) + (duomenys [3] ir 0xF0)) / 16
slėgis = (pres / 4,0) / 1000,0
# Išveskite duomenis į ekraną
spausdinti "Slėgis: %.2f kPa" %slėgis
spausdinti "Altitude: %.2f m" %altitude
spausdinti "Temperatūra Celsijaus: %.2f C" %cTemp
spausdinti "Temperatūra Farenheitu: %.2f F" %fTemp
4 žingsnis: programos:
Įvairios MPL3115A2 programos apima didelio tikslumo altimetriją, išmaniuosius telefonus/planšetinius kompiuterius, asmeninės elektronikos aukščio matavimus ir tt. Jis taip pat gali būti įtrauktas į GPS mirusiųjų skaičiavimą, GPS gerinimą skubios pagalbos tarnyboms, žemėlapio pagalbinę įrangą, navigaciją ir orų stoties įrangą.