Inhoudsopgave:
- Stap 1: Onmisbare uitrusting die we nodig hebben
- Stap 2: Hardwareverbindingen om het circuit samen te stellen
- Stap 3: Raspberry Pi programmeren in Java
- Stap 4: De uitvoerbaarheid van de code (werkt)
- Stap 5: Toepassingen en functies
- Stap 6: Conclusie
Video: Gebruik Raspberry Pi om hoogte, druk en temperatuur te meten met MPL3115A2 - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
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
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
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
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)
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:
Berekening van vochtigheid, druk en temperatuur met behulp van BME280 en Photon Interfacing: 6 stappen
Berekening van vochtigheid, druk en temperatuur met behulp van BME280 en Photon Interfacing. We komen verschillende projecten tegen die temperatuur-, druk- en vochtigheidsbewaking vereisen. We realiseren ons dus dat deze parameters eigenlijk een cruciale rol spelen bij het hebben van een schatting van de werkefficiëntie van een systeem bij verschillende atmosferische cond
De druk en hoogte bepalen met behulp van GY-68 BMP180 en Arduino: 6 stappen
Het bepalen van de druk en hoogte met behulp van GY-68 BMP180 en Arduino: Overzicht Bij veel projecten zoals vliegende robots, weerstations, het verbeteren van de routeprestaties, sport en etc. is het meten van druk en hoogte erg belangrijk. In deze zelfstudie leert u hoe u de BMP180-sensor gebruikt, een van de meest
Temperatuur meten vanaf PT100 met Arduino: 6 stappen (met afbeeldingen)
Temperatuur meten van PT100 met behulp van Arduino: De PT100 is een weerstandstemperatuurdetector (RTD) die zijn weerstand verandert afhankelijk van de omgevingstemperatuur, hij wordt veel gebruikt voor industriële processen met een langzame dynamiek en relatief brede temperatuurbereiken. Het wordt gebruikt voor langzame dynam
Gebruik condensatoren om de temperatuur te meten: 9 stappen
Condensatoren gebruiken om temperatuur te meten: dit project kwam tot stand omdat ik een condensatorkit kocht met voornamelijk X7R-condensatoren (van goede kwaliteit), maar enkele van de hogere waarden van 100 nF en hoger waren het goedkopere en minder stabiele Y5V-diëlektricum, dat een enorme temperatuurverandering vertoont en op
Druk meten met uw Micro:bit: 5 stappen (met afbeeldingen)
Druk meten met uw Micro:bit: De volgende instructie beschrijft een eenvoudig te bouwen en goedkoop apparaat om drukmetingen uit te voeren en de wet van Boyle te demonstreren, met behulp van de micro:bit in combinatie met de BMP280 druk-/temperatuursensor. Terwijl deze spuit/druk