2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-13 06:58
MPL3115A2 përdor një sensor presioni MEMS me një ndërfaqe I2C për të siguruar të dhëna të sakta të Presionit/Lartësisë dhe Temperaturës. Daljet e sensorit digjitalizohen nga një ADC me rezolucion të lartë 24-bit. Përpunimi i brendshëm heq detyrat e kompensimit nga sistemi pritës MCU. Shtë i aftë të zbulojë një ndryshim në vetëm 0.05 kPa që barazohet me një ndryshim 0.3m në lartësi. Këtu është demonstrimi i tij me pi mjedër duke përdorur kodin java.
Hapi 1: Ajo që ju nevojitet.. !
1. Raspberry Pi
2. MPL3115A2
3. Kabllo I²C
4. Mburoja I²C për Raspberry Pi
5. Kabllo Ethernet
Hapi 2: Lidhjet:
Merrni një mburojë I2C për mjedrën pi dhe shtyjeni butësisht mbi kunjat e gpio të mjedrës pi.
Pastaj lidhni njërin skaj të kabllit I2C me sensorin MPL3115A2 dhe skajin tjetër me mburojën I2C.
Gjithashtu lidhni kabllon Ethernet me pi ose mund të përdorni një modul WiFi.
Lidhjet janë treguar në figurën e mësipërme.
Hapi 3: Kodi:
Kodi java për MPL3115A2 mund të shkarkohet nga depoja jonë github- Dyqani DCUBE.
Këtu është lidhja për të njëjtën gjë:
github.com/DcubeTechVentures/MPL3115A2/tree/master/Java
Ne kemi përdorur bibliotekën pi4j për kodin java, hapat për të instaluar pi4j në mjedër pi janë përshkruar këtu:
pi4j.com/install.html
Ju gjithashtu mund të kopjoni kodin nga këtu, ai jepet si më poshtë:
// Shpërndarë me një licencë me vullnet të lirë.
// Përdoreni atë në çdo mënyrë që dëshironi, fitimprurëse ose falas, me kusht që të përshtatet në licencat e veprave të tij shoqëruese.
// MPL3115A2
// Ky kod është krijuar për të punuar me Mini Modulin MPL3115A2_I2CS I2C i disponueshëm nga
import com.pi4j.io.i2c. I2CBus;
import com.pi4j.io.i2c. I2CDevice;
import com.pi4j.io.i2c. I2CFactory;
import java.io. IOException;
klasa publike MPL3115A2
{
public static void main (String args ) hedh Exception
{
// Krijo autobus I2C
Bus I2CBus = I2CFactory.getInstance (I2CBus. BUS_1);
// Merrni pajisjen I2C, adresa MPL3115A2 I2C është 0x60 (96)
Pajisja I2CDevice = Bus.getDevice (0x60);
// Zgjidhni regjistrin e kontrollit
// Mënyra aktive, OSR = 128, mënyra e lartësimatës
pajisje.shkruaj (0x26, (bajt) 0xB9);
// Zgjidhni regjistrin e konfigurimit të të dhënave
// Ngjarja e gatshme për të dhëna e aktivizuar për lartësinë, presionin, temperaturën
pajisje.shkruaj (0x13, (bajt) 0x07);
// Zgjidhni regjistrin e kontrollit
// Mënyra aktive, OSR = 128, mënyra e lartësimatës
pajisje.shkruaj (0x26, (bajt) 0xB9);
Thread.sleep (1000);
// Lexoni 6 bajt të dhëna nga adresa 0x00 (00)
// statusi, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
bajt të dhëna = bajt i ri [6];
pajisje. lexo (0x00, të dhëna, 0, 6);
// Shndërroni të dhënat në 20-bit
int tHeight = ((((të dhënat [1] & 0xFF) * 65536) + ((të dhënat [2] & 0xFF) * 256) + (të dhënat [3] & 0xF0)) / 16);
int temp = ((të dhënat [4] * 256) + (të dhënat [5] & 0xF0)) / 16;
lartësi e dyfishtë = tHeight / 16.0;
dyshe cTemp = (temp / 16.0);
dyshe fTemp = cTemp * 1.8 + 32;
// Zgjidhni regjistrin e kontrollit
// Mënyra aktive, OSR = 128, mënyra e barometrit
pajisje.shkruaj (0x26, (bajt) 0x39);
Thread.sleep (1000);
// Lexoni 4 bajt të dhëna nga adresa 0x00 (00)
// statusi, pres msb1, pres msb, pres lsb
pajisje.lexoni (0x00, të dhëna, 0, 4);
// Shndërroni të dhënat në 20-bit
int pres = (((të dhënat [1] & 0xFF) * 65536) + ((të dhënat [2] & 0xFF) * 256) + (të dhënat [3] & 0xF0)) / 16;
presion i dyfishtë = (pres / 4.0) / 1000.0;
// Dalja e të dhënave në ekran
System.out.printf ("Presioni: %.2f kPa %n", presion);
System.out.printf ("Lartësia mbidetare: %.2f m %n", lartësi);
System.out.printf ("Temperatura në Celsius: %.2f C %n", cTemp);
System.out.printf ("Temperatura në Fahrenheit: %.2f F %n", fTemp);
}
}
Hapi 4: Aplikimet:
Aplikime të ndryshme të MPL3115A2 përfshijnë Altimetri të Saktësisë së Lartë, Smartphone/Tableta, Elektronikë Personale Altimetri etj. Gjithashtu mund të inkorporohet në llogaritjen e vdekur të GPS, Përmirësimi i GPS për Shërbimet e Emergjencave, Ndihma në Hartë, Lundrimi si dhe Pajisjet e Stacionit Moti.