Indholdsfortegnelse:

Højde, tryk og temperatur ved hjælp af Raspberry Pi med MPL3115A2: 6 trin
Højde, tryk og temperatur ved hjælp af Raspberry Pi med MPL3115A2: 6 trin

Video: Højde, tryk og temperatur ved hjælp af Raspberry Pi med MPL3115A2: 6 trin

Video: Højde, tryk og temperatur ved hjælp af Raspberry Pi med MPL3115A2: 6 trin
Video: Sådan forbindes industrielle 4-20mA-sensorer med Raspberry Pi Pico PLC | Mitsubishi FX1N PLC 2024, Juli
Anonim
Højde, tryk og temperatur ved hjælp af Raspberry Pi med MPL3115A2
Højde, tryk og temperatur ved hjælp af Raspberry Pi med MPL3115A2
Højde, tryk og temperatur ved hjælp af Raspberry Pi med MPL3115A2
Højde, tryk og temperatur ved hjælp af Raspberry Pi med MPL3115A2

Lyder interessant. Det er ganske muligt i denne tid, hvor vi alle går ind i IoT -generationen. Som elektronikfreak har vi leget med Raspberry Pi og besluttet at lave interessante projekter ved hjælp af denne viden. I dette projekt måler vi højde, lufttryk, temperatur ved hjælp af Raspberry Pi. Så her går dokumentationen (bliver altid ændret og udvidet). Vi anbefaler at starte med at følge instruktionerne og kopiere koden. Du kan eksperimentere senere. Så lad os komme i gang.

Trin 1: Imperativt udstyr, vi har brug for

Imperativt udstyr, vi har brug for
Imperativt udstyr, vi har brug for
Imperativt udstyr, vi har brug for
Imperativt udstyr, vi har brug for
Imperativt udstyr, vi har brug for
Imperativt udstyr, vi har brug for
Imperativt udstyr, vi har brug for
Imperativt udstyr, vi har brug for

1. Hindbær Pi

Det første trin var at skaffe et Raspberry Pi -bord. Vi købte vores og det kan du også. Startede med at lære af selvstudierne, vi forstod scripting- og forbindelseskoncepterne og lærte bagefter. Dette lille geni er almindeligt for hobbyfolk, lærere og for at skabe innovative miljøer.

2. I²C Shield til Raspberry Pi

INPI2 (I2C -adapteren) giver Raspberry Pi 2/3 en I²C -port til brug med flere I2C -enheder. Den er tilgængelig på Dcube Store

3. Højdemåler, tryk- og temperatursensor, MPL3115A2

MPL3115A2 er en MEMS -trykføler med en I²C -grænseflade, der giver data om tryk/højde og temperatur. Denne sensor bruger I²C -protokollen til kommunikation. Vi købte denne sensor fra Dcube Store

4. Tilslutningskabel

Vi havde I2C -tilslutningskablet tilgængeligt i Dcube Store

5. Micro USB -kabel

Micro USB -kablet Strømforsyning er et ideelt valg til strømforsyning til Raspberry Pi.

6. Forbedring af internetadgang - Ethernet -kabel/WiFi -adapter

I denne æra har adgang til alting brug for en internetforbindelse (næsten som der også er liv offline). Så vi tager råd fra et LAN -kabel eller en trådløs Nano USB -adapter (WiFi) til at opbygge internetforbindelsen, så vi let kan bruge vores Rasp Pi og slet ikke noget problem.

7. HDMI -kabel (valgfrit, dit valg)

Det er lidt tricky. Du kan have magt til at vedhæfte en anden skærm, hvis du vil, eller det er meget omkostningseffektivt for dig selv ved at oprette en hovedløs Pi-forbindelse med din pc/bærbare.

Trin 2: Hardwareforbindelser for at sammensætte kredsløbet

Hardwareforbindelser til sammensætning af kredsløbet
Hardwareforbindelser til sammensætning af kredsløbet
Hardwareforbindelser til sammensætning af kredsløbet
Hardwareforbindelser til sammensætning af kredsløbet

Lav kredsløbet i henhold til det viste skema. Generelt er forbindelserne meget enkle. Følg instruktionerne og billederne, og du bør ikke have problemer.

Under planlægningen kiggede vi på hardware og kodning samt grundlæggende elektronik. Vi ønskede at designe en simpel elektronisk skema for dette projekt. I diagrammet kan du se de forskellige dele, strømkomponenter og I²C -sensor efter I²C -kommunikationsprotokoller. Forhåbentlig illustrerer dette, hvor enkel elektronikken til dette projekt er.

Tilslutning af Raspberry Pi og I2C Shield

Først og fremmest skal du tage Raspberry Pi og placere I²C Shield på den. Tryk forsigtigt på skærmen (se billedet).

Tilslutning af sensoren og Raspberry Pi

Tag sensoren og tilslut I²C -kablet med den. Sørg for, at I²C Output ALTID forbinder til I²C Input. Det samme skal Raspberry Pi med I²C -skjoldet monteret over. Vi har I²C -skjoldet og I²C -tilslutningskablerne på vores side som en meget stor fordel, da vi kun har plug and play -muligheden tilbage. Ikke flere pins og ledningsproblemer, og derfor er forvirringen væk. Hvilken lettelse, bare forestil dig dig selv i ledningen og komme ind i det. Bare den enkle proces, som vi har nævnt.

Bemærk: Den brune ledning skal altid følge jordforbindelsen (GND) mellem output fra en enhed og input fra en anden enhed

Internetforbindelse er afgørende

Du har faktisk et valg her. Du kan tilslutte Raspberry Pi med LAN -kablet eller den trådløse Nano USB -adapter til WiFi -forbindelse. Under alle omstændigheder gjorde det hovedformålet, der er at oprette forbindelse til internettet.

Strømforsyning af kredsløbet

Sæt Micro USB -kablet i strømstikket på Raspberry Pi. Tænd det, og vi er godt i gang.

Tilslutning til skærm

Vi kan enten have HDMI-kablet tilsluttet en ny skærm, eller vi kan lave vores hovedløse Pi, som er kreativ og omkostningseffektiv ved hjælp af fjernadgang som-SSH/PuTTY. (Jeg ved, at vi ikke er finansieret som en hemmelig organisation)

Trin 3: Raspberry Pi -programmering i Python

Raspberry Pi programmering i Python
Raspberry Pi programmering i Python

Python -koden til Raspberry Pi og MPL3115A2 -sensoren. Den er tilgængelig i vores Github -lager.

Inden du går videre til koden, skal du læse instruktionerne i Readme -filen og konfigurere din Raspberry Pi i henhold til den. Det vil tage lige et øjeblik at gøre det.

Højden beregnes ud fra trykket ved hjælp af nedenstående ligning:

h = 44330,77 {1 - (p / p0) ^ 0.1902632} + OFF_H (registerværdi)

Hvor p0 = havets tryk (101326 Pa) og h er i meter. MPL3115A2 bruger denne værdi, da offsetregistret er defineret som 2 Pascal pr. LSB.

Koden er klart foran dig, og den er i den enkleste form, som du kan forestille dig, og du bør ikke have problemer.

Du kan også kopiere den fungerende Python -kode til denne sensor herfra.

# Distribueret med en fri vilje-licens.# Brug den, som du vil, profit eller gratis, forudsat at den passer ind i licenserne til de tilhørende værker. # MPL3115A2 # Denne kode er designet til at fungere med MPL3115A2_I2CS I2C Mini -modulet tilgængeligt fra ControlEverything.com. #

import smbus

importtid

# Få I2C -bus

bus = smbus. SMBus (1)

# MPL3115A2 adresse, 0x60 (96)

