Სარჩევი:

Raspberry Pi - MPL3115A2 Precision Altimeter Sensor Java Tutorial: 4 Steps
Raspberry Pi - MPL3115A2 Precision Altimeter Sensor Java Tutorial: 4 Steps

ვიდეო: Raspberry Pi - MPL3115A2 Precision Altimeter Sensor Java Tutorial: 4 Steps

ვიდეო: Raspberry Pi - MPL3115A2 Precision Altimeter Sensor Java Tutorial: 4 Steps
ვიდეო: Raspberry Pi HP203B Precision Barometer & Altimeter Sensor Java Tutorial 2024, ივნისი
Anonim
Image
Image

MPL3115A2 იყენებს MEMS წნევის სენსორს I2C ინტერფეისით, რათა უზრუნველყოს წნევის/სიმაღლისა და ტემპერატურის ზუსტი მონაცემები. სენსორის გამოსასვლელი ციფრულდება მაღალი რეზოლუციის 24-ბიტიანი ADC საშუალებით. შიდა დამუშავება ხსნის კომპენსაციის ამოცანებს მასპინძელი MCU სისტემიდან. მას შეუძლია აღმოაჩინოს ცვლილება მხოლოდ 0.05 kPa– ში, რაც უდრის სიმაღლის 0.3 მ ცვლილებას. აქ არის მისი დემონსტრირება ჟოლოს pi გამოყენებით java კოდი.

ნაბიჯი 1: რაც გჭირდებათ..

Რა გჭირდება..!!
Რა გჭირდება..!!

1. ჟოლო პი

2. MPL3115A2

3. I²C კაბელი

4. I²C ფარი ჟოლოს პიისთვის

5. Ethernet კაბელი

ნაბიჯი 2: კავშირები:

კავშირები
კავშირები
კავშირები
კავშირები
კავშირები
კავშირები
კავშირები
კავშირები

აიღეთ I2C ფარი ჟოლოსთვის და ნაზად წაუსვით ჟოლოს პი გპიოს ქინძისთავებზე.

შემდეგ შეაერთეთ I2C კაბელის ერთი ბოლო MPL3115A2 სენსორთან და მეორე ბოლო I2C ფარს.

ასევე დაუკავშირეთ Ethernet კაბელი pi- ს ან შეგიძლიათ გამოიყენოთ WiFi მოდული.

კავშირები ნაჩვენებია ზემოთ მოცემულ სურათზე.

ნაბიჯი 3: კოდი:

კოდი
კოდი

Java კოდი MPL3115A2 შეგიძლიათ ჩამოტვირთოთ ჩვენი github საცავიდან- DCUBE Store.

აქ არის იგივე ბმული:

github.com/DcubeTechVentures/MPL3115A2/tree/master/Java

ჩვენ გამოვიყენეთ pi4j ბიბლიოთეკა java კოდისთვის, ჟოლოს პიზე pi4j– ის დაყენების ნაბიჯები აღწერილია აქ:

pi4j.com/install.html

თქვენ ასევე შეგიძლიათ დააკოპიროთ კოდი აქედან, იგი მოცემულია შემდეგნაირად:

// განაწილებულია თავისუფალი ნების ლიცენზიით.

// გამოიყენეთ იგი ნებისმიერი ფორმით, როგორც გსურთ, მოგებით ან უფასოდ, იმ პირობით, რომ იგი ჯდება ლიცენზიებთან დაკავშირებული სამუშაოებისათვის.

// MPL3115A2

// ეს კოდი შექმნილია MPL3115A2_I2CS I2C მინი მოდულთან მუშაობისთვის

იმპორტი com.pi4j.io.i2c. I2CBus;

იმპორტი com.pi4j.io.i2c. I2CD მოწყობილობა;

იმპორტი com.pi4j.io.i2c. I2C ქარხანა;

იმპორტი java.io. IOException;

საზოგადოებრივი კლასის MPL3115A2

{

public static void main (სიმებიანი args ) ისვრის გამონაკლისს

{

// I2C ავტობუსის შექმნა

I2CBus Bus = I2CFactory.getInstance (I2CBus. BUS_1);

// მიიღეთ I2C მოწყობილობა, MPL3115A2 I2C მისამართი არის 0x60 (96)

I2CD მოწყობილობის მოწყობილობა = Bus.getDevice (0x60);

// აირჩიეთ საკონტროლო რეგისტრი

// აქტიური რეჟიმი, OSR = 128, ალტიმეტრის რეჟიმი

device.write (0x26, (ბაიტი) 0xB9);

// მონაცემთა კონფიგურაციის რეგისტრატორის არჩევა

// მონაცემებისთვის მზად ღონისძიება ჩართულია სიმაღლეზე, წნევაზე, ტემპერატურაზე

device.write (0x13, (byte) 0x07);

// აირჩიეთ საკონტროლო რეგისტრი

// აქტიური რეჟიმი, OSR = 128, ალტიმეტრის რეჟიმი

device.write (0x26, (ბაიტი) 0xB9);

თემა. ძილი (1000);

// წაიკითხეთ მონაცემების 6 ბაიტი 0x00 მისამართიდან (00)

// სტატუსი, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb

ბაიტი მონაცემები = ახალი ბაიტი [6];

მოწყობილობა. წაკითხვა (0x00, მონაცემები, 0, 6);

// გადააკეთეთ მონაცემები 20 ბიტად

int tHeight = ((((მონაცემები [1] & 0xFF) * 65536) + ((მონაცემები [2] & 0xFF) * 256) + (მონაცემები [3] & 0xF0)) / 16);

int temp = ((მონაცემები [4] * 256) + (მონაცემები [5] & 0xF0)) / 16;

ორმაგი სიმაღლე = tHightight / 16.0;

ორმაგი cTemp = (temp / 16.0);

ორმაგი fTemp = cTemp * 1.8 + 32;

// აირჩიეთ საკონტროლო რეგისტრი

// აქტიური რეჟიმი, OSR = 128, ბარომეტრის რეჟიმი

მოწყობილობა. დაწერეთ (0x26, (ბაიტი) 0x39);

თემა. ძილი (1000);

// წაიკითხეთ 4 ბაიტი მონაცემები 0x00 მისამართიდან (00)

// სტატუსი, pres msb1, pres msb, pres lsb

მოწყობილობა. წაკითხვა (0x00, მონაცემები, 0, 4);

// გადააკეთეთ მონაცემები 20 ბიტად

int pres = (((მონაცემები [1] & 0xFF) * 65536) + ((მონაცემები [2] & 0xFF) * 256) + (მონაცემები [3] & 0xF0)) / 16;

ორმაგი წნევა = (pres / 4.0) / 1000.0;

// მონაცემების გამოტანა ეკრანზე

System.out.printf ("წნევა: %.2f kPa %n", წნევა);

System.out.printf ("სიმაღლე: %.2f m %n", სიმაღლე);

System.out.printf ("ტემპერატურა ცელსიუსში: %.2f C %n", cTemp);

System.out.printf ("ტემპერატურა ფარენჰეიტში: %.2f F %n", fTemp);

}

}

ნაბიჯი 4: პროგრამები:

MPL3115A2– ის სხვადასხვა პროგრამა მოიცავს მაღალი სიზუსტის ალტიმეტრიას, სმარტფონებს/ტაბლეტებს, პერსონალურ ელექტრონიკას ალტიმეტრიას და სხვა. ის ასევე შეიძლება ჩართული იყოს GPS Dead Reckoning– ში, GPS– ის გაძლიერებაში გადაუდებელ სამსახურში, რუქის დახმარებაში, ნავიგაციაში, ასევე ამინდის სადგურის აღჭურვილობაში.

გირჩევთ: