Sommario:

Altitudine, pressione e temperatura utilizzando Raspberry Pi con MPL3115A2: 6 passaggi
Altitudine, pressione e temperatura utilizzando Raspberry Pi con MPL3115A2: 6 passaggi

Video: Altitudine, pressione e temperatura utilizzando Raspberry Pi con MPL3115A2: 6 passaggi

Video: Altitudine, pressione e temperatura utilizzando Raspberry Pi con MPL3115A2: 6 passaggi
Video: Lesson 29: Introduction to BMP280 Temperature Sensor| Arduino Step By Step Course 2024, Luglio
Anonim
Altitudine, pressione e temperatura utilizzando Raspberry Pi con MPL3115A2
Altitudine, pressione e temperatura utilizzando Raspberry Pi con MPL3115A2
Altitudine, pressione e temperatura utilizzando Raspberry Pi con MPL3115A2
Altitudine, pressione e temperatura utilizzando Raspberry Pi con MPL3115A2

Sembra interessante. È abbastanza possibile in questo momento in cui stiamo tutti entrando nella generazione IoT. Da maniaci dell'elettronica, abbiamo giocato con il Raspberry Pi e abbiamo deciso di realizzare progetti interessanti utilizzando questa conoscenza. In questo progetto, misureremo l'altitudine, la pressione atmosferica e la temperatura utilizzando Raspberry Pi. Quindi ecco la documentazione (sempre modificata e ampliata). Ti consigliamo di iniziare seguendo le istruzioni e di copiare il codice. Puoi sperimentare in seguito. Quindi iniziamo.

Passaggio 1: attrezzatura indispensabile di cui abbiamo bisogno

Attrezzatura indispensabile di cui abbiamo bisogno
Attrezzatura indispensabile di cui abbiamo bisogno
Attrezzatura indispensabile di cui abbiamo bisogno
Attrezzatura indispensabile di cui abbiamo bisogno
Attrezzatura indispensabile di cui abbiamo bisogno
Attrezzatura indispensabile di cui abbiamo bisogno
Attrezzatura indispensabile di cui abbiamo bisogno
Attrezzatura indispensabile di cui abbiamo bisogno

1. Lampone Pi

Il primo passo è stato ottenere una scheda Raspberry Pi. Abbiamo acquistato il nostro e anche tu puoi. Abbiamo iniziato a imparare dai tutorial, abbiamo capito i concetti di scripting e connessione e abbiamo imparato in seguito. Questo piccolo genio è comune per hobbisti, insegnanti e nella creazione di ambienti innovativi.

2. Scudo I²C per Raspberry Pi

L'INPI2 (adattatore I2C) fornisce al Raspberry Pi 2/3 una porta I²C da utilizzare con più dispositivi I2C. È disponibile su Dcube Store

3. Altimetro, sensore di pressione e temperatura, MPL3115A2

L'MPL3115A2 è un sensore di pressione MEMS con un'interfaccia I²C per fornire dati di pressione/altitudine e temperatura. Questo sensore utilizza il protocollo I²C per comunicare. Abbiamo acquistato questo sensore da Dcube Store

4. Cavo di collegamento

Avevamo il cavo di collegamento I2C disponibile presso Dcube Store

5. Cavo micro USB

Il cavo micro USB L'alimentatore è la scelta ideale per alimentare il Raspberry Pi.

6. Miglioramento dell'accesso a Internet - Cavo Ethernet/Adattatore WiFi

In questa era, per accedere a qualsiasi cosa è necessaria una connessione a Internet (quasi come c'è anche la vita offline). Quindi seguiamo il consiglio di un cavo LAN o di un adattatore Wireless Nano USB (WiFi) per creare la connessione Internet in modo da poter utilizzare il nostro Rasp Pi con facilità e senza alcun problema.

7. Cavo HDMI (opzionale, a tua scelta)

È un po' complicato. Puoi avere il potere di collegare un altro monitor nel caso in cui lo desideri o è molto conveniente per te stesso effettuando una connessione Pi senza testa con il tuo PC / laptop.

Passaggio 2: connessioni hardware per mettere insieme il circuito

Connessioni hardware per mettere insieme il circuito
Connessioni hardware per mettere insieme il circuito
Connessioni hardware per mettere insieme il circuito
Connessioni hardware per mettere insieme il circuito

Realizzare il circuito secondo lo schema mostrato. In generale i collegamenti sono molto semplici. Segui le istruzioni e le immagini e non dovresti avere problemi.

Durante la pianificazione, abbiamo esaminato l'hardware e la codifica, nonché le basi dell'elettronica. Volevamo progettare un semplice schema elettronico per questo progetto. Nel diagramma, puoi notare le diverse parti, i componenti di alimentazione e il sensore I²C che seguono i protocolli di comunicazione I²C. Si spera che questo illustri quanto sia semplice l'elettronica per questo progetto.

Collegamento di Raspberry Pi e I2C Shield

Prima di tutto prendi il Raspberry Pi e posizionaci sopra l'I²C Shield. Premi delicatamente lo scudo (vedi foto).

Collegamento del sensore e Raspberry Pi

Prendi il sensore e collega il cavo I²C con esso. Assicurati che l'uscita I²C si colleghi SEMPRE all'ingresso I²C. Lo stesso sarà seguito dal Raspberry Pi con lo shield I²C montato sopra. Abbiamo l'I²C Shield e i cavi di collegamento I²C dalla nostra parte come un grande vantaggio in quanto ci rimane solo l'opzione plug and play. Niente più pin e problemi di cablaggio e quindi la confusione è sparita. Che sollievo immaginarti nella rete di fili e entrarci dentro. Solo il semplice processo che abbiamo menzionato.

Nota: il filo marrone dovrebbe sempre seguire la connessione di terra (GND) tra l'uscita di un dispositivo e l'ingresso di un altro dispositivo

La connettività Internet è vitale

Hai una scelta qui in realtà. Puoi collegare Raspberry Pi con il cavo LAN o l'adattatore wireless Nano USB per la connettività WiFi. Ad ogni modo, ha lo scopo principale che è quello di connettersi a Internet.

Alimentazione del circuito

Collega il cavo Micro USB alla presa di alimentazione di Raspberry Pi. Accendilo e siamo a posto.

Connessione allo schermo

Possiamo collegare il cavo HDMI a un nuovo monitor o creare il nostro Pi senza testa che è creativo ed economico utilizzando l'accesso remoto come SSH/PuTTY. (So che non siamo finanziati come un'organizzazione segreta)

Passaggio 3: programmazione Raspberry Pi in Python

Programmazione Raspberry Pi in Python
Programmazione Raspberry Pi in Python

Il codice Python per il sensore Raspberry Pi e MPL3115A2. È disponibile nel nostro repository Github.

Prima di passare al codice, assicurati di leggere le istruzioni fornite nel file Leggimi e imposta il tuo Raspberry Pi in base ad esso. Ci vorrà solo un momento per farlo.

L'altitudine viene calcolata dalla pressione utilizzando l'equazione seguente:

h = 44330,77 {1 - (p / p0) ^ 0,1902632} + OFF_H (valore di registro)

Dove p0 = pressione al livello del mare (101326 Pa) e h è in metri. L'MPL3115A2 utilizza questo valore poiché il registro di offset è definito come 2 Pascal per LSB.

Il codice è chiaramente di fronte a te ed è nella forma più semplice che puoi immaginare e non dovresti avere problemi.

Puoi anche copiare il codice Python funzionante per questo sensore da qui.

# Distribuito con una licenza di libero arbitrio.# 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 I2C MPL3115A2_I2CS disponibile da ControlEverything.com. #

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 registro di configurazione 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 # status, tHeight MSB1, tHeight MSB, tHeight LSB, temp MSB, temp LSB data = bus.read_i2c_block_data(0x60, 0x00, 6)

# Converti i dati a 20 bit

tHeight = ((data[1] * 65536) + (data[2] * 256) + (data[3] & 0xF0)) / 16 temp = ((data[4] * 256) + (data[5] & 0xF0)) / 16 altitudine = tHeight / 16,0 cTemp = temp / 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 data = 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 Celsius: %.2f C" %cTemp print "Temperatura in Fahrenheit: %.2f F" %fTemp

Passaggio 4: la praticità del codice (test)

La praticità del codice (test)
La praticità del codice (test)

Ora scarica (o git pull) il codice e aprilo nel Raspberry Pi.

Esegui i comandi per compilare e caricare il codice nel terminale e vedere l'output su Monitor. Dopo pochi secondi verranno visualizzati tutti i parametri. Dopo esserti assicurato che tutto funzioni senza intoppi, puoi portare questo progetto in un progetto più grande.

Passaggio 5: applicazioni e funzionalità

L'uso comune del sensore I²C dell'altimetro di precisione MPL3115A2 è in applicazioni come mappa (mappa assistita, navigazione), bussola magnetica o GPS (GPS Dead Reckoning, miglioramento GPS per servizi di emergenza), altimetria ad alta precisione, smartphone/tablet, altimetria elettronica personale e Satelliti (Stazioni meteorologiche/Previsioni).

Per es. un progetto per realizzare un altimetro elettronico personale che misura altitudine, pressione atmosferica, temperatura utilizzando Raspberry Pi. L'altimetro per l'elettronica personale è un progetto piuttosto veloce da costruire. Ci vorranno solo pochi istanti se hai tutte le parti e non improvvisi (ovviamente puoi!). Un altimetro a pressione è un altimetro che si trova nella maggior parte degli aerei e i paracadutisti usano versioni da polso per scopi simili. Gli escursionisti e gli alpinisti utilizzano altimetri da polso o portatili.

Passaggio 6: conclusione

Spero che questo progetto ispiri ulteriori sperimentazioni. Questo sensore I²C è incredibilmente versatile, economico e accessibile. Poiché è un programma estremamente mutevole, ci sono modi interessanti per estendere questo progetto e renderlo ancora migliore. Ad esempio, l'altimetro è uno strumento opzionale nei veicoli fuoristrada per aiutare nella navigazione. Alcune auto di lusso ad alte prestazioni che non sono mai state concepite per lasciare strade asfaltate, utilizzano questa tecnologia. Per tua comodità, abbiamo un interessante video tutorial su YouTube che potrebbe dare una mano alla tua esplorazione. Spero che questo progetto ispiri ulteriori sperimentazioni.

Consigliato: