Inhoudsopgave:

Gebruik Raspberry Pi om hoogte, druk en temperatuur te meten met MPL3115A2 - Ajarnpa
Gebruik Raspberry Pi om hoogte, druk en temperatuur te meten met MPL3115A2 - Ajarnpa

Video: Gebruik Raspberry Pi om hoogte, druk en temperatuur te meten met MPL3115A2 - Ajarnpa

Video: Gebruik Raspberry Pi om hoogte, druk en temperatuur te meten met MPL3115A2 - Ajarnpa
Video: Hoe hebben wij de Raspberry PI ontvangen van SOS Solutions? #1 2024, November
Anonim
Image
Image
Onmisbare uitrusting die we nodig hebben
Onmisbare uitrusting die we nodig hebben

Weet wat je bezit en weet waarom je het bezit

Het is intrigerend. We leven in het tijdperk van internetautomatisering terwijl het zich stort in een overvloed aan nieuwe toepassingen. Als computer- en elektronica-enthousiastelingen hebben we veel geleerd met de Raspberry Pi en hebben we besloten onze interesses te combineren. Dit project duurt ongeveer een uur als I²C-verbindingen en software-instellingen nieuw voor je zijn, en het is een geweldige manier om de mogelijkheden van MPL3115A2 uit te breiden met Raspberry Pi in Java.

Stap 1: Onmisbare uitrusting die we nodig hebben

Onmisbare uitrusting die we nodig hebben
Onmisbare uitrusting die we nodig hebben
Onmisbare uitrusting die we nodig hebben
Onmisbare uitrusting die we nodig hebben
Onmisbare uitrusting die we nodig hebben
Onmisbare uitrusting die we nodig hebben

1. Raspberry Pi

De eerste stap was het verkrijgen van een Raspberry Pi-bord. Dit kleine genie wordt gebruikt door hobbyisten, leraren en bij het creëren van innovatieve omgevingen.

2. I2C-schild voor Raspberry Pi

De INPI2 (I2C-adapter) biedt de Raspberry Pi 2/3 een I²C-poort voor gebruik met meerdere I2C-apparaten. Het is beschikbaar in de Dcube Store.

3. Hoogtemeter, druk- en temperatuursensor, MPL3115A2

De MPL3115A2 is een MEMS-druksensor met een I²C-interface om druk-, hoogte- en temperatuurgegevens te geven. Deze sensor gebruikt het I²2-protocol voor communicatie. We hebben deze sensor gekocht bij Dcube Store.

4. Aansluitkabel

We gebruikten de I²C-verbindingskabel die verkrijgbaar is bij Dcube Store.

5. Micro-USB-kabel

De Raspberry Pi wordt gevoed door micro-USB-voeding.

6. Verbetering van internettoegang - Ethernet-kabel/WiFi-module

Een van de eerste dingen die u wilt doen, is uw Raspberry Pi met internet verbinden. U kunt verbinding maken met een Ethernet-kabel of met een Wireless USB Nano WiFi-adapter.

7. HDMI-kabel (optioneel, uw keuze)

Je kunt de Raspberry Pi met een HDMI-kabel op een monitor aansluiten. U kunt ook op afstand toegang krijgen tot uw Raspberry Pi door SSH/PuTTY te gebruiken.

Stap 2: Hardwareverbindingen om het circuit samen te stellen

Hardwareverbindingen om het circuit samen te stellen
Hardwareverbindingen om het circuit samen te stellen
Hardwareverbindingen om het circuit samen te stellen
Hardwareverbindingen om het circuit samen te stellen

Maak het circuit volgens het getoonde schema. Over het algemeen zijn de verbindingen vrij eenvoudig. Volg de instructies en afbeeldingen hierboven en u zou geen problemen moeten hebben. Tijdens de planning hebben we gekeken naar hardware en codering, evenals naar de basisprincipes van elektronica. Voor dit project wilden we een eenvoudig elektronicaschema ontwerpen. In het diagram ziet u de verschillende onderdelen, voedingscomponenten en I²C-sensor volgens I²C-communicatieprotocollen. Hopelijk illustreert dit hoe eenvoudig de elektronica voor dit project is.

Aansluiting van de Raspberry Pi en I2C Shield

Hiervoor Raspberry Pi en plaats de I²C Shield erop. Druk voorzichtig op het schild (zie de foto).

Aansluiting van de Sensor en Raspberry Pi

Pak de sensor en sluit de I²C-kabel ermee aan. Zorg ervoor dat de I²C-uitgang ALTIJD wordt aangesloten op de I²C-ingang. Hetzelfde zal worden gevolgd door de Raspberry Pi met het I²C-schild eroverheen. We hebben het I²C-schild en de I²C-verbindingskabels aan onze kant als een heel groot voordeel omdat we alleen de plug-and-play-optie hebben. Geen problemen meer met pinnen en bedrading en dus is verwarring verdwenen. Wat een opluchting als je je voorstelt in het web van draden en daarin terechtkomt. Zo simpel als dit!

Opmerking: de bruine draad moet altijd de massaverbinding (GND) volgen tussen de uitgang van het ene apparaat en de ingang van een ander apparaat

Internetverbinding is cruciaal

Om ons project tot een succes te maken, hebben we een internettoegang nodig voor onze Raspberry Pi. Hierin heb je opties zoals het aansluiten van een Ethernet(LAN)-kabel. Ook als alternatieve maar indrukwekkende manier om een wifi-adapter te gebruiken.

Voeding van het circuit

Steek de micro-USB-kabel in de stroomaansluiting van de Raspberry Pi. Zet hem aan en voila, we zijn klaar om te gaan!

Verbinding met scherm

We kunnen de HDMI-kabel op een monitor aansluiten of we kunnen een beetje innovatief zijn om onze headless Pi te maken (met -SSH/PuTTY), wat helpt om de extra kosten te verlagen omdat we op de een of andere manier hobbyisten zijn.

Wanneer een gewoonte geld begint te kosten, wordt het een hobby genoemd

Stap 3: Raspberry Pi programmeren in Java

Raspberry Pi-programmering in Java
Raspberry Pi-programmering in Java

De Java-code voor de Raspberry Pi en MPL3115A2-sensor. Het is beschikbaar in onze Github-repository.

Voordat je verder gaat met de code, moet je de instructies in het Readme-bestand lezen en je Raspberry Pi overeenkomstig instellen. Het duurt slechts een moment om dit te doen. De hoogte wordt berekend uit de druk met behulp van de onderstaande vergelijking:

h = 44330.77 {1 - (p / p0) ^ 0.1902632} + OFF_H (Registreerwaarde)

waarbij p0 = druk op zeeniveau (101326 Pa) en h in meters. De MPL3115A2 gebruikt deze waarde omdat het offsetregister is gedefinieerd als 2 Pascal per LSB. De code ligt duidelijk voor je en is in de eenvoudigste vorm die je je kunt voorstellen en je zou geen problemen moeten hebben.

U kunt hier ook de werkende Java-code voor deze sensor kopiëren.

// Gedistribueerd met een vrije licentie.// 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 die verkrijgbaar is via ControlEverything.com. //

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 {// Create I2C bus I2CBus Bus = I2CFactory.getInstance (I2CBus. BUS_1); // Haal I2C-apparaat op, MPL3115A2 I2C-adres is 0x60 (96) I2CDevice-apparaat = Bus.getDevice (0x60); // Selecteer controleregister // Actieve modus, OSR = 128, hoogtemetermodus device.write (0x26, (byte)0xB9); // Selecteer dataconfiguratieregister // Data gereedgebeurtenis ingeschakeld voor hoogte, druk, temperatuur device.write (0x13, (byte)0x07); // Selecteer controleregister // Actieve modus, OSR = 128, hoogtemetermodus device.write (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 device.write (0x26, (byte)0x39); Draad.slaap (1000); // Lees 4 bytes aan gegevens van adres 0x00(00) // status, pres msb1, pres msb, pres lsb device.read (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; // Voer gegevens uit naar het 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: De uitvoerbaarheid van de code (werkt)

De uitvoerbaarheid van de code (werkt)
De uitvoerbaarheid van de code (werkt)

Download nu (of git pull) de code en open deze in de Raspberry Pi. Voer de opdrachten uit om de code te compileren en te uploaden op de terminal en bekijk de uitvoer op Monitor. Na enkele seconden worden alle parameters weergegeven. Nadat je ervoor hebt gezorgd dat alles soepel werkt, kun je dit project in een groter project opnemen.

Stap 5: Toepassingen en functies

Het algemene gebruik van de MPL3115A2 Precision Altimeter sensor is in toepassingen zoals Kaart (Map Assist, Navigatie), Magnetisch Kompas of GPS (GPS Dead Reckoning, GPS Enhancement For Emergency Services), High Accuracy Altimetry, Smartphones/Tablets, Personal Electronics Altimetry en Satellieten (apparatuur voor weerstations/voorspellingen).

Voor bijv. Met behulp van deze sensor en Rasp Pi kun je een digitale visuele hoogtemeter bouwen, het belangrijkste onderdeel van skydiving-apparatuur, dat hoogte, luchtdruk en temperatuur kan meten. Je kunt windgaas en andere sensoren toevoegen, dus maak er een interessanter van.

Stap 6: Conclusie

Omdat het programma verbazingwekkend aanpasbaar is, zijn er veel interessante manieren waarop je dit project kunt uitbreiden en nog beter kunt maken. Een hoogtemeter/interferometer zou bijvoorbeeld verschillende hoogtemeters bevatten die op masten zijn gemonteerd die gelijktijdig metingen zouden verkrijgen, waardoor een continue dekking van een groot gebied met één of meerdere hoogtemeters wordt geboden. We hebben een interessante video-tutorial op YouTube die u kan helpen dit project beter te begrijpen.

Aanbevolen: