Taula de continguts:
Vídeo: Raspberry Pi - Tutorial Python del sensor altímetre de precisió MPL3115A2: 4 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:11
El MPL3115A2 utilitza un sensor de pressió MEMS amb una interfície I2C per proporcionar dades de pressió / altitud i temperatura precises. Les sortides del sensor es digitalitzen mitjançant un ADC de 24 bits d'alta resolució. El processament intern elimina les tasques de compensació del sistema MCU amfitrió. És capaç de detectar un canvi de només 0,05 kPa que equival a un canvi d’altitud de 0,3 m. Aquí teniu la demostració amb raspberry pi mitjançant codi Python.
Pas 1: el que necessiteu..
1. Raspberry Pi
2. MPL3115A2
3. Cable I²C
4. Escut I²C per a Raspberry Pi
5. Cable Ethernet
Pas 2: connexions:
Agafeu un escut I2C per a raspberry pi i passeu-lo suaument per sobre dels pins gpio de raspberry pi.
A continuació, connecteu l'extrem del cable I2C al sensor MPL3115A2 i l'altre extrem a l'escut I2C.
Connecteu també el cable Ethernet al pi o podeu utilitzar un mòdul WiFi.
Les connexions es mostren a la imatge superior.
Pas 3: Codi:
El codi python de MPL3115A2 es pot descarregar des del nostre dipòsit Github - DCUBE Store Community.
Aquí teniu l’enllaç
Hem utilitzat la biblioteca SMBus per al codi python; aquí es descriuen els passos per instal·lar SMBus al raspberry pi:
pypi.python.org/pypi/smbus-cffi/0.5.1
També podeu copiar el codi des d’aquí, es dóna de la següent manera:
# Distribuït amb una llicència de lliure voluntat.
# Utilitzeu-lo de la manera que vulgueu, de beneficis o de franc, sempre que encaixi en les llicències de les obres associades.
# MPL3115A2
# Aquest codi està dissenyat per funcionar amb el mini mòdul MPL3115A2_I2CS I2C
importar smbus
temps d'importació
# Aconsegueix un bus I2C
bus = smbus. SMBus (1)
# MPL3115A2 adreça, 0x60 (96)
# Selecciona el registre de control, 0x26 (38)
# 0xB9 (185) Mode actiu, OSR = 128, mode altímetre
bus.write_byte_data (0x60, 0x26, 0xB9)
# MPL3115A2 adreça, 0x60 (96)
# Seleccioneu el registre de configuració de dades, 0x13 (19)
# 0x07 (07) Esdeveniment preparat per a dades habilitat per a altitud, pressió i temperatura
bus.write_byte_data (0x60, 0x13, 0x07)
# MPL3115A2 adreça, 0x60 (96)
# Selecciona el registre de control, 0x26 (38)
# 0xB9 (185) Mode actiu, OSR = 128, mode altímetre
bus.write_byte_data (0x60, 0x26, 0xB9)
time.sleep (1)
# MPL3115A2 adreça, 0x60 (96)
# Llegiu les dades de 0x00 (00), 6 bytes
# estat, tHeight MSB1, tHight MSB, tHight LSB, temp MSB, temp LSB
data = bus.read_i2c_block_data (0x60, 0x00, 6)
# Converteix les dades a 20 bits
tAlçada = ((dades [1] * 65536) + (dades [2] * 256) + (dades [3] i 0xF0)) / 16
temp = ((dades [4] * 256) + (dades [5] i 0xF0)) / 16
altitud = tAlçada / 16,0
cTemp = temp / 16.0
fTemp = cTemp * 1,8 + 32
# MPL3115A2 adreça, 0x60 (96)
# Selecciona el registre de control, 0x26 (38)
# 0x39 (57) Mode actiu, OSR = 128, mode baròmetre
bus.write_byte_data (0x60, 0x26, 0x39)
time.sleep (1)
# MPL3115A2 adreça, 0x60 (96)
# Llegiu les dades de 0x00 (00), 4 bytes
# status, pres MSB1, pres MSB, pres LSB
data = bus.read_i2c_block_data (0x60, 0x00, 4)
# Converteix les dades a 20 bits
pres = ((dades [1] * 65536) + (dades [2] * 256) + (dades [3] i 0xF0)) / 16
pressió = (pres / 4.0) / 1000.0
# Sortida de dades a la pantalla
imprimir "Pressió:%.2f kPa"% de pressió
imprimeix "Altitud:%.2f m"% d'altitud
imprimir "Temperatura en centígrads:%.2f C"% cTemp
imprimir "Temperatura en Fahrenheit:%.2f F"% fTemp
Pas 4: aplicacions:
Diverses aplicacions de MPL3115A2 inclouen altimetria d’alta precisió, telèfons intel·ligents / tauletes, altimetria electrònica personal, etc. També es pot incorporar a GPS Dead Reckoning, millora GPS per a serveis d’emergència, assistència de mapes, navegació i equips d’estacions meteorològiques.
Recomanat:
Pingo: un llançador de boles de ping-pong amb detecció de moviment i alta precisió: 8 passos
Pingo: un llançador de boles de ping-pong amb detecció de moviment i alta precisió: Kevin Nitiema, Esteban Poveda, Anthony Mattacchione, Raphael Kay
Rellotge de precisió: 3 passos
Rellotge de precisió: tots necessitem rellotges, així que, per què no els feu vostres en aquest instructiu? Vaig a mostrar-vos com fer un rellotge de precisió un cop hàgiu configurat, farà un seguiment automàtic de l’hora actual al fons de tot. Tot i que només necessita molt poc
Registre remot de dades d'alta precisió mitjançant el multímetre / Arduino / pfodApp: 10 passos (amb imatges)
Registre de dades remot d’alta precisió mitjançant l’aplicació Multimeter / Arduino / pfod: actualitzat el 26 d’abril de 2017 Circuit i placa revisats per utilitzar-los amb comptadors USB 4000ZC. No es necessita codificació d’Android. per a registre i
Un experiment de rectificació de precisió: 11 passos
Un experiment de rectificació de precisió: recentment he fet un experiment sobre un circuit de rectificació de precisió i he obtingut algunes conclusions aproximades. Tenint en compte que el circuit de rectificació de precisió és un circuit comú, els resultats d’aquest experiment poden proporcionar una certa informació de referència
Oxímetre de pols amb una precisió molt millorada: 6 passos (amb imatges)
Polsímetre amb una precisió molt millorada: si heu visitat recentment un metge, és probable que una infermera hagi examinat els vostres signes vitals bàsics. Pes, alçada, pressió arterial i freqüència cardíaca (FC) i saturació d’oxigen a la sang perifèrica (SpO2). Potser, els dos últims es van obtenir de