Sommario:

Utilizzo di Raspberry Pi, misurazione di altitudine, pressione e temperatura con MPL3115A2: 6 passaggi
Utilizzo di Raspberry Pi, misurazione di altitudine, pressione e temperatura con MPL3115A2: 6 passaggi

Video: Utilizzo di Raspberry Pi, misurazione di altitudine, pressione e temperatura con MPL3115A2: 6 passaggi

Video: Utilizzo di Raspberry Pi, misurazione di altitudine, pressione e temperatura con MPL3115A2: 6 passaggi
Video: MPL3115A2 Test sensore barometro, altimetro e termometro 2024, Dicembre
Anonim
Image
Image
Attrezzatura indispensabile di cui abbiamo bisogno
Attrezzatura indispensabile di cui abbiamo bisogno

Sapere cosa possiedi e sapere perché lo possiedi

È intrigante. Viviamo nell'era dell'automazione di Internet mentre si immerge in una pletora di nuove applicazioni. Come appassionati di computer ed elettronica, abbiamo imparato molto con il Raspberry Pi e abbiamo deciso di fondere i nostri interessi. Questo progetto richiede circa un'ora se non conosci le connessioni I²C e la configurazione del software ed è un ottimo modo per espandere le capacità di MPL3115A2 con Raspberry Pi in Java.

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

1. Lampone Pi

Il primo passo è stato ottenere una scheda Raspberry Pi. Questo piccolo genio viene utilizzato da hobbisti, insegnanti e nella creazione di ambienti innovativi.

2. Scudo I2C 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²2 per comunicare. Abbiamo acquistato questo sensore da Dcube Store.

4. Cavo di collegamento

Abbiamo utilizzato il cavo di collegamento I²C disponibile presso Dcube Store.

5. Cavo micro USB

Il Raspberry Pi è alimentato da alimentazione micro USB.

6. Miglioramento dell'accesso a Internet: cavo Ethernet/modulo WiFi

Una delle prime cose che vorrai fare è connettere il tuo Raspberry Pi a Internet. Puoi connetterti utilizzando un cavo Ethernet o con un adattatore Wireless USB Nano WiFi.

7. Cavo HDMI (opzionale, a tua scelta)

Puoi collegare Raspberry Pi a un monitor utilizzando un cavo HDMI. Inoltre, puoi accedere in remoto al tuo Raspberry Pi usando SSH/PuTTY.

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 abbastanza semplici. Segui le istruzioni e le immagini sopra 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

Per questo, 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. Semplice come questo!

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 è fondamentale

Per rendere il nostro progetto un successo, abbiamo bisogno di un accesso a Internet per il nostro Raspberry Pi. In questo, hai opzioni come il collegamento di un cavo Ethernet (LAN). Inoltre, come modo alternativo ma impressionante per utilizzare un adattatore WiFi.

Alimentazione del circuito

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

Connessione allo schermo

Possiamo avere il cavo HDMI collegato a un monitor o possiamo essere un po' innovativi per realizzare il nostro Pi senza testa (usando -SSH/PuTTY) che aiuta a ridurre i costi aggiuntivi perché siamo in qualche modo degli hobbisti.

Quando un'abitudine inizia a costare denaro, si chiama hobby

Passaggio 3: programmazione Raspberry Pi in Java

Programmazione Raspberry Pi in Java
Programmazione Raspberry Pi in Java

Il codice Java 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 Readme e di configurare 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 Java funzionante per questo sensore da qui.

// Distribuito con una licenza di libero arbitrio.// Usalo come vuoi, 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 su ControlEverything.com. //

import com.pi4j.io.i2c. I2CBus;

import com.pi4j.io.i2c. I2CDevice; import com.pi4j.io.i2c. I2CFactory; import java.io. IOException;

classe pubblica MPL3115A2

{ public static void main(String args) genera un'eccezione { // Crea bus I2C I2CBus Bus = I2CFactory.getInstance(I2CBus. BUS_1); // Ottieni dispositivo I2C, l'indirizzo I2C MPL3115A2 è 0x60(96) dispositivo I2CDevice = Bus.getDevice(0x60); // Seleziona registro di controllo // Modalità attiva, OSR = 128, modalità altimetro device.write(0x26, (byte)0xB9); // Seleziona registro configurazione dati // Evento pronto dati abilitato per altitudine, pressione, temperatura device.write(0x13, (byte)0x07); // Seleziona registro di controllo // Modalità attiva, OSR = 128, modalità altimetro device.write(0x26, (byte)0xB9); Thread.sleep(1000);

// Legge 6 byte di dati dall'indirizzo 0x00(00)

// status, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb byte data = new byte[6]; device.read(0x00, data, 0, 6);

// Converti i dati a 20 bit

int tHeight = ((((data[1] & 0xFF) * 65536) + ((data[2] & 0xFF) * 256) + (data[3] & 0xF0)) / 16); int temp = ((data[4] * 256) + (data[5] & 0xF0)) / 16; doppia altitudine = tHeight / 16,0; double cTemp = (temp / 16.0); doppia fTemp = cTemp * 1,8 + 32;

// Seleziona il registro di controllo

// Modalità attiva, OSR = 128, modalità barometro device.write(0x26, (byte)0x39); Thread.sleep(1000); // Legge 4 byte di dati dall'indirizzo 0x00(00) // status, pres msb1, pres msb, pres lsb device.read(0x00, data, 0, 4);

// Converti i dati a 20 bit

int pres = (((data[1] & 0xFF) * 65536) + ((data[2] & 0xFF) * 256) + (data[3] & 0xF0)) / 16; doppia pressione = (pres / 4.0) / 1000.0; // Invia i dati allo schermo System.out.printf("Pressure: %.2f kPa %n", pressure); System.out.printf("Altitudine: %.2f m %n", altitudine); System.out.printf("Temperatura in gradi Celsius: %.2f C %n", cTemp); System.out.printf("Temperatura in Fahrenheit: %.2f F %n", fTemp); } }

Fase 4: La praticità del codice (funzionante)

La praticità del codice (funzionante)
La praticità del codice (funzionante)

Ora scarica (o git pull) il codice e aprilo nel Raspberry Pi. Esegui i comandi per compilare e caricare il codice sul 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 dell'altimetro di precisione MPL3115A2 è in applicazioni come mappe (Map Assist, navigazione), bussola magnetica o GPS (GPS Dead Reckoning, GPS Enhancement per servizi di emergenza), altimetria ad alta precisione, smartphone/tablet, altimetria elettronica personale e Satelliti (apparecchiatura/previsione della stazione meteorologica).

Per es. Usando questo sensore e Rasp Pi, puoi costruire un altimetro visivo digitale, il pezzo più importante dell'attrezzatura per il paracadutismo, in grado di misurare l'altitudine, la pressione atmosferica e la temperatura. Puoi aggiungere una garza antivento e altri sensori in modo da renderlo più interessante.

Passaggio 6: conclusione

Poiché il programma è sorprendentemente personalizzabile, ci sono molti modi interessanti in cui puoi estendere questo progetto e renderlo ancora migliore. Ad esempio, un altimetro/interferometro includerebbe diversi altimetri montati su alberi che acquisirebbero misurazioni contemporaneamente, fornendo così una copertura di un'ampia area continua, singola o multi-altimetro. Abbiamo un interessante video tutorial su YouTube che può aiutarti nella migliore comprensione di questo progetto.

Consigliato: