Sadržaj:
- Korak 1: Neophodna oprema koja nam je potrebna
- Korak 2: Hardverske veze za sastavljanje kruga
- Korak 3: Programiranje Raspberry Pi u Javi
- Korak 4: Praktičnost Kodeksa (rad)
- Korak 5: Aplikacije i značajke
- Korak 6: Zaključak
Video: Korištenjem Raspberry Pi mjerite nadmorsku visinu, tlak i temperaturu s MPL3115A2: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
Znajte što posjedujete i znajte zašto to posjedujete
To je intrigantno. Živimo u doba internetske automatizacije koja se uranja u mnoštvo novih aplikacija. Kao ljubitelji računala 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 sjajan način za proširenje mogućnosti MPL3115A2 pomoću Raspberry Pi u Javi.
Korak 1: Neophodna oprema koja nam je potrebna
1. Malina Pi
Prvi korak bio je dobivanje Raspberry Pi ploče. Ovog malog genija koriste hobisti, učitelji i u stvaranju inovativnih okruženja.
2. I2C štit za Raspberry Pi
INPI2 (I2C adapter) osigurava Raspberry Pi 2/3 an I²C priključak za upotrebu s više I2C uređaja. Dostupno je u trgovini Dcube.
3. Visinomjer, osjetnik tlaka i temperature, MPL3115A2
MPL3115A2 je MEMS osjetnik tlaka s I²C sučeljem za podatke o tlaku, nadmorskoj visini i temperaturi. Ovaj senzor koristi protokol I²2 za komunikaciju. Ovaj smo senzor kupili u trgovini Dcube.
4. Spojni kabel
Koristili smo I²C spojni kabel dostupan u Dcube trgovini.
5. Mikro USB kabel
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 kabela ili s bežičnim USB Nano WiFi adapterom.
7. HDMI kabel (izborno, vaš izbor)
Raspberry Pi možete povezati s monitorom pomoću HDMI kabela. Također, možete daljinski pristupiti svom Raspberry Pi -u koristeći SSH/PuTTY.
Korak 2: Hardverske veze za sastavljanje kruga
Napravite krug prema prikazanoj shemi. Općenito, veze su vrlo jednostavne. Slijedite gornje upute i slike i ne biste trebali imati problema. Tijekom planiranja, bavili smo se hardverom i kodiranjem, kao i osnovama elektronike. Željeli smo osmisliti jednostavnu shemu elektronike 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 i postavite I²C štit na njega. Lagano pritisnite štit (vidi sliku).
Spajanje senzora i Raspberry Pi
Uzmite senzor i spojite I²C kabel s njim. Provjerite je li izlaz I²C UVIJEK spojen na ulaz I²C. Isto treba slijediti i Raspberry Pi s I²C štitom montiranim preko njega. Imamo I²C štit i I²C spojne kabele sa svoje strane kao vrlo 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 bi trebala 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šu Raspberry Pi. U ovom slučaju imate mogućnosti poput povezivanja Ethernet (LAN) kabela. Također, kao alternativan, ali impresivan način korištenja WiFi adaptera.
Napajanje strujnog kruga
Priključite mikro USB kabel u utičnicu za napajanje Raspberry Pi. Uključite ga i voila, spremni smo!
Spajanje na zaslon
HDMI kabel možemo povezati s monitorom ili možemo biti pomalo inovativni u izradi Pi bez glave (koristeći -SSH/PuTTY) što pomaže smanjiti dodatne troškove jer smo nekako hobisti.
Kad navika počne koštati, to se zove hobi
Korak 3: Programiranje Raspberry Pi u Javi
Java kod za senzor Raspberry Pi i MPL3115A2. Dostupno je u našem Github spremištu.
Prije nego prijeđ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 tlaka pomoću jednadžbe u nastavku:
h = 44330,77 {1 - (p / p0) ^ 0,1902632} + OFF_H (Vrijednost registra)
gdje je p0 = tlak 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 je obliku koji možete zamisliti i ne biste trebali imati problema.
Ovdje možete kopirati i radni Java kôd za ovaj senzor.
// Distribuirano s licencom za slobodnu volju.// Koristite ga na koji god način ž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. //
uvoz com.pi4j.io.i2c. I2CBus;
uvoz com.pi4j.io.i2c. I2CDevice; uvoz com.pi4j.io.i2c. I2CFactory; import java.io. IOException;
javna klasa MPL3115A2
{public static void main (String args ) throws Exception {// Stvori I2C sabirnicu I2CBus sabirnicu = I2CFactory.getInstance (I2CBus. BUS_1); // Dohvati 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, uređaj za rad u visinomjeru.write (0x26, (byte) 0xB9); // Odabir registra konfiguracije podataka // Omogućen događaj spremnosti podataka za nadmorsku visinu, tlak, temperaturu device.write (0x13, (byte) 0x07); // Odabir upravljačkog registra // Aktivni način rada, OSR = 128, uređaj za rad u visinomjeru.write (0x26, (byte) 0xB9); Navoj.spavanje (1000);
// Očitavanje 6 bajtova podataka s adrese 0x00 (00)
// status, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb byte data = 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;
// Odaberite kontrolni registar
// Aktivni način rada, OSR = 128, uređaj u načinu rada barometra.write (0x26, (byte) 0x39); Navoj.spavanje (1000); // Očitavanje 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 tlak = (pres / 4,0) / 1000,0; // Izlaženje podataka na zaslon System.out.printf ("Tlak: %.2f kPa %n", tlak); 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)
Sada preuzmite (ili git povucite) kôd i otvorite ga u Raspberry Pi. Pokrenite naredbe za kompajliranje i prijenos koda na terminalu i pogledajte izlaz na monitoru. Nakon nekoliko sekundi prikazat će se svi parametri. Nakon što se pobrinete da sve radi glatko, ovaj projekt možete pretvoriti u veći projekt.
Korak 5: Aplikacije i značajke
Uobičajena uporaba 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 točnosti, Pametni telefoni/Tableti, Altimetrija osobne 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 istodobno dobivali mjerenja, č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čeni:
M5STACK Kako prikazati temperaturu, vlažnost i tlak na M5StickC ESP32 pomoću Visuina - jednostavno za napraviti: 6 koraka
M5STACK Kako prikazati temperaturu, vlažnost i tlak na M5StickC ESP32 pomoću Visuina - jednostavno za napraviti: U ovom ćemo vodiču naučiti kako programirati ESP32 M5Stack StickC s Arduino IDE i Visuino za prikaz temperature, vlažnosti i tlaka pomoću ENV osjetnika (DHT12, BMP280, BMM150)
Nadmorska visina, tlak i temperatura pomoću Raspberry Pi s MPL3115A2: 6 koraka
Nadmorska visina, tlak i temperatura pomoću Raspberry Pi s MPL3115A2: Zvuči zanimljivo. To je sasvim moguće u ovo doba kada svi ulazimo u IoT generaciju. Kao nakaza za elektroniku, igrali smo se s Raspberry Pi i odlučili smo napraviti zanimljive projekte koristeći to znanje. U ovom projektu ćemo
Mjerite mrežnu frekvenciju pomoću Arduina: 7 koraka (sa slikama)
Izmjerite mrežnu frekvenciju pomoću Arduina: 3. travnja premijer Indije, Shri. Narendra Modi apelirao je na Indijance da isključe svjetla i zapale lampu (Diya) u 21:00 5. travnja u znak obilježavanja borbe Indije protiv korona virusa. Odmah nakon objave nastao je veliki kaos
Mjerite tlak s vašim mikro: bit: 5 koraka (sa slikama)
Mjerite tlak pomoću Micro: bita: Sljedeće upute opisuju jednostavan za izradu i jeftin uređaj za mjerenje tlaka i demonstriranje Boyleova zakona, koristeći micro: bit u kombinaciji s BMP280 senzorom tlaka/temperature. Dok ova štrcaljka/pritisak s
Nabavite senzor za visinu težine s vage za prtljagu za svoj Arduino projekt: 4 koraka
Izvadite osjetnik težine za vješanje iz ljestvice prtljage za svoj Arduino projekt: U ovom vodiču pokazat ću vam kako iz jeftine, uobičajene vage za prtljagu/ribolov i često korištenog HX711 ADC modula izvući osjetnik za viseću težinu za Arduino projekt. Pozadina: Za projekt mi je trebao senzor za mjerenje određene težine koja je