# Vælg kontrolregister, 0x26 (38) # 0xB9 (185) Aktiv tilstand, OSR = 128, Højdemåler tilstand bus.write_byte_data (0x60, 0x26, 0xB9) # MPL3115A2 adresse, 0x60 (96) # Vælg datakonfigurationsregister, 0x13 (19) # 0x07 (07) Dataklar hændelse aktiveret for højde, tryk, temperatur bus.write_byte_data (0x60, 0x13, 0x07) # MPL3115A2 adresse, 0x60 (96) # Vælg kontrolregister, 0x26 (38) # 0xB9 (185) Aktiv tilstand, OSR = 128, højdemåler tilstand bus.write_byte_data (0x60, 0x26, 0xB9)

time.sleep (1)

# MPL3115A2 adresse, 0x60 (96)

# Læs data tilbage fra 0x00 (00), 6 bytes # status, tHeight MSB1, tHeight MSB, tHeight LSB, temp MSB, temp LSB data = bus.read_i2c_block_data (0x60, 0x00, 6)

# Konverter dataene til 20-bits

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

# MPL3115A2 adresse, 0x60 (96)

# Vælg kontrolregister, 0x26 (38) # 0x39 (57) Aktiv tilstand, OSR = 128, Barometer -tilstand bus.write_byte_data (0x60, 0x26, 0x39)

time.sleep (1)

# MPL3115A2 adresse, 0x60 (96)

# Læs data tilbage fra 0x00 (00), 4 bytes # status, pres MSB1, pres MSB, pres LSB data = bus.read_i2c_block_data (0x60, 0x00, 4)

# Konverter dataene til 20-bits

pres = ((data [1] * 65536) + (data [2] * 256) + (data [3] & 0xF0)) / 16 tryk = (pres / 4.0) / 1000.0

# Output data til skærmen

print "Tryk: %.2f kPa" %trykudskrivning "Højde: %.2f m" %højdeprint "Temperatur i Celsius: %.2f C" %cTemp tryk "Temperatur i Fahrenheit: %.2f F" %fTemp

Trin 4: Kodens praktiske egenskaber (test)

Kodens praktiske egenskaber (test)
Kodens praktiske egenskaber (test)

Download nu (eller git pull) koden og åbn den i Raspberry Pi.

Kør kommandoerne for at kompilere og uploade koden i terminalen og se output på Monitor. Efter få sekunder viser det alle parametre. Efter at have sørget for, at alt fungerer gnidningsløst, kan du tage dette projekt ind i et større projekt.

Trin 5: Applikationer og funktioner

Den almindelige brug af MPL3115A2 Precision Altimeter I²C -sensoren er i applikationer som Map (Map Assist, Navigation), Magnetisk kompas eller GPS (GPS Dead Reckoning, GPS Enhancement For Emergency Services), Høj nøjagtigheds -altimetri, Smartphones/tablets, Personal Electronics Altimetry og satellitter (vejrstationsudstyr/prognoser).

For f.eks. et projekt til fremstilling af personlig elektronik højdemåler, der måler højde, lufttryk, temperatur ved hjælp af Raspberry Pi. Personal Electronics Altimeter er i alt et ret hurtigt projekt at bygge. Det tager kun få øjeblikke, hvis du har alle dele og ikke improviserer (selvfølgelig kan du!). En trykhøjdemåler er en højdemåler, der findes i de fleste fly, og skydivers bruger håndledsmonterede versioner til lignende formål. Vandrere og bjergbestigere bruger håndledsmonterede eller håndholdte højdemålere.

Trin 6: Konklusion

Håber dette projekt inspirerer til yderligere eksperimenter. Denne I²C sensor er utrolig alsidig, billig og tilgængelig. Da det er et ekstremt foranderligt program, er der interessante måder, du kan udvide dette projekt og gøre det endnu bedre. For eksempel er højdemåleren et valgfrit instrument i terrængående køretøjer til at hjælpe med navigation. Nogle højtydende luksusbiler, der aldrig var beregnet til at forlade asfalterede veje, bruger denne teknologi. For nemheds skyld har vi en interessant videoundervisning på YouTube, som måske kan hjælpe dig med at udforske. Håber dette projekt inspirerer til yderligere eksperimenter.

Anbefalede: