Sadržaj:

Koristeći Raspberry Pi, mjerite nadmorsku visinu, pritisak i temperaturu s MPL3115A2: 6 koraka
Koristeći Raspberry Pi, mjerite nadmorsku visinu, pritisak i temperaturu s MPL3115A2: 6 koraka

Video: Koristeći Raspberry Pi, mjerite nadmorsku visinu, pritisak i temperaturu s MPL3115A2: 6 koraka

Video: Koristeći Raspberry Pi, mjerite nadmorsku visinu, pritisak i temperaturu s MPL3115A2: 6 koraka
Video: Extract GPS location in Arduino with Ublox Neo-6 and Neo 7m GPS modules 2024, Novembar
Anonim
Image
Image
Neophodna oprema koja nam je potrebna
Neophodna oprema koja nam je potrebna

Znajte šta posedujete i znajte zašto to posedujete

To je intrigantno. Živimo u doba internetske automatizacije koja se uranja u mnoštvo novih aplikacija. Kao ljubitelji računara i elektronike, puno smo naučili s Raspberry Pi -jem i odlučili spojiti svoja interesovanja. Ovaj projekt traje oko sat vremena ako ste tek počeli koristiti I²C veze i postavljanje softvera, a to je odličan način za proširenje mogućnosti MPL3115A2 pomoću Raspberry Pi u Javi.

Korak 1: Neophodna oprema koja nam je potrebna

Neophodna oprema koja nam je potrebna
Neophodna oprema koja nam je potrebna
Neophodna oprema koja nam je potrebna
Neophodna oprema koja nam je potrebna
Neophodna oprema koja nam je potrebna
Neophodna oprema koja nam je potrebna

1. Malina Pi

Prvi korak je bio dobivanje Raspberry Pi ploče. Ovog malog genija koriste hobisti, učitelji i stvaraju inovativna okruženja.

2. I2C štit za Raspberry Pi

INPI2 (I2C adapter) pruža Raspberry Pi 2/3 i I²C port za upotrebu sa više I2C uređaja. Dostupno je u trgovini Dcube.

3. Visinomer, senzor pritiska i temperature, MPL3115A2

MPL3115A2 je MEMS senzor pritiska sa I²C interfejsom koji daje podatke o pritisku, nadmorskoj visini i temperaturi. Ovaj senzor koristi protokol I²2 za komunikaciju. Ovaj senzor smo kupili u Dcube Store -u.

4. Priključni kabel

Koristili smo I²C spojni kabel dostupan u Dcube trgovini.

5. Mikro USB kabl

Raspberry Pi se napaja putem mikro USB priključka.

6. Poboljšanje pristupa internetu - Ethernet kabel/WiFi modul

Jedna od prvih stvari koju ćete htjeti učiniti je da povežete svoj Raspberry Pi s internetom. Možete se povezati pomoću Ethernet kabla ili sa bežičnim USB Nano WiFi adapterom.

7. HDMI kabel (opcionalno, vaš izbor)

Raspberry Pi možete povezati s monitorom pomoću HDMI kabela. Takođe, možete daljinski pristupiti svom Raspberry Pi -u koristeći SSH/PuTTY.

Korak 2: Hardverske veze za sastavljanje kruga

Hardverske veze za sastavljanje kola
Hardverske veze za sastavljanje kola
Hardverske veze za sastavljanje kola
Hardverske veze za sastavljanje kola

Napravite krug prema prikazanoj shemi. Općenito, veze su vrlo jednostavne. Slijedite upute i slike iznad i ne biste trebali imati problema. Prilikom planiranja, bavili smo se hardverom i kodiranjem, kao i osnovama elektronike. Željeli smo osmisliti jednostavnu elektroničku shemu za ovaj projekt. Na dijagramu možete primijetiti različite dijelove, komponente napajanja i I²C senzor slijedeći I²C komunikacijske protokole. Nadajmo se da ovo ilustrira koliko je jednostavna elektronika za ovaj projekt.

Povezivanje Raspberry Pi i I2C štita

U tu svrhu Raspberry Pi postavite I²C štit na njega. Lagano pritisnite štit (pogledajte sliku).

Povezivanje senzora i Raspberry Pi

Uzmite senzor i spojite I²C kabel s njim. Uvjerite se da je I²C izlaz UVIJEK spojen na I²C ulaz. Isto bi trebalo slijediti i Raspberry Pi sa I²C štitom montiranim preko njega. Imamo I²C štit i I²C spojne kabele sa naše strane kao veliku prednost jer nam preostaje samo mogućnost plug and play. Nema više problema sa iglama i ožičenjem pa je zabuna nestala. Kakvo je olakšanje samo zamisliti sebe u mreži žica i ući u to. Tako jednostavno!

Napomena: Smeđa žica uvijek treba slijediti vezu uzemljenja (GND) između izlaza jednog uređaja i ulaza drugog uređaja

Povezivanje s internetom je presudno

Da bi naš projekt bio uspješan, potreban nam je pristup internetu za naš Raspberry Pi. U ovom slučaju imate opcije poput povezivanja Ethernet (LAN) kabela. Također, kao alternativan, ali impresivan način korištenja WiFi adaptera.

Napajanje strujnog kola

Uključite mikro USB kabel u utičnicu za napajanje Raspberry Pi. Uključite ga i voila, spremni smo!

Povezivanje sa ekranom

Možemo imati HDMI kabel spojen na monitor ili možemo biti malo inovativni u izradi našeg Pi bez glave (koristeći -SSH/PuTTY) što pomaže u smanjenju dodatnih troškova jer smo nekako hobisti.

Kad navika počne koštati, to se zove hobi

Korak 3: Programiranje Raspberry Pi u Javi

Programiranje Raspberry Pi u Javi
Programiranje Raspberry Pi u Javi

Java kod za Raspberry Pi i MPL3115A2 senzor. Dostupno je u našem Github spremištu.

Prije nego što pređete na kôd, svakako pročitajte upute date u datoteci Readme i postavite Raspberry Pi prema njemu. Trebat će samo trenutak da to učinite. Nadmorska visina se izračunava iz pritiska pomoću jednadžbe u nastavku:

h = 44330,77 {1 - (p / p0) ^ 0,1902632} + OFF_H (Vrijednost registra)

gdje je p0 = pritisak na razini mora (101326 Pa), a h je u metrima. MPL3115A2 koristi ovu vrijednost budući da je registar pomaka definiran kao 2 paskala po LSB -u. Kôd je jasno pred vama i u najjednostavnijem obliku koji možete zamisliti i ne biste trebali imati problema.

Ovdje možete kopirati i radni Java kod za ovaj senzor.

// Distribuirano s licencom za slobodnu volju.// Koristite ga kako god želite, profitno ili besplatno, pod uvjetom da se uklapa u licence povezanih djela. // MPL3115A2 // Ovaj kod je dizajniran za rad s MPL3115A2_I2CS I2C mini modulom dostupnim na stranici ControlEverything.com. //

import com.pi4j.io.i2c. I2CBus;

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

javna klasa MPL3115A2

{public static void main (String args ) throws Exception {// Kreirajte I2C sabirnicu I2CBus sabirnicu = I2CFactory.getInstance (I2CBus. BUS_1); // Nabavite I2C uređaj, MPL3115A2 I2C adresa je 0x60 (96) I2CDevice uređaj = Bus.getDevice (0x60); // Odabir upravljačkog registra // Aktivni način rada, OSR = 128, način rada visinomera device.write (0x26, (byte) 0xB9); // Odabir registra konfiguracije podataka // Omogućen događaj spremnosti podataka za nadmorsku visinu, pritisak, temperaturu device.write (0x13, (bajt) 0x07); // Odabir upravljačkog registra // Aktivni način rada, OSR = 128, način rada visinomera device.write (0x26, (bajt) 0xB9); Thread.sleep (1000);

// Očitavanje 6 bajtova podataka s adrese 0x00 (00)

// status, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb bajt podaci = novi bajt [6]; device.read (0x00, podaci, 0, 6);

// Pretvorimo podatke u 20-bitne

int tHeight = ((((podaci [1] & 0xFF) * 65536) + ((podaci [2] & 0xFF) * 256) + (podaci [3] & 0xF0)) / 16); int temp = ((podaci [4] * 256) + (podaci [5] & 0xF0)) / 16; dvostruka nadmorska visina = tHeight / 16,0; dvostruki cTemp = (temp / 16.0); dvostruki fTemp = cTemp * 1,8 + 32;

// Odabir kontrolnog registra

// Aktivni način rada, OSR = 128, način rada barometra device.write (0x26, (bajt) 0x39); Thread.sleep (1000); // Čitanje 4 bajta podataka s adrese 0x00 (00) // status, pres msb1, pres msb, pres lsb device.read (0x00, data, 0, 4);

// Pretvorimo podatke u 20-bitne

int pres = (((podaci [1] & 0xFF) * 65536) + ((podaci [2] & 0xFF) * 256) + (podaci [3] & 0xF0)) / 16; dvostruki pritisak = (pres / 4,0) / 1000,0; // Izlaženje podataka na ekran System.out.printf ("Pritisak: %.2f kPa %n", pritisak); System.out.printf ("Nadmorska visina: %.2f m %n", nadmorska visina); System.out.printf ("Temperatura u Celzijusima: %.2f C %n", cTemp); System.out.printf ("Temperatura u Fahrenheitu: %.2f F %n", fTemp); }}

Korak 4: Praktičnost kodeksa (rad)

Praktičnost Kodeksa (rad)
Praktičnost Kodeksa (rad)

Sada preuzmite (ili git povucite) kôd i otvorite ga u Raspberry Pi. Pokrenite naredbe za kompajliranje i učitavanje koda na terminalu i pogledajte izlaz na monitoru. Nakon nekoliko sekundi prikazat će se svi parametri. Nakon što se uvjerite da sve radi glatko, ovaj projekt možete pretvoriti u veći projekt.

Korak 5: Aplikacije i značajke

Uobičajena upotreba senzora preciznog visinomjera MPL3115A2 je u aplikacijama kao što su Karta (Map Assist, Navigacija), Magnetski kompas ili GPS (GPS mrtvo računanje, GPS poboljšanje za hitne službe), Altimetrija visoke tačnosti, Pametni telefoni/Tableti, Altimetrija lične elektronike i Sateliti (oprema meteoroloških stanica/predviđanje).

Za npr. Pomoću ovog senzora i Rasp Pi -a možete izgraditi digitalni vizualni visinomjer, najvažniji dio opreme za padobranstvo, koji može mjeriti nadmorsku visinu, tlak zraka i temperaturu. Možete dodati gazu za vjetar i druge senzore pa učinite zanimljivijim.

Korak 6: Zaključak

Budući da je program nevjerojatno prilagodljiv, postoji mnogo zanimljivih načina na koje možete proširiti ovaj projekt i učiniti ga još boljim. Na primjer, visinomjer/interferometar uključivao bi nekoliko visinomjera postavljenih na jarbole koji bi istovremeno mjerili, čime bi se osiguralo neprekidno pokrivanje širokog područja s jednim ili više visinomjera. Na YouTubeu imamo zanimljiv video vodič koji vam može pomoći u boljem razumijevanju ovog projekta.

Preporučuje se: