Sadržaj:

Nadmorska visina, pritisak i temperatura pomoću Raspberry Pi sa MPL3115A2: 6 koraka
Nadmorska visina, pritisak i temperatura pomoću Raspberry Pi sa MPL3115A2: 6 koraka

Video: Nadmorska visina, pritisak i temperatura pomoću Raspberry Pi sa MPL3115A2: 6 koraka

Video: Nadmorska visina, pritisak i temperatura pomoću Raspberry Pi sa MPL3115A2: 6 koraka
Video: 20 товаров для автомобиля с Алиэкспресс, автотовары №32 2024, Novembar
Anonim
Nadmorska visina, pritisak i temperatura pomoću Raspberry Pi sa MPL3115A2
Nadmorska visina, pritisak i temperatura pomoću Raspberry Pi sa MPL3115A2
Nadmorska visina, pritisak i temperatura pomoću Raspberry Pi sa MPL3115A2
Nadmorska visina, pritisak i temperatura pomoću Raspberry Pi sa MPL3115A2

Zvuči zanimljivo. To je sasvim moguće u ovo doba kada svi ulazimo u IoT generaciju. Kao nakaza za elektroniku, igrali smo se sa Raspberry Pi -em i odlučili da napravimo zanimljive projekte koristeći ovo znanje. U ovom projektu mjerit ćemo visinu, tlak zraka, temperaturu pomoću Raspberry Pi. Dakle, ovdje ide dokumentacija (uvijek se mijenja i proširuje). Preporučujemo da počnete slijedeći upute i kopirate kôd. Kasnije možete eksperimentisati. Pa počnimo.

Korak 1: Imperativna oprema koja nam je potrebna

Imperativna oprema koja nam je potrebna
Imperativna oprema koja nam je potrebna
Imperativna oprema koja nam je potrebna
Imperativna oprema koja nam je potrebna
Imperativna oprema koja nam je potrebna
Imperativna oprema koja nam je potrebna
Imperativna oprema koja nam je potrebna
Imperativna oprema koja nam je potrebna

1. Malina Pi

Prvi korak je bio dobivanje Raspberry Pi ploče. Mi smo kupili naš, a možete i vi. Počeli smo učiti iz vodiča, razumjeli smo koncepte skriptiranja i povezivanja i kasnije naučili. Ovaj mali genij uobičajen je za hobiste, učitelje i stvaranje inovativnih okruženja.

2. I²C štit za Raspberry Pi

INPI2 (I2C adapter) pruža Raspberry Pi 2/3 i I²C port za upotrebu sa više I2C uređaja. Dostupno je u trgovini Dcube

3. Visinomer, senzor pritiska i temperature, MPL3115A2

MPL3115A2 je MEMS senzor pritiska sa I²C interfejsom koji daje podatke o pritisku/nadmorskoj visini i temperaturi. Ovaj senzor koristi I²C protokol za komunikaciju. Ovaj senzor smo kupili u Dcube Store -u

4. Priključni kabel

Imali smo I2C priključni kabel dostupan u Dcube Storeu

5. Mikro USB kabl

Napajanje mikro USB kabelom idealan je izbor za napajanje Raspberry Pi.

6. Poboljšanje pristupa internetu - Ethernet kabel/WiFi adapter

U ovoj eri, za pristup bilo čemu potrebna je internetska veza (gotovo kao što postoji i život van mreže). Stoga idemo poslušati savjet LAN kabela ili bežičnog Nano USB adaptera (WiFi) za izgradnju internetske veze kako bismo mogli koristiti naš Rasp Pi s lakoćom i bez ikakvih problema.

7. HDMI kabel (opcionalno, vaš izbor)

To je malo zeznuto. Možete imati mogućnost priključivanja drugog monitora u slučaju da želite ili je to za vas vrlo isplativo tako što ćete uspostaviti Pi vezu bez glave sa svojim računarom/prijenosnim računarom.

Korak 2: Hardverske veze za sastavljanje kruga

Hardverske veze za sastavljanje kola
Hardverske veze za sastavljanje kola
Hardverske veze za sastavljanje kola
Hardverske veze za sastavljanje kola

Napravite krug prema prikazanoj shemi. Općenito, veze su vrlo jednostavne. Slijedite upute i slike i ne biste trebali imati problema.

Prilikom planiranja, bavili smo se hardverom i kodiranjem, kao i osnovama elektronike. Željeli smo osmisliti jednostavnu elektroničku shemu za ovaj projekt. Na dijagramu možete primijetiti različite dijelove, komponente napajanja i I²C senzor slijedeći I²C komunikacijske protokole. Nadajmo se da ovo ilustrira koliko je jednostavna elektronika za ovaj projekt.

Povezivanje Raspberry Pi i I2C štita

Prije svega uzmite Raspberry Pi i postavite I²C štit na njega. Lagano pritisnite štit (pogledajte sliku).

Povezivanje senzora i Raspberry Pi

Uzmite senzor i spojite I²C kabel s njim. Uvjerite se da je I²C izlaz UVIJEK spojen na I²C ulaz. Isto bi trebalo slijediti i Raspberry Pi sa I²C štitom montiranim preko njega. Imamo I²C štit i I²C spojne kabele sa naše strane kao veliku prednost jer nam preostaje samo mogućnost plug and play. Nema više problema sa iglama i ožičenjem pa je zabuna nestala. Kakvo je olakšanje samo zamisliti sebe u mreži žica i ući u to. Samo jednostavan proces koji smo spomenuli.

Napomena: Smeđa žica uvijek treba slijediti vezu uzemljenja (GND) između izlaza jednog uređaja i ulaza drugog uređaja

Internet povezivanje je od vitalnog značaja

Ovdje zapravo imate izbor. Možete povezati Raspberry Pi pomoću LAN kabela ili bežičnog Nano USB adaptera za WiFi vezu. U svakom slučaju, cilj mu je bio povezati se s internetom.

Napajanje strujnog kola

Uključite mikro USB kabel u utičnicu za napajanje Raspberry Pi. Upalite i dobro smo krenuli.

Povezivanje sa ekranom

Možemo ili HDMI kabel spojiti na novi monitor ili možemo napraviti naš Pi bez glave koji je kreativan i isplativ koristeći daljinski pristup poput-SSH/PuTTY. (Znam da se ne financiramo kao tajna organizacija)

Korak 3: Raspberry Pi programiranje u Pythonu

Programiranje Raspberry Pi u Pythonu
Programiranje Raspberry Pi u Pythonu

Python kod za Raspberry Pi i MPL3115A2 senzor. Dostupno je u našem Github spremištu.

Prije nego što pređete na kôd, svakako pročitajte upute date u datoteci Readme i postavite Raspberry Pi prema njemu. Za to će trebati samo trenutak.

Nadmorska visina se izračunava iz pritiska koristeći sljedeću jednadžbu:

h = 44330,77 {1 - (p / p0) ^ 0,1902632} + OFF_H (Vrijednost registra)

Gdje je p0 = tlak na razini mora (101326 Pa), a h je u metrima. MPL3115A2 koristi ovu vrijednost budući da je registar pomaka definiran kao 2 paskala po LSB -u.

Kôd je jasno pred vama i u najjednostavnijem obliku koji možete zamisliti i ne biste trebali imati problema.

Ovdje možete kopirati i radni Python kôd za ovaj senzor.

# Distribuira se sa slobodnom voljom licence.# Koristite ga kako god želite, profitno ili besplatno, pod uvjetom da se uklapa u licence povezanih djela. # MPL3115A2 # Ovaj kod je dizajniran za rad s MPL3115A2_I2CS I2C mini modulom dostupnim na stranici ControlEverything.com. #

import smbus

vreme uvoza

# Nabavite I2C autobus

sabirnica = smbus. SMBus (1)

# MPL3115A2 adresa, 0x60 (96)

# Odaberite kontrolni registar, 0x26 (38) # 0xB9 (185) Aktivni način rada, OSR = 128, Sabirnički način rada u visinomjeru.write_byte_data (0x60, 0x26, 0xB9) # MPL3115A2 adresa, 0x60 (96) # Odaberite registar konfiguracije podataka, 0x13 (19) # 0x07 (07) Događaj spreman za podatke omogućen za nadmorsku visinu, pritisak, temperaturu bus.write_byte_data (0x60, 0x13, 0x07) # MPL3115A2 adresa, 0x60 (96) # Odaberite upravljački registar, 0x26 (38) # 0xB9 (185) Aktivni način rada, OSR = 128, Sabirnički način rada visinomjera.write_byte_data (0x60, 0x26, 0xB9)

time.sleep (1)

# MPL3115A2 adresa, 0x60 (96)

# Očitavanje podataka iz 0x00 (00), 6 bajtova # status, tHeight MSB1, tHeight MSB, tHeight LSB, temp MSB, temp LSB data = bus.read_i2c_block_data (0x60, 0x00, 6)

# Pretvorite podatke u 20-bitne

tHeight = ((podaci [1] * 65536) + (podaci [2] * 256) + (podaci [3] & 0xF0)) / 16 temp = ((podaci [4] * 256) + (podaci [5] & 0xF0)) / 16 nadmorska visina = tHeight / 16,0 cTemp = temp / 16,0 fTemp = cTemp * 1,8 + 32

# MPL3115A2 adresa, 0x60 (96)

# Odaberite upravljački registar, 0x26 (38) # 0x39 (57) Aktivni način rada, OSR = 128, Sabirnički način rada barometra.write_byte_data (0x60, 0x26, 0x39)

time.sleep (1)

# MPL3115A2 adresa, 0x60 (96)

# Očitavanje podataka iz 0x00 (00), 4 bajta # status, pres MSB1, pres MSB, pres LSB podaci = bus.read_i2c_block_data (0x60, 0x00, 4)

# Pretvorite podatke u 20-bitne

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

# Izlažite podatke na ekran

ispis "Pritisak: %.2f kPa" %pritisak ispis "Nadmorska visina: %.2f m" %nadmorska visina ispis "Temperatura u Celzijusima: %.2f C" %cTemp ispis "Temperatura u Farenhajtu: %.2f F" %fTemp

Korak 4: Praktičnost kodeksa (testiranje)

Praktičnost kodeksa (testiranje)
Praktičnost kodeksa (testiranje)

Sada preuzmite (ili git povucite) kôd i otvorite ga u Raspberry Pi.

Pokrenite naredbe za kompajliranje i učitavanje koda u terminalu i pogledajte izlaz na monitoru. Nakon nekoliko sekundi prikazat će se svi parametri. Nakon što se uvjerite da sve radi glatko, ovaj projekt možete pretvoriti u veći projekt.

Korak 5: Aplikacije i značajke

Uobičajena upotreba senzora preciznog visinomjera MPL3115A2 I²C je u aplikacijama kao što su Karta (Map Assist, Navigacija), Magnetski kompas ili GPS (GPS mrtvo računanje, GPS poboljšanje za hitne službe), Altimetrija visoke tačnosti, Pametni telefoni/Tableti, Altimetrija lične elektronike i sateliti (oprema meteoroloških stanica/predviđanje).

Za npr. projekt za izradu visinomjera Personal Electronics koji mjeri visinu, tlak zraka, temperaturu pomoću Raspberry Pi. Visinomer za osobnu elektroniku ukupno je prilično brz projekt za izgradnju. Bit će potrebno samo nekoliko trenutaka ako imate sve dijelove i ne improvizirate (naravno da možete!). Visinomer pritiska je visinomjer koji se nalazi u većini aviona, a padobranci za slične svrhe koriste verzije montirane na ručni zglob. Planinari i planinari koriste visinomjere na ručnim zglobovima ili ručne.

Korak 6: Zaključak

Nadam se da će ovaj projekt potaknuti daljnja eksperimentiranja. Ovaj I²C senzor je nevjerovatno svestran, jeftin i pristupačan. Budući da se radi o izuzetno promjenjivom programu, postoje zanimljivi načini na koje možete proširiti ovaj projekt i učiniti ga još boljim. Na primjer, visinomjer je instrument opcionalan u terenskim vozilima koji pomaže u navigaciji. Neki luksuzni automobili visokih performansi koji nikada nisu namjeravali napustiti asfaltirane ceste, koriste ovu tehnologiju. Radi vaše udobnosti, na YouTubeu imamo zanimljiv video vodič koji bi vam mogao pomoći u istraživanju. Nadam se da će ovaj projekt potaknuti daljnja eksperimentiranja.

Preporučuje se: