Cuprins:
Video: Raspberry Pi - Senzor de altimetru de precizie MPL3115A2 Tutorial Java: 4 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:43
MPL3115A2 folosește un senzor de presiune MEMS cu o interfață I2C pentru a furniza date precise de presiune / altitudine și temperatură. Ieșirile senzorului sunt digitalizate printr-un ADC de 24 biți de înaltă rezoluție. Procesarea internă elimină sarcinile de compensare din sistemul MCU gazdă. Este capabil să detecteze o schimbare de numai 0,05 kPa care echivalează cu o schimbare de altitudine de 0,3 m. Iată demonstrația sa cu raspberry pi folosind cod java.
Pasul 1: De ce ai nevoie..
1. Raspberry Pi
2. MPL3115A2
3. Cablu I²C
4. Scut I²C pentru Raspberry Pi
5. Cablu Ethernet
Pasul 2: Conexiuni:
Luați un scut I2C pentru raspberry pi și împingeți-l ușor peste pinii gpio ai raspberry pi.
Apoi conectați capătul cablului I2C la senzorul MPL3115A2 și celălalt capăt la ecranul I2C.
De asemenea, conectați cablul Ethernet la pi sau puteți utiliza un modul WiFi.
Conexiunile sunt afișate în imaginea de mai sus.
Pasul 3: Cod:
Codul java pentru MPL3115A2 poate fi descărcat din depozitul nostru github- Magazin DCUBE.
Iată linkul pentru același lucru:
github.com/DcubeTechVentures/MPL3115A2/tree/master/Java
Am folosit biblioteca pi4j pentru cod java, pașii pentru instalarea pi4j pe raspberry pi sunt descriși aici:
pi4j.com/install.html
De asemenea, puteți copia codul de aici, acesta este dat după cum urmează:
// Distribuit cu o licență de liberă voință.
// Folosiți-l în orice mod doriți, profit sau gratuit, cu condiția să se încadreze în licențele lucrărilor sale asociate.
// MPL3115A2
// Acest cod este conceput pentru a funcționa cu Mini-modulul MPL3115A2_I2CS I2C disponibil de la
import com.pi4j.io.i2c. I2CBus;
import com.pi4j.io.i2c. I2CDevice;
import com.pi4j.io.i2c. I2CFactory;
import java.io. IOException;
clasa publică MPL3115A2
{
public static main principal (String args ) aruncă Excepție
{
// Creați autobuzul I2C
I2CBus Bus = I2CFactory.getInstance (I2CBus. BUS_1);
// Obțineți dispozitivul I2C, adresa I2C MPL3115A2 este 0x60 (96)
I2CDevice device = Bus.getDevice (0x60);
// Selectați registrul de control
// Mod activ, OSR = 128, modul altimetru
device.write (0x26, (octet) 0xB9);
// Selectați registrul de configurare a datelor
// Eveniment pregătit pentru date activat pentru altitudine, presiune, temperatură
device.write (0x13, (octet) 0x07);
// Selectați registrul de control
// Mod activ, OSR = 128, modul altimetru
device.write (0x26, (octet) 0xB9);
Thread.sleep (1000);
// Citiți 6 octeți de date de la adresa 0x00 (00)
// stare, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
octet date = octet nou [6];
device.read (0x00, date, 0, 6);
// Convertiți datele în 20 de biți
int tHeight = ((((date [1] & 0xFF) * 65536) + ((data [2] & 0xFF) * 256) + (data [3] & 0xF0)) / 16);
int temp = ((date [4] * 256) + (date [5] & 0xF0)) / 16;
altitudine dublă = tHeight / 16,0;
cTemp dublu = (temp / 16.0);
fTemp dublu = cTemp * 1,8 + 32;
// Selectați registrul de control
// Mod activ, OSR = 128, mod barometru
device.write (0x26, (octet) 0x39);
Thread.sleep (1000);
// Citiți 4 octeți de date de la adresa 0x00 (00)
// status, pres msb1, pres msb, pres lsb
device.read (0x00, date, 0, 4);
// Convertiți datele în 20 de biți
int pres = (((data [1] & 0xFF) * 65536) + ((data [2] & 0xFF) * 256) + (data [3] & 0xF0)) / 16;
presiune dublă = (pres / 4.0) / 1000.0;
// Ieșire date pe ecran
System.out.printf ("Presiune:%.2f kPa% n", presiune);
System.out.printf ("Altitudine:%.2f m% n", altitudine);
System.out.printf ("Temperatura în grade Celsius:%.2f C% n", cTemp);
System.out.printf ("Temperatura în Fahrenheit:%.2f F% n", fTemp);
}
}
Pasul 4: Aplicații:
Diverse aplicații ale MPL3115A2 includ altimetrie de înaltă precizie, telefoane inteligente / tablete, altimetrie electronică personală etc. Poate fi, de asemenea, încorporată în GPS Dead Reckoning, GPS Enhancement for Emergency Services, Map Assist, Navigation, precum și echipamente pentru stațiile meteorologice.
Recomandat:
Altimetru avion RC (compatibil cu telemetria Spektrum): 7 pași
RC Plane Altimeter (compatibil cu Spektrum Telemetry): Am realizat acest altimetru, astfel încât pilotul să știe că se află sub limita de 400 de picioare a aeronavelor RC din SUA. Prietenul meu era îngrijorat, deoarece nu putea spune cu certitudine că avea întotdeauna sub 400 ft și dorea asigurarea suplimentară că un senzor va
Altimetru (contor de altitudine) pe baza presiunii atmosferice: 7 pași (cu imagini)
Altimetru (contor de altitudine) pe baza presiunii atmosferice: [Edit]; Vedeți versiunea 2 la pasul 6 cu introducerea manuală a altitudinii de bază. Aceasta este descrierea clădirii unui altimetru (contor de altitudine) bazat pe un Arduino Nano și un senzor de presiune atmosferică Bosch BMP180. Designul este simplu, dar măsurătorile
Dirt-O-Meter ieftin - Altimetru audibil pe bază de Arduino de 9 USD: 4 pași (cu imagini)
Dirt Cheap Dirt-O-Meter - Altimetru audibil bazat pe Arduino de 9 dolari: Dytters (A.K.A Audimetre audibile) au salvat viețile parașutistilor atât de mulți ani. Acum, Audible Abby le va economisi și ei bani. Dytters-urile de bază au patru alarme, una la urcare și trei la coborâre. În călătoria cu avionul, parașutistii trebuie să știe când
Setarea DS3231 RTC (ceas în timp real) cu precizie, rapiditate și automatizare folosind Java (+ -1s): 3 pași
Setarea DS3231 RTC (ceas în timp real) cu precizie, rapiditate și automatizare folosind Java (+ -1s): acest instructable vă va arăta cum să setați ora pe un ceas DS3231 în timp real folosind un Arduino și o mică aplicație Java care utilizează conexiunea serială a Arduino. Logica de bază a acestui program: 1. Arduino trimite o cerere în serie
Compas LED și altimetru: 7 pași (cu imagini)
LED Busolă și Altimetru: Obiectele cu LED-uri mă fascinează întotdeauna. Prin urmare, acest proiect de a combina popularul senzor digital de busolă HMC5883L cu 48 de LED-uri. Prin plasarea LED-urilor într-un cerc, ledul care luminează este direcția în care vă îndreptați. La fiecare 7,5 grade va dr