Агуулгын хүснэгт:

Raspberry Pi - MPL3115A2 нарийвчлалтай өндөр хэмжигч мэдрэгч Java заавар: 4 алхам
Raspberry Pi - MPL3115A2 нарийвчлалтай өндөр хэмжигч мэдрэгч Java заавар: 4 алхам

Видео: Raspberry Pi - MPL3115A2 нарийвчлалтай өндөр хэмжигч мэдрэгч Java заавар: 4 алхам

Видео: Raspberry Pi - MPL3115A2 нарийвчлалтай өндөр хэмжигч мэдрэгч Java заавар: 4 алхам
Видео: Бесконтактный датчик температуры дальнего действия MLX90614-DCI с Arduino 2024, Есдүгээр
Anonim
Image
Image

MPL3115A2 нь MEMS даралт мэдрэгчийг ашиглан I2C интерфэйстэй бөгөөд даралт/өндөр, температурын үнэн зөв мэдээллийг өгдөг. Мэдрэгчийн гаралтыг 24 битийн өндөр нарийвчлалтай ADC ашиглан дижитал хэлбэрт оруулсан болно. Дотоод боловсруулалт нь хүлээн авагчийн MCU системээс нөхөн олговрын даалгавруудыг арилгадаг. Энэ нь ердөө 0.05 кПа -ийн өөрчлөлтийг илрүүлэх чадвартай бөгөөд энэ нь өндрийн 0.3 м -ийн өөрчлөлттэй тэнцэнэ. Жава код ашиглан бөөрөлзгөнө pi -тэй хийсэн жагсаал энд байна.

Алхам 1: Танд хэрэгтэй зүйл..

Чамд юу хэрэгтэй вэ..!!
Чамд юу хэрэгтэй вэ..!!

1. Raspberry Pi

2. MPL3115A2

3. I²C кабель

4. Raspberry Pi -ийн I²C бамбай

5. Ethernet кабель

Алхам 2: Холболтууд:

Холболтууд
Холболтууд
Холболтууд
Холболтууд
Холболтууд
Холболтууд
Холболтууд
Холболтууд

Бөөрөлзгөнө pi -д зориулсан I2C бамбай аваад бөөрөлзгөнө pi -ийн gpio тээглүүрээр зөөлөн дарна уу.

Дараа нь I2C кабелийн нэг үзүүрийг MPL3115A2 мэдрэгч, нөгөө үзүүрийг I2C бамбай руу холбоно уу.

Мөн Ethernet кабелийг pi руу холбоно уу, эсвэл WiFi модулийг ашиглаж болно.

Холболтыг дээрх зураг дээр харуулав.

Алхам 3: Код:

Код
Код

MPL3115A2-ийн java кодыг манай github репозитороос татаж авах боломжтой- DCUBE Дэлгүүр.

Үүнтэй ижил холбоос энд байна:

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

Бид java кодын хувьд pi4j номын санг ашигласан бөгөөд бөөрөлзгөнө pi дээр pi4j суулгах алхамуудыг энд тайлбарласан болно.

pi4j.com/install.html

Та мөн кодыг эндээс хуулж болно, үүнийг дараах байдлаар өгсөн болно.

// Хүсэл зоригийн лицензээр тараасан.

// Үүнийг холбогдох бүтээлүүдийнхээ лицензтэй нийцсэн тохиолдолд ашиг, үнэгүй ашиглах боломжтой.

// MPL3115A2

// Энэ код нь MPL3115A2_I2CS I2C Mini модуль дээр ажиллахад зориулагдсан болно.

com.pi4j.io.i2c. I2CBus импортлох;

com.pi4j.io.i2c. I2CD төхөөрөмжийг импортлох;

com.pi4j.io.i2c. I2CFactory импортлох;

java.io. IOException импортлох;

олон нийтийн анги MPL3115A2

{

public static void main (String args ) Exception хаядаг

{

// I2C автобус үүсгэх

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

// I2C төхөөрөмж авах, MPL3115A2 I2C хаяг нь 0x60 (96)

I2CDevice төхөөрөмж = Bus.getDevice (0x60);

// Хяналтын бүртгэлийг сонгоно уу

// Идэвхтэй горим, OSR = 128, өндөр хэмжигч горим

device.write (0x26, (байт) 0xB9);

// Өгөгдлийн тохиргооны бүртгэлийг сонгоно уу

// Өгөгдөлд бэлэн болсон үйл явдлыг өндөр, даралт, температурт идэвхжүүлсэн

device.write (0x13, (байт) 0x07);

// Хяналтын бүртгэлийг сонгоно уу

// Идэвхтэй горим, OSR = 128, өндөр хэмжигч горим

device.write (0x26, (байт) 0xB9);

Thread.sleep (1000);

// 0x00 (00) хаягаас 6 байт өгөгдлийг унших

// төлөв, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb

байт өгөгдөл = шинэ байт [6];

device.read (0x00, өгөгдөл, 0, 6);

// Өгөгдлийг 20 бит болгон хөрвүүлэх

int tHeight = ((((өгөгдөл [1] & 0xFF) * 65536) + ((өгөгдөл [2] & 0xFF) * 256) + (өгөгдөл [3] & 0xF0)) / 16);

int temp = ((өгөгдөл [4] * 256) + (өгөгдөл [5] & 0xF0)) / 16;

давхар өндөр = t Өндөр / 16.0;

давхар cTemp = (temp / 16.0);

давхар fTemp = cTemp * 1.8 + 32;

// Хяналтын бүртгэлийг сонгоно уу

// Идэвхтэй горим, OSR = 128, барометрийн горим

device.write (0x26, (байт) 0x39);

Thread.sleep (1000);

// 0x00 (00) хаягаас 4 байтын өгөгдлийг унших

// төлөв, өмнөх msb1, pres msb, pres lsb

device.read (0x00, өгөгдөл, 0, 4);

// Өгөгдлийг 20 бит болгон хөрвүүлэх

int pres = (((өгөгдөл [1] & 0xFF) * 65536) + ((өгөгдөл [2] & 0xFF) * 256) + (өгөгдөл [3] & 0xF0)) / 16;

давхар даралт = (pres / 4.0) / 1000.0;

// Дэлгэц рүү өгөгдөл гаргана

System.out.printf ("Даралт: %.2f кПа %n", даралт);

System.out.printf ("Өндөр: %.2f m %n", өндөр);

System.out.printf ("Цельсийн температур: %.2f C %n", cTemp);

System.out.printf ("Фаренгейт дэх температур: %.2f F %n", fTemp);

}

}

Алхам 4: Өргөдөл:

MPL3115A2 -ийн янз бүрийн хэрэглээнд өндөр нарийвчлалтай хэмжих хэрэгсэл, ухаалаг гар утас/таблет, хувийн электроник хэмжигч гэх мэт орно. Үүнийг GPS -ийн үхлийн тооцоо, яаралтай тусламжийн үйлчилгээний GPS -ийн сайжруулалт, газрын зургийн туслалцаа, навигаци, цаг уурын станцын тоног төхөөрөмжид оруулж болно.

Зөвлөмж болгож буй: