Inhoudsopgave:

Hoogte, druk en temperatuur Raspberry Pi gebruiken met MPL3115A2 - Ajarnpa
Hoogte, druk en temperatuur Raspberry Pi gebruiken met MPL3115A2 - Ajarnpa

Video: Hoogte, druk en temperatuur Raspberry Pi gebruiken met MPL3115A2 - Ajarnpa

Video: Hoogte, druk en temperatuur Raspberry Pi gebruiken met MPL3115A2 - Ajarnpa
Video: Hoe maak je een Raspberry Pi WEB SERVER? - Raspberry Pi #4 - TechTime 2024, Juli-
Anonim
Hoogte, druk en temperatuur met Raspberry Pi met MPL3115A2
Hoogte, druk en temperatuur met Raspberry Pi met MPL3115A2
Hoogte, druk en temperatuur met Raspberry Pi met MPL3115A2
Hoogte, druk en temperatuur met Raspberry Pi met MPL3115A2

Klinkt interessant. Het is best mogelijk in deze tijd waarin we allemaal de IoT-generatie ingaan. Als elektronicafreak hebben we met de Raspberry Pi gespeeld en besloten om met deze kennis interessante projecten te maken. In dit project zullen we hoogte, luchtdruk en temperatuur meten met behulp van Raspberry Pi. Dus hier komt de documentatie (altijd gewijzigd en uitgebreid). We raden aan om te beginnen met het volgen van de instructies en de code te kopiëren. Je kunt later experimenteren. Dus laten we beginnen.

Stap 1: Dwingende apparatuur die we nodig hebben

Dwingende apparatuur die we nodig hebben
Dwingende apparatuur die we nodig hebben
Dwingende apparatuur die we nodig hebben
Dwingende apparatuur die we nodig hebben
Dwingende apparatuur die we nodig hebben
Dwingende apparatuur die we nodig hebben
Dwingende apparatuur die we nodig hebben
Dwingende apparatuur die we nodig hebben

1. Raspberry Pi

De eerste stap was het verkrijgen van een Raspberry Pi-bord. Wij hebben de onze gekocht en jij ook. We begonnen te leren van de tutorials, we begrepen de concepten voor scripts en verbindingen en leerden daarna. Dit kleine genie is gebruikelijk voor hobbyisten, leraren en bij het creëren van innovatieve omgevingen.

2. I²C-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 maakt voor de communicatie gebruik van het I²C-protocol. We hebben deze sensor gekocht bij Dcube Store

4. Aansluitkabel

We hadden de I2C-verbindingskabel beschikbaar bij Dcube Store

5. Micro-USB-kabel

De micro-USB-kabel Voeding is een ideale keuze voor het voeden van de Raspberry Pi.

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

In dit tijdperk heeft het verkrijgen van toegang tot alles een internetverbinding nodig (bijna omdat er ook offline leven is). Dus we gaan het advies van een LAN-kabel of een draadloze Nano USB-adapter (WiFi) opvolgen om de internetverbinding op te bouwen, zodat we onze Rasp Pi gemakkelijk en zonder enig probleem kunnen gebruiken.

7. HDMI-kabel (optioneel, uw keuze)

Het is een beetje lastig. U kunt de kracht hebben om een andere monitor aan te sluiten als u dat wilt, of het is zeer kosteneffectief voor uzelf door een headless Pi-verbinding met uw pc/laptop te maken.

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 heel eenvoudig. Volg de instructies en afbeeldingen 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

Pak eerst de Raspberry Pi en plaats daar de I²C Shield op. 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. Gewoon het eenvoudige proces dat we hebben genoemd.

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 van vitaal belang

Je hebt hier eigenlijk een keuze. U kunt Raspberry Pi aansluiten met de LAN-kabel of de draadloze Nano USB-adapter voor WiFi-connectiviteit. Hoe dan ook, het deed het belangrijkste doel om verbinding te maken met internet.

Voeding van het circuit

Steek de micro-USB-kabel in de stroomaansluiting van de Raspberry Pi. Steek het aan en we zijn klaar om te gaan.

Verbinding met scherm

We kunnen de HDMI-kabel op een nieuwe monitor aansluiten of we kunnen onze headless Pi maken, die creatief en kosteneffectief is met externe toegang zoals SSH/PuTTY. (Ik weet dat we niet worden gefinancierd als een geheime organisatie)

Stap 3: Raspberry Pi programmeren in Python

Raspberry Pi programmeren in Python
Raspberry Pi programmeren in Python

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

Voordat u verder gaat met de code, moet u ervoor zorgen dat u de instructies in het Readme-bestand leest en uw Raspberry Pi volgens de code instelt. 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)

Waar 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 Python-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. #

import smbus

import tijd

# Krijg I2C-bus

bus = smbus. SMBus(1)

# MPL3115A2 adres, 0x60(96)

# Selecteer besturingsregister, 0x26(38) # 0xB9(185) Actieve modus, OSR = 128, Hoogtemetermodus bus.write_byte_data(0x60, 0x26, 0xB9) # MPL3115A2-adres, 0x60(96) # Selecteer gegevensconfiguratieregister, 0x13(19) # 0x07(07) Data gereed-gebeurtenis ingeschakeld voor hoogte, druk, temperatuur bus.write_byte_data(0x60, 0x13, 0x07) # MPL3115A2-adres, 0x60(96) # Select control register, 0x26(38) # 0xB9(185) Actieve modus, OSR = 128, Hoogtemetermodus bus.write_byte_data (0x60, 0x26, 0xB9)

tijd.slaap(1)

# MPL3115A2 adres, 0x60(96)

# Lees data terug van 0x00(00), 6 bytes # status, tHeight MSB1, tHeight MSB, tHeight LSB, temp MSB, temp LSB data = bus.read_i2c_block_data (0x60, 0x00, 6)

# Converteer de gegevens naar 20-bits

tHeight = ((data[1] * 65536) + (data[2] * 256) + (data[3] & 0xF0)) / 16 temp = ((data[4] * 256) + (data[5] & 0xF0)) / 16 hoogte = tHoogte / 16.0 cTemp = temp / 16.0 fTemp = cTemp * 1.8 + 32

# MPL3115A2 adres, 0x60(96)

# Selecteer controleregister, 0x26(38) # 0x39(57) Actieve modus, OSR = 128, Barometermodus bus.write_byte_data (0x60, 0x26, 0x39)

tijd.slaap(1)

# MPL3115A2 adres, 0x60(96)

# Lees data terug van 0x00(00), 4 bytes # status, pres MSB1, pres MSB, pres LSB data = bus.read_i2c_block_data(0x60, 0x00, 4)

# Converteer de gegevens naar 20-bits

druk = ((data[1] * 65536) + (data[2] * 256) + (data[3] & 0xF0)) / 16 druk = (pres / 4,0) / 1000,0

# Gegevens uitvoeren naar scherm

print "Druk: %.2f kPa" %druk print "Hoogte: %.2f m" %hoogte print "Temperatuur in Celsius: %.2f C" %cTemp print "Temperatuur in Fahrenheit: %.2f F" %fTemp

Stap 4: De bruikbaarheid van de code (testen)

De uitvoerbaarheid van de code (testen)
De uitvoerbaarheid van de code (testen)

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 in 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 I²C-sensor is in toepassingen zoals Kaart (Map Assist, Navigatie), Magnetisch Kompas of GPS (GPS Dead Reckoning, GPS Enhancement For Emergency Services), Hoge Nauwkeurigheid Altimetrie, Smartphones/Tablets, Personal Electronics Altimetry en satellieten (apparatuur voor weerstations/voorspellingen).

Voor bijv. een project voor het maken van Personal Electronics Altimeter die hoogte, luchtdruk en temperatuur meet met behulp van Raspberry Pi. De Personal Electronics Altimeter is in totaal een vrij snel project om te bouwen. Het duurt maar een paar minuten als je alle partijen hebt en niet improviseert (natuurlijk kan dat!). Een drukhoogtemeter is een hoogtemeter die in de meeste vliegtuigen wordt aangetroffen, en parachutisten gebruiken voor soortgelijke doeleinden op de pols gemonteerde versies. Wandelaars en bergbeklimmers gebruiken op de pols gemonteerde of in de hand gehouden hoogtemeters.

Stap 6: Conclusie

Ik hoop dat dit project inspireert tot verdere experimenten. Deze I²C-sensor is ongelooflijk veelzijdig, goedkoop en toegankelijk. Omdat het een extreem veranderlijk programma is, zijn er interessante manieren om dit project uit te breiden en nog beter te maken. De hoogtemeter is bijvoorbeeld een instrument dat optioneel is in terreinwagens om te helpen bij het navigeren. Sommige high-performance luxe auto's die nooit bedoeld waren om verharde wegen te verlaten, gebruiken deze technologie. Voor uw gemak hebben we een interessante video-tutorial op YouTube die u kan helpen bij uw verkenning. Ik hoop dat dit project inspireert tot verdere experimenten.

Aanbevolen: