Sommario:

Raspberry Pi - Tutorial Python per sensore altimetro di precisione MPL3115A2: 4 passaggi
Raspberry Pi - Tutorial Python per sensore altimetro di precisione MPL3115A2: 4 passaggi

Video: Raspberry Pi - Tutorial Python per sensore altimetro di precisione MPL3115A2: 4 passaggi

Video: Raspberry Pi - Tutorial Python per sensore altimetro di precisione MPL3115A2: 4 passaggi
Video: Raspberry Pi MPL115A2 Digital Barometer Python Tutorial 2024, Novembre
Anonim
Image
Image

L'MPL3115A2 utilizza un sensore di pressione MEMS con un'interfaccia I2C per fornire dati precisi su pressione/altitudine e temperatura. Le uscite del sensore sono digitalizzate da un ADC a 24 bit ad alta risoluzione. L'elaborazione interna rimuove le attività di compensazione dal sistema MCU host. È in grado di rilevare un cambiamento di soli 0,05 kPa, che equivale a un cambiamento di altitudine di 0,3 m. Ecco la sua dimostrazione con raspberry pi usando il codice python.

Passaggio 1: ciò di cui hai bisogno.

Quello di cui hai bisogno..!!
Quello di cui hai bisogno..!!

1. Lampone Pi

2. MPL3115A2

3. Cavo I²C

4. Scudo I²C per Raspberry Pi

5. Cavo Ethernet

Passaggio 2: connessioni:

Connessioni
Connessioni
Connessioni
Connessioni
Connessioni
Connessioni
Connessioni
Connessioni

Prendi uno scudo I2C per lampone pi e spingilo delicatamente sui pin gpio di lampone pi.

Quindi collegare un'estremità del cavo I2C al sensore MPL3115A2 e l'altra estremità allo schermo I2C.

Collega anche il cavo Ethernet al pi oppure puoi utilizzare un modulo WiFi.

I collegamenti sono mostrati nell'immagine sopra.

Passaggio 3: codice:

Codice
Codice

Il codice Python per MPL3115A2 può essere scaricato dal nostro repository Github - DCUBE Store Community.

Ecco il link

Abbiamo utilizzato la libreria SMBus per il codice Python, i passaggi per installare SMBus su raspberry pi sono descritti qui:

pypi.python.org/pypi/smbus-cffi/0.5.1

Puoi anche copiare il codice da qui, è fornito come segue:

# Distribuito con una licenza libera.

# Usalo come preferisci, a scopo di lucro o gratuito, a condizione che si adatti alle licenze delle opere associate.

# MPL3115A2

# Questo codice è progettato per funzionare con il Mini Modulo MPL3115A2_I2CS I2C

import smbus

tempo di importazione

# Ottieni l'autobus I2C

bus = smbus. SMBus(1)

# indirizzo MPL3115A2, 0x60(96)

# Seleziona registro di controllo, 0x26(38)

# 0xB9(185) Modalità attiva, OSR = 128, modalità altimetro

bus.write_byte_data(0x60, 0x26, 0xB9)

# indirizzo MPL3115A2, 0x60(96)

# Seleziona il registro di configurazione dei dati, 0x13(19)

# 0x07(07) Evento pronto dati abilitato per altitudine, pressione, temperatura

bus.write_byte_data(0x60, 0x13, 0x07)

# indirizzo MPL3115A2, 0x60(96)

# Seleziona registro di controllo, 0x26(38)

# 0xB9(185) Modalità attiva, OSR = 128, modalità altimetro

bus.write_byte_data(0x60, 0x26, 0xB9)

tempo.sonno(1)

# indirizzo MPL3115A2, 0x60(96)

# Rilegge i dati da 0x00(00), 6 byte

# stato, tHeight MSB1, tHeight MSB, tHeight LSB, temp MSB, temp LSB

dati = bus.read_i2c_block_data(0x60, 0x00, 6)

# Converti i dati a 20 bit

tAltezza = ((data[1] * 65536) + (data[2] * 256) + (data[3] & 0xF0)) / 16

temp = ((data[4] * 256) + (data[5] & 0xF0)) / 16

altitudine = tAltezza / 16,0

cTemp = temperatura / 16,0

fTemp = cTemp * 1,8 + 32

# indirizzo MPL3115A2, 0x60(96)

# Seleziona registro di controllo, 0x26(38)

# 0x39(57) Modalità attiva, OSR = 128, Modalità barometro

bus.write_byte_data(0x60, 0x26, 0x39)

tempo.sonno(1)

# indirizzo MPL3115A2, 0x60(96)

# Rilegge i dati da 0x00(00), 4 byte

# stato, pres MSB1, pres MSB, pres LSB

dati = bus.read_i2c_block_data(0x60, 0x00, 4)

# Converti i dati a 20 bit

pres = ((data[1] * 65536) + (data[2] * 256) + (data[3] & 0xF0)) / 16

pressione = (pres / 4.0) / 1000.0

# Invia i dati allo schermo

print "Pressione: %.2f kPa" %pressione

print "Altitudine: %.2f m" %altitudine

print "Temperatura in gradi Celsius: %.2f C" %cTemp

print "Temperatura in Fahrenheit: %.2f F" %fTemp

Passaggio 4: applicazioni:

Varie applicazioni di MPL3115A2 includono altimetria ad alta precisione, smartphone/tablet, altimetria elettronica personale ecc. Può anche essere incorporata in GPS Dead Reckoning, GPS Enhancement per servizi di emergenza, Map Assist, navigazione e apparecchiature per stazioni meteorologiche.

Consigliato: