2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
O MPL3115A2 emprega um sensor de pressão MEMS com uma interface I2C para fornecer dados precisos de pressão / altitude e temperatura. As saídas do sensor são digitalizadas por um ADC de alta resolução de 24 bits. O processamento interno remove as tarefas de compensação do sistema MCU host. Ele é capaz de detectar uma mudança em apenas 0,05 kPa, o que equivale a uma mudança de 0,3 m na altitude. Aqui está sua demonstração com raspberry pi usando código python.
Etapa 1: O que você precisa..
1. Raspberry Pi
2. MPL3115A2
3. Cabo I²C
4. Escudo I²C para Raspberry Pi
5. Cabo Ethernet
Etapa 2: Conexões:
Pegue um escudo I2C para raspberry pi e empurre-o suavemente sobre os pinos gpio de raspberry pi.
Em seguida, conecte uma extremidade do cabo I2C ao sensor MPL3115A2 e a outra extremidade à blindagem I2C.
Também conecte o cabo Ethernet ao pi ou você pode usar um módulo WiFi.
As conexões são mostradas na imagem acima.
Etapa 3: Código:
O código python para MPL3115A2 pode ser baixado de nosso repositório Github- DCUBE Store Community.
Aqui está o link
Usamos a biblioteca SMBus para o código python. As etapas para instalar o SMBus no raspberry pi são descritas aqui:
pypi.python.org/pypi/smbus-cffi/0.5.1
Você também pode copiar o código daqui, ele é fornecido da seguinte forma:
# Distribuído com uma licença de livre arbítrio.
# Use-o da forma que quiser, com ou sem lucro, desde que se enquadre nas licenças das suas obras associadas.
# MPL3115A2
# Este código foi desenvolvido para funcionar com o Minimódulo MPL3115A2_I2CS I2C
import smbus
tempo de importação
# Pegue o ônibus I2C
bus = smbus. SMBus (1)
Endereço # MPL3115A2, 0x60 (96)
# Selecione o registro de controle, 0x26 (38)
# 0xB9 (185) Modo ativo, OSR = 128, modo Altímetro
bus.write_byte_data (0x60, 0x26, 0xB9)
Endereço # MPL3115A2, 0x60 (96)
# Selecione o registro de configuração de dados, 0x13 (19)
# 0x07 (07) Evento de dados prontos habilitado para altitude, pressão, temperatura
bus.write_byte_data (0x60, 0x13, 0x07)
Endereço # MPL3115A2, 0x60 (96)
# Selecione o registro de controle, 0x26 (38)
# 0xB9 (185) Modo ativo, OSR = 128, modo Altímetro
bus.write_byte_data (0x60, 0x26, 0xB9)
tempo.sono (1)
Endereço # MPL3115A2, 0x60 (96)
# Leia os dados de 0x00 (00), 6 bytes
# status, tHeight MSB1, tHeight MSB, tHeight LSB, temp MSB, temp LSB
data = bus.read_i2c_block_data (0x60, 0x00, 6)
# Converta os dados para 20 bits
tHeight = ((dados [1] * 65536) + (dados [2] * 256) + (dados [3] e 0xF0)) / 16
temp = ((dados [4] * 256) + (dados [5] e 0xF0)) / 16
altitude = tHeight / 16,0
cTemp = temp / 16,0
fTemp = cTemp * 1,8 + 32
Endereço # MPL3115A2, 0x60 (96)
# Selecione o registro de controle, 0x26 (38)
# 0x39 (57) Modo ativo, OSR = 128, modo Barômetro
bus.write_byte_data (0x60, 0x26, 0x39)
tempo.sono (1)
Endereço # MPL3115A2, 0x60 (96)
# Leia os dados de 0x00 (00), 4 bytes
# status, pres MSB1, pres MSB, pres LSB
data = bus.read_i2c_block_data (0x60, 0x00, 4)
# Converta os dados para 20 bits
pres = ((dados [1] * 65536) + (dados [2] * 256) + (dados [3] e 0xF0)) / 16
pressão = (pres / 4,0) / 1000,0
# Dados de saída para a tela
print "Pressão:%.2f kPa"% de pressão
imprimir "Altitude:%.2f m"% altitude
print "Temperatura em Celsius:%.2f C"% cTemp
print "Temperatura em Fahrenheit:%.2f F"% fTemp
Etapa 4: Aplicativos:
Várias aplicações de MPL3115A2 incluem Altimetria de Alta Precisão, Smartphones / Tablets, Altimetria Eletrônica Pessoal, etc. Ele também pode ser incorporado em GPS Dead Reckoning, Melhoria de GPS para Serviços de Emergência, Map Assist, Navegação, bem como Equipamentos de Estação Meteorológica.