Índice:
Vídeo: Raspberry Pi - Sensor de altímetro de precisão MPL3115A2 Python Tutorial: 4 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:35
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.
Recomendado:
Pingo: um iniciador de bola de pingue-pongue com detecção de movimento e alta precisão: 8 etapas
Pingo: um lançador de bola de pingue-pongue com detecção de movimento e alta precisão: Kevin Nitiema, Esteban Poveda, Anthony Mattacchione, Raphael Kay
DropArt - Colisor fotográfico de precisão de duas gotas: 11 etapas (com imagens)
DropArt - Colisor fotográfico de duas gotas de precisão: Olá a todos, Neste instrutível apresento meu projeto para um colisor de duas gotas de líquido controlado por computador. Antes de começarmos com os detalhes do design, acho que faz sentido explicar exatamente qual é o propósito do design.Um divertido, interessante
Relógio de precisão: 3 etapas
Relógio de precisão: Todos nós precisamos de relógios, então por que não fazer o seu próprio neste instrutível? Vou mostrar a você como fazer um relógio de precisão, uma vez que você configurou irá automaticamente manter o controle da hora atual no fundo de tudo. Embora também precise de muito pouco
Configurando o DS3231 RTC (Real Time Clock) com precisão, rapidez e automatização usando Java (+ -1s): 3 etapas
Configurando o DS3231 RTC (Real Time Clock) com precisão, rápido e automatizado usando Java (+ -1s): Este Instructable vai mostrar como configurar a hora em um DS3231 Real Time Clock usando um Arduino e um pequeno aplicativo Java que usa a conexão serial do Arduino. A lógica básica deste programa: 1. O Arduino envia uma solicitação serial
Registro de dados remoto de alta precisão usando multímetro / Arduino / pfodApp: 10 etapas (com imagens)
Registro de dados remoto de alta precisão usando multímetro / Arduino / pfodApp: atualizado em 26 de abril de 2017 Circuito e placa revisados para uso com medidores USB 4000ZC.Nenhuma codificação Android necessária. para registro e