Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
MPL3115A2 använder en MEMS -trycksensor med ett I2C -gränssnitt för att ge exakta tryck/höjd- och temperaturdata. Sensorutgångarna digitaliseras med en högupplöst 24-bitars ADC. Intern behandling tar bort kompensationsuppgifter från värd -MCU -systemet. Den kan upptäcka en förändring på endast 0,05 kPa vilket motsvarar en höjdförändring på 0,3 m. Här är dess demonstration med hallon pi med Java -kod.
Steg 1: Vad du behöver.. !
1. Hallon Pi
2. MPL3115A2
3. I²C -kabel
4. I²C -sköld för Raspberry Pi
5. Ethernet -kabel
Steg 2: Anslutningar:
Ta en I2C -sköld för hallonpi och tryck den försiktigt över gpio -stiften på hallonpi.
Anslut sedan den ena änden av I2C -kabeln till MPL3115A2 -sensorn och den andra änden till I2C -skärmen.
Anslut också Ethernet -kabeln till pi eller så kan du använda en WiFi -modul.
Anslutningar visas på bilden ovan.
Steg 3: Kod:
Java-koden för MPL3115A2 kan laddas ner från vårt github-arkiv- DCUBE Store.
Här är länken till samma:
github.com/DcubeTechVentures/MPL3115A2/tree/master/Java
Vi har använt pi4j -biblioteket för java -kod, stegen för att installera pi4j på hallon pi beskrivs här:
pi4j.com/install.html
Du kan också kopiera koden härifrån, den ges enligt följande:
// Distribueras med en fri vilja licens.
// Använd den hur du vill, vinst eller gratis, förutsatt att den passar i licensen för dess associerade verk.
// MPL3115A2
// Denna kod är utformad för att fungera med MPL3115A2_I2CS I2C Mini Module tillgänglig från
importera com.pi4j.io.i2c. I2CBus;
importera com.pi4j.io.i2c. I2CDenhet;
importera com.pi4j.io.i2c. I2CFactory;
importera java.io. IOException;
offentlig klass MPL3115A2
{
public static void main (String args ) kastar undantag
{
// Skapa I2C -buss
I2CBus Bus = I2CFactory.getInstance (I2CBus. BUS_1);
// Skaffa I2C -enhet, MPL3115A2 I2C -adress är 0x60 (96)
I2CDevice -enhet = Bus.getDevice (0x60);
// Välj kontrollregister
// Aktivt läge, OSR = 128, höjdmätarläge
device.write (0x26, (byte) 0xB9);
// Välj datakonfigurationsregister
// Dataklar händelse aktiverad för höjd, tryck, temperatur
device.write (0x13, (byte) 0x07);
// Välj kontrollregister
// Aktivt läge, OSR = 128, höjdmätarläge
device.write (0x26, (byte) 0xB9);
Tråd. Sover (1000);
// Läs 6 byte med data från adressen 0x00 (00)
// status, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
byte data = ny byte [6];
device.read (0x00, data, 0, 6);
// Konvertera data till 20-bitar
int tHeight = ((((data [1] & 0xFF) * 65536) + ((data [2] & 0xFF) * 256) + (data [3] & 0xF0)) / 16);
int temp = ((data [4] * 256) + (data [5] & 0xF0)) / 16;
dubbel höjd = tHöjd / 16,0;
dubbel cTemp = (temp / 16,0);
dubbel fTemp = cTemp * 1,8 + 32;
// Välj kontrollregister
// Aktivt läge, OSR = 128, barometerläge
device.write (0x26, (byte) 0x39);
Tråd. Sover (1000);
// Läs 4 byte med data från adressen 0x00 (00)
// status, pres msb1, pres msb, pres lsb
device.read (0x00, data, 0, 4);
// Konvertera data till 20-bitar
int pres = (((data [1] & 0xFF) * 65536) + ((data [2] & 0xFF) * 256) + (data [3] & 0xF0)) / 16;
dubbel tryck = (pres / 4.0) / 1000.0;
// Mata ut data till skärmen
System.out.printf ("Tryck: %.2f kPa %n", tryck);
System.out.printf ("Höjd: %.2f m %n", höjd);
System.out.printf ("Temperatur i Celsius: %.2f C %n", cTemp);
System.out.printf ("Temperatur i Fahrenheit: %.2f F %n", fTemp);
}
}
Steg 4: Ansökningar:
Olika tillämpningar av MPL3115A2 inkluderar hög noggrannhetsmätning, smartphones/surfplattor, personlig elektronisk höjdmätning etc. Det kan också införlivas med GPS Dead Reckoning, GPS -förbättring för räddningstjänster, kartassistans, navigering samt väderstationsutrustning.