Satura rādītājs:

Izmantojot Raspberry Pi, izmēriet augstumu, spiedienu un temperatūru ar MPL3115A2: 6 soļi
Izmantojot Raspberry Pi, izmēriet augstumu, spiedienu un temperatūru ar MPL3115A2: 6 soļi

Video: Izmantojot Raspberry Pi, izmēriet augstumu, spiedienu un temperatūru ar MPL3115A2: 6 soļi

Video: Izmantojot Raspberry Pi, izmēriet augstumu, spiedienu un temperatūru ar MPL3115A2: 6 soļi
Video: Concept of LoRa Transmitter, BME280 Sensor and WiFi Webserver based on Arduino ESP32 (EP07) 2024, Novembris
Anonim
Image
Image
Nepieciešams aprīkojums, kas mums nepieciešams
Nepieciešams aprīkojums, kas mums nepieciešams

Ziniet, kas jums pieder, un zināt, kāpēc jums tas pieder

Tas ir intriģējoši. Mēs dzīvojam interneta automatizācijas laikmetā, jo tas ienirst daudzās jaunās lietojumprogrammās. Kā datoru un elektronikas entuziasti mēs esam daudz mācījušies kopā ar Raspberry Pi un nolēmām apvienot mūsu intereses. Šis projekts aizņem apmēram stundu, ja esat iesācējs I²C savienojumos un programmatūras iestatīšanā, un tas ir lielisks veids, kā paplašināt MPL3115A2 iespējas, izmantojot Raspberry Pi Java.

1. darbība. Nepieciešamais aprīkojums, kas mums nepieciešams

Nepieciešams aprīkojums, kas mums nepieciešams
Nepieciešams aprīkojums, kas mums nepieciešams
Nepieciešams aprīkojums, kas mums nepieciešams
Nepieciešams aprīkojums, kas mums nepieciešams
Nepieciešams aprīkojums, kas mums nepieciešams
Nepieciešams aprīkojums, kas mums nepieciešams

1. Aveņu Pi

Pirmais solis bija Raspberry Pi dēļa iegūšana. Šo mazo ģēniju izmanto hobiji, skolotāji un novatoriskas vides veidošanā.

2. I2C vairogs Raspberry Pi

INPI2 (I2C adapteris) nodrošina Raspberry Pi 2/3 an I²C portu lietošanai ar vairākām I2C ierīcēm. Tas ir pieejams Dcube veikalā.

3. Altimetrs, spiediena un temperatūras sensors, MPL3115A2

MPL3115A2 ir MEMS spiediena sensors ar I²C saskarni, lai sniegtu datus par spiedienu, augstumu un temperatūru. Šis sensors saziņai izmanto protokolu I²2. Šo sensoru iegādājāmies Dcube veikalā.

4. Savienojošais kabelis

Mēs izmantojām I²C savienojuma kabeli, kas pieejams Dcube veikalā.

5. Mikro USB kabelis

Raspberry Pi baro no mikro USB padeves.

6. Interneta piekļuves uzlabošana - Ethernet kabelis/WiFi modulis

Viena no pirmajām lietām, ko vēlaties darīt, ir savienot Raspberry Pi ar internetu. Varat izveidot savienojumu, izmantojot Ethernet kabeli vai bezvadu USB Nano WiFi adapteri.

7. HDMI kabelis (pēc izvēles, jūsu izvēle)

Jūs varat savienot Raspberry Pi ar monitoru, izmantojot HDMI kabeli. Varat arī attālināti piekļūt savam Raspberry Pi, izmantojot SSH/PuTTY.

2. darbība. Aparatūras savienojumi ķēdes salikšanai

Aparatūras savienojumi ķēdes salikšanai
Aparatūras savienojumi ķēdes salikšanai
Aparatūras savienojumi ķēdes salikšanai
Aparatūras savienojumi ķēdes salikšanai

Izveidojiet ķēdi saskaņā ar parādīto shēmu. Kopumā savienojumi ir diezgan vienkārši. Izpildiet iepriekš sniegtos norādījumus un attēlus, un jums nevajadzētu rasties problēmām. Plānojot, mēs apskatījām aparatūru un kodēšanu, kā arī elektronikas pamatus. Mēs vēlējāmies šim projektam izveidot vienkāršu elektronikas shēmu. Diagrammā jūs varat pamanīt dažādas detaļas, barošanas komponentus un I²C sensoru, ievērojot I²C sakaru protokolus. Cerams, ka tas parāda, cik vienkārša ir šī projekta elektronika.

Raspberry Pi un I2C Shield savienojums

Lai to izdarītu, Raspberry Pi un novietojiet uz tā I²C vairogu. Viegli nospiediet vairogu (skatiet attēlu).

Sensora un Raspberry Pi savienojums

Paņemiet sensoru un pievienojiet tam I²C kabeli. Pārliecinieties, vai I²C izeja VIENMĒR ir savienota ar I²C ieeju. Tam jāseko arī Raspberry Pi ar tam piestiprināto I²C vairogu. Mūsu pusē ir ļoti liela priekšrocība I²C Shield un I²C savienojošie kabeļi, jo mums paliek tikai plug and play iespēja. Vairs nav problēmu ar tapām un vadiem, un līdz ar to apjukums ir pazudis. Kāds atvieglojums ir iedomāties sevi vadu tīklā un tajā iekļūt. Tik vienkārši!

Piezīme. Brūnajam vadam vienmēr jāseko zemējuma (GND) savienojumam starp vienas ierīces izeju un citas ierīces ieeju

Interneta savienojums ir izšķirošs

Lai mūsu projekts būtu veiksmīgs, mums ir nepieciešama interneta piekļuve mūsu Raspberry Pi. Šajā gadījumā jums ir tādas iespējas kā Ethernet (LAN) kabeļa pievienošana. Arī kā alternatīvs, bet iespaidīgs veids, kā izmantot WiFi adapteri.

Ķēdes barošana

Pievienojiet Micro USB kabeli Raspberry Pi barošanas ligzdai. Ieslēdz un voila, mums ir labi doties!

Savienojums ar ekrānu

Mēs varam vai nu savienot HDMI kabeli ar monitoru, vai arī mēs varam būt nedaudz novatoriski, lai izveidotu bezgalvu Pi (izmantojot -SSH/PuTTY), kas palīdz samazināt papildu izmaksas, jo mēs kaut kā esam hobiji.

Kad ieradums sāk maksāt naudu, to sauc par hobiju

3. darbība: Raspberry Pi programmēšana Java

Raspberry Pi programmēšana Java
Raspberry Pi programmēšana Java

Raspberry Pi un MPL3115A2 sensora Java kods. Tas ir pieejams mūsu Github krātuvē.

Pirms turpināt kodu, noteikti izlasiet Readme failā sniegtos norādījumus un iestatiet Raspberry Pi atbilstoši tam. Tas prasīs tikai brīdi. Augstums tiek aprēķināts no spiediena, izmantojot zemāk redzamo vienādojumu:

h = 44330,77 {1 - (p / p0) ^ 0,1902632} + OFF_H (reģistra vērtība)

kur p0 = jūras līmeņa spiediens (101326 Pa) un h ir metros. MPL3115A2 izmanto šo vērtību, jo nobīdes reģistrs ir definēts kā 2 Pascals uz LSB. Kods ir skaidri redzams jūsu priekšā, un tas ir visvienkāršākajā formā, kādu varat iedomāties, un jums nevajadzētu rasties problēmām.

Arī no šejienes varat nokopēt šī sensora darba Java kodu.

// Izplatīts ar brīvās gribas licenci. // MPL3115A2 // Šis kods ir paredzēts darbam ar MPL3115A2_I2CS I2C mini moduli, kas pieejams vietnē ControlEverything.com. //

importēt com.pi4j.io.i2c. I2CBus;

importēt com.pi4j.io.i2c. I2CDevice; importēt com.pi4j.io.i2c. I2CFactory; importēt java.io. IOException;

publiskā klase MPL3115A2

{public static void main (String args ) throws Exception {// Izveidot I2C kopni I2CBus Bus = I2CFactory.getInstance (I2CBus. BUS_1); // Iegūt I2C ierīci, MPL3115A2 I2C adrese ir 0x60 (96) I2CDevice device = Bus.getDevice (0x60); // Atlasiet vadības reģistru // Aktīvais režīms, OSR = 128, altimetra režīma ierīce. Rakstīt (0x26, (baits) 0xB9); // Atlasīt datu konfigurācijas reģistru // Datu gatavs notikums ir iespējots augstuma, spiediena, temperatūras ierīcei. Rakstīt (0x13, (baits) 0x07); // Atlasiet vadības reģistru // Aktīvais režīms, OSR = 128, altimetra režīma ierīce. Rakstīt (0x26, (baits) 0xB9); Vītne.miega (1000);

// Nolasīt 6 baitus datu no adreses 0x00 (00)

// statuss, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb baits dati = jauns baits [6]; device.read (0x00, dati, 0, 6);

// Pārvērst datus par 20 bitiem

int tAugstums = ((((dati [1] & 0xFF) * 65536) + ((dati [2] un 0xFF) * 256) + (dati [3] un 0xF0)) / 16); int temp = ((dati [4] * 256) + (dati [5] & 0xF0)) / 16; dubults augstums = tAugstums / 16,0; dubultā cTemp = (temp / 16,0); dubultā fTemp = cTemp * 1,8 + 32;

// Atlasiet vadības reģistru

// Aktīvais režīms, OSR = 128, barometra režīma ierīce. Rakstīt (0x26, (baits) 0x39); Vītne.miega (1000); // Nolasīt 4 baitus datu no adreses 0x00 (00) // statuss, pres msb1, pres msb, pres lsb device.read (0x00, dati, 0, 4);

// Pārvērst datus par 20 bitiem

int pres = ((((dati [1] & 0xFF) * 65536) + ((dati [2] & 0xFF) * 256) + (dati [3] & 0xF0)) / 16; dubultspiediens = (pres / 4,0) / 1000,0; // Izejas dati uz ekrāna System.out.printf ("Spiediens: %.2f kPa %n", spiediens); System.out.printf ("Augstums: %.2f m %n", augstums); System.out.printf ("Temperatūra pēc Celsija: %.2f C %n", cTemp); System.out.printf ("Temperatūra pēc Fārenheita: %.2f F %n", fTemp); }}

4. darbība. Kodeksa praktiskums (darbs)

Kodeksa praktiskums (darbs)
Kodeksa praktiskums (darbs)

Tagad lejupielādējiet (vai git pull) kodu un atveriet to Raspberry Pi. Palaidiet komandas, lai apkopotu un augšupielādētu kodu terminālī, un skatiet monitora izvadi. Pēc dažām sekundēm tas parādīs visus parametrus. Pēc tam, kad esat pārliecinājies, ka viss darbojas nevainojami, varat pārņemt šo projektu lielākā projektā.

5. darbība: lietojumprogrammas un līdzekļi

MPL3115A2 precīzo altimetra sensoru parasti izmanto tādās lietojumprogrammās kā karte (karšu palīgs, navigācija), magnētiskais kompass vai GPS (GPS mirgošana, GPS uzlabošana ārkārtas dienestiem), augstas precizitātes altimetrija, viedtālruņi/planšetdatori, personīgās elektronikas altimetrija un Satelīti (meteoroloģisko staciju aprīkojums/prognozēšana).

Par piem. Izmantojot šo sensoru un Rasp Pi, jūs varat izveidot digitālo vizuālo augstuma mērītāju, vissvarīgāko izpletņlēkšanas aprīkojumu, kas var izmērīt augstumu, gaisa spiedienu un temperatūru. Jūs varat pievienot vēja marli un citus sensorus, lai padarītu to interesantāku.

6. darbība. Secinājums

Tā kā programma ir pārsteidzoši pielāgojama, ir daudz interesantu veidu, kā paplašināt šo projektu un padarīt to vēl labāku. Piemēram, altimetrs/interferometrs ietver vairākus altimetrus, kas uzstādīti uz mastiem, kas vienlaikus veic mērījumus, tādējādi nodrošinot nepārtrauktu, viena vai vairāku altimetru plaša apgabala pārklājumu. Mums ir interesanta video apmācība vietnē YouTube, kas var palīdzēt jums labāk izprast šo projektu.

Ieteicams: