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: Koristeći Raspberry Pi, mjerite nadmorsku visinu, pritisak i temperaturu s MPL3115A2: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:06
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
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
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
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)
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:
M5STACK Kako prikazati temperaturu, vlažnost i pritisak na M5StickC ESP32 pomoću Visuina - jednostavno za napraviti: 6 koraka
M5STACK Kako prikazati temperaturu, vlažnost i pritisak 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 senzora (DHT12, BMP280, BMM150)
Nadmorska visina, pritisak i temperatura pomoću Raspberry Pi sa MPL3115A2: 6 koraka
Nadmorska visina, pritisak i temperatura pomoću Raspberry Pi sa 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 sa Raspberry Pi -em i odlučili da napravimo zanimljive projekte koristeći ovo znanje. U ovom projektu ćemo
Mjerite mrežnu frekvenciju pomoću Arduina: 7 koraka (sa slikama)
Izmjerite mrežnu frekvenciju pomoću Arduina: 3. aprila, premijer Indije, Shri. Narendra Modi apelovao je na Indijance da ugase svjetla i upale lampu (Diya) u 21:00 5. aprila u znak obilježavanja borbe Indije protiv korona virusa. Odmah nakon objave nastao je veliki kaos
Koristeći Raspberry Pi, procijenite vlažnost i temperaturu pomoću SI7006: 6 koraka
Koristeći Raspberry Pi, procijenite vlažnost i temperaturu pomoću SI7006: Budući da smo entuzijasti za Raspberry Pi, smislili smo neke spektakularnije eksperimente s njim. U ovoj kampanji mjerit ćemo temperaturu i vlažnost koju je potrebno kontrolirati, koristeći Raspberry Pi i SI7006, Senzor vlažnosti i temperature
Obuhvatanje vode sa metrom u odnosu na visinu: 5 koraka
Obuhvatanje vode u vodi sa Verschillend Zoutgehalte: Plava energija je energija koja se nalazi u opticaju vode sa vodom u odnosu na vodu. In deze oppstelling gaan we de natrium en de chloride ionen scheiden. De opstelling wordt gevormd door 3 watermassa's, die gescheiden zijn door ionwisselende me