Inhoudsopgave:
Video: Raspberry Pi - MPL3115A2 Precisiehoogtemetersensor Java-zelfstudie - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
De MPL3115A2 maakt gebruik van een MEMS-druksensor met een I2C-interface om nauwkeurige druk-/hoogte- en temperatuurgegevens te leveren. De sensoruitgangen worden gedigitaliseerd door een 24-bits ADC met hoge resolutie. Interne verwerking verwijdert compensatietaken van het host-MCU-systeem. Het is in staat om een verandering van slechts 0,05 kPa te detecteren, wat overeenkomt met een hoogteverandering van 0,3 m. Hier is de demonstratie met Raspberry Pi met behulp van Java-code.
Stap 1: Wat je nodig hebt.
1. Raspberry Pi
2. MPL3115A2
3. I²C-kabel
4. I²C-schild voor Raspberry Pi
5. Ethernet-kabel
Stap 2: Aansluitingen:
Neem een I2C-schild voor Raspberry Pi en duw het voorzichtig over de gpio-pinnen van Raspberry Pi.
Sluit vervolgens het ene uiteinde van de I2C-kabel aan op de MPL3115A2-sensor en het andere uiteinde op de I2C-afscherming.
Sluit ook de Ethernet-kabel aan op de pi of u kunt een WiFi-module gebruiken.
De aansluitingen zijn weergegeven in de afbeelding hierboven.
Stap 3: Coderen:
De java-code voor MPL3115A2 kan worden gedownload van onze github-repository - DCUBE Store.
Hier is de link voor hetzelfde:
github.com/DcubeTechVentures/MPL3115A2/tree/master/Java
We hebben de pi4j-bibliotheek gebruikt voor java-code, de stappen om pi4j op raspberry pi te installeren worden hier beschreven:
pi4j.com/install.html
U kunt de code ook hier kopiëren, deze wordt als volgt gegeven:
// Gedistribueerd met een vrije wilslicentie.
// Gebruik het zoals je wilt, winst of gratis, op voorwaarde dat het past in de licenties van de bijbehorende werken.
// MPL3115A2
// Deze code is ontworpen om te werken met de MPL3115A2_I2CS I2C Mini Module verkrijgbaar bij
com.pi4j.io.i2c. I2CBus importeren;
com.pi4j.io.i2c. I2CDevice importeren;
importeer com.pi4j.io.i2c. I2CFactory;
import java.io. IOException;
openbare klasse MPL3115A2
{
public static void main(String args) gooit Exception
{
// I2C-bus maken
I2CBus Bus = I2CFactory.getInstance(I2CBus. BUS_1);
// Krijg I2C-apparaat, MPL3115A2 I2C-adres is 0x60 (96)
I2CDevice-apparaat = Bus.getDevice (0x60);
// Selecteer controleregister
// Actieve modus, OSR = 128, hoogtemetermodus
apparaat.schrijven (0x26, (byte)0xB9);
// Selecteer dataconfiguratieregister
// Gegevens gereedgebeurtenis ingeschakeld voor hoogte, druk, temperatuur
apparaat.schrijven (0x13, (byte)0x07);
// Selecteer controleregister
// Actieve modus, OSR = 128, hoogtemetermodus
apparaat.schrijven (0x26, (byte)0xB9);
Draad.slaap (1000);
// Lees 6 bytes aan gegevens van adres 0x00(00)
// status, tHeight msb1, tHeight msb, tHeight lsb, tijdelijke msb, tijdelijke lsb
byte data = nieuwe byte[6];
apparaat.lezen (0x00, data, 0, 6);
// Converteer de gegevens naar 20-bits
int tHeight = ((((data[1] & 0xFF) * 65536) + ((data[2] & 0xFF) * 256) + (data[3] & 0xF0)) / 16);
int temp = ((data[4] * 256) + (data[5] & 0xF0)) / 16;
dubbele hoogte = tHeight / 16.0;
dubbele cTemp = (temp / 16.0);
dubbele fTemp = cTemp * 1.8 + 32;
// Selecteer controleregister
// Actieve modus, OSR = 128, barometermodus
apparaat.schrijven (0x26, (byte)0x39);
Draad.slaap (1000);
// Lees 4 bytes aan gegevens van adres 0x00(00)
// status, pres msb1, pres msb, pres lsb
apparaat.lezen (0x00, data, 0, 4);
// Converteer de gegevens naar 20-bits
int pres = (((data[1] & 0xFF) * 65536) + ((data[2] & 0xFF) * 256) + (data[3] & 0xF0)) / 16;
dubbele druk = (druk / 4,0) / 1000,0;
// Gegevens uitvoeren naar scherm
System.out.printf("Druk: %.2f kPa %n", druk);
System.out.printf("Hoogte: %.2f m %n", hoogte);
System.out.printf("Temperatuur in Celsius: %.2f C %n", cTemp);
System.out.printf("Temperatuur in Fahrenheit: %.2f F %n", fTemp);
}
}
Stap 4: Toepassingen:
Verschillende toepassingen van de MPL3115A2 omvatten hoogtemeting met hoge nauwkeurigheid, smartphones/tablets, hoogtemeting voor persoonlijke elektronica, enz. Het kan ook worden opgenomen in GPS-geschatte berekeningen, GPS-verbeteringen voor hulpdiensten, kaartassistentie, navigatie en weerstationapparatuur.
Aanbevolen:
Een UML voor Java maken in Microsoft Visio: 4 stappen
Een UML voor Java maken in Microsoft Visio: In het begin kan het maken van een UML er een beetje intimiderend uitzien. Er zijn veel gecompliceerde notatiestijlen en het kan lijken alsof er geen goede middelen zijn om een UML op te maken die leesbaar en nauwkeurig is. Microsoft Visio maakt het maken van een UML-k
Efficiënte Java-ontwikkeling voor de Raspberry Pi 11 stappen (met afbeeldingen)
Efficiënte Java-ontwikkeling voor de Raspberry Pi: deze Instructable beschrijft een zeer efficiënte benadering voor het ontwikkelen van Java-programma's voor de Raspberry Pi. Ik heb de aanpak gebruikt om Java-mogelijkheden te ontwikkelen, variërend van apparaatondersteuning op laag niveau tot multi-threaded en netwerkgebaseerde programma's. De appr
Een eenvoudige rekenmachine maken in Java: 10 stappen
Hoe maak je een eenvoudige rekenmachine in Java: Dit is een eenvoudige introductie tot de Java-programmeertaal bedoeld voor mensen met weinig tot geen kennis van programmeren. Materialen: Computer of laptop (met Eclipse geïnstalleerd) Kan eclipse installeren op https://www. eclipse.org/downloads
Java-projecten importeren in Eclipse voor beginners: 11 stappen
Java-projecten importeren in Eclipse voor beginners: Inleiding De volgende instructies bieden stapsgewijze instructies voor het installeren van Java-projecten op de computersoftware Eclipse. Java-projecten bevatten alle code, interfaces en bestanden die nodig zijn voor het maken van een Java-programma. Deze projecten zijn pla
Hoe maak je een pokerspel in Java: 4 stappen
Hoe maak je een pokerspel in Java: Dit instructable is voor degenen die al wat Java kennen en een pokerspel willen maken binnen Java. Allereerst heb je een computer nodig met een soort codeertoepassing of website die het gebruik van Java mogelijk maakt. Ik raad aan om DrJ te gebruiken