Mundarija:

Raspberry Pi - MPL3115A2 nozik altimetrli sensorli Java darsligi: 4 qadam
Raspberry Pi - MPL3115A2 nozik altimetrli sensorli Java darsligi: 4 qadam

Video: Raspberry Pi - MPL3115A2 nozik altimetrli sensorli Java darsligi: 4 qadam

Video: Raspberry Pi - MPL3115A2 nozik altimetrli sensorli Java darsligi: 4 qadam
Video: Raspberry Pi MPL3115A2 Precision Altimeter Sensor Python Tutorial 2024, Iyun
Anonim
Image
Image

MPL3115A2 aniq bosim/balandlik va harorat ma'lumotlarini taqdim etish uchun I2C interfeysli MEMS bosim sensori bilan ishlaydi. Sensor chiqishlari yuqori aniqlikdagi 24 bitli ADC yordamida raqamlashtirilgan. Ichki ishlov berish MCU tizimidagi kompensatsiya vazifalarini olib tashlaydi. U 0,05 kPa o'zgarishini aniqlay oladi, bu balandlikning 0,3 m o'zgarishiga teng. Bu erda java kodi yordamida malina pi bilan namoyish.

1 -qadam: Sizga nima kerak.. !

Sizga nima kerak.. !!
Sizga nima kerak.. !!

1. Raspberry Pi

2. MPL3115A2

3. I²C kabeli

4. Raspberry Pi uchun I²C qalqoni

5. Ethernet kabeli

2 -qadam: Ulanishlar:

Ulanishlar
Ulanishlar
Ulanishlar
Ulanishlar
Ulanishlar
Ulanishlar
Ulanishlar
Ulanishlar

Malinali pi uchun I2C qalqonini oling va uni malina pi gpio pimlariga sekin suring.

Keyin I2C kabelining bir uchini MPL3115A2 sensoriga, ikkinchi uchini esa I2C ekraniga ulang.

Ethernet kabelini pi -ga ulang yoki WiFi modulidan foydalanishingiz mumkin.

Ulanishlar yuqoridagi rasmda ko'rsatilgan.

3 -qadam: Kod:

Kod
Kod

MPL3115A2 uchun java kodini bizning github omboridan- DCUBE do'konidan yuklab olish mumkin.

Mana shu havola:

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

Biz Java kodi uchun pi4j kutubxonasidan foydalandik, malina pi ga pi4j o'rnatish bosqichlari bu erda tasvirlangan:

pi4j.com/install.html

Siz bu erdan kodni nusxalashingiz mumkin, u quyidagicha berilgan:

// Ixtiyoriy litsenziya bilan tarqatilgan.

// Agar xohlasangiz, foyda yoki tekin ishlating, agar u tegishli asarlar litsenziyalariga mos kelsa.

// MPL3115A2

// Bu kod MPL3115A2_I2CS I2C Mini moduli bilan ishlash uchun mo'ljallangan.

com.pi4j.io.i2c. I2CBus -ni import qilish;

com.pi4j.io.i2c. I2CDevice -ni import qilish;

com.pi4j.io.i2c. I2CFactory -ni import qilish;

java.io. IOException ni import qilish;

umumiy sinf MPL3115A2

{

public static void main (String args ) istisno qiladi

{

// I2C avtobusini yarating

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

// I2C qurilmasini oling, MPL3115A2 I2C manzili 0x60 (96)

I2CDevice qurilmasi = Bus.getDevice (0x60);

// Boshqarish registrini tanlang

// Faol rejim, OSR = 128, altimetr rejimi

device.write (0x26, (bayt) 0xB9);

// Ma'lumot konfiguratsiyasi registrini tanlang

// Ma'lumot tayyor hodisasi balandlik, bosim, harorat uchun yoqilgan

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

// Boshqarish registrini tanlang

// Faol rejim, OSR = 128, altimetr rejimi

device.write (0x26, (bayt) 0xB9);

Thread.sleep (1000);

// 0x00 (00) manzilidan 6 bayt ma'lumotni o'qing

// status, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb

bayt ma'lumotlar = yangi bayt [6];

device.read (0x00, ma'lumotlar, 0, 6);

// Ma'lumotni 20 bitga aylantiring

int tHeight = ((((ma'lumotlar [1] & 0xFF) * 65536) + ((ma'lumotlar [2] & 0xFF) * 256) + (ma'lumotlar [3] & 0xF0)) / 16);

int temp = ((ma'lumotlar [4] * 256) + (ma'lumotlar [5] & 0xF0)) / 16;

er -xotin balandlik = tHeight / 16.0;

er -xotin cTemp = (temp / 16.0);

er -xotin fTemp = cTemp * 1.8 + 32;

// Boshqarish registrini tanlang

// Faol rejim, OSR = 128, barometr rejimi

device.write (0x26, (bayt) 0x39);

Thread.sleep (1000);

// 0x00 (00) manzilidan 4 bayt ma'lumotni o'qing

// status, pres msb1, pres msb, pres lsb

device.read (0x00, ma'lumotlar, 0, 4);

// Ma'lumotni 20 bitga aylantiring

int pres = (((ma'lumotlar [1] & 0xFF) * 65536) + ((ma'lumotlar [2] & 0xFF) * 256) + (ma'lumotlar [3] & 0xF0)) / 16;

er -xotin bosim = (pres / 4.0) / 1000.0;

// Ma'lumotni ekranga chiqarish

System.out.printf ("Bosim: %.2f kPa %n", bosim);

System.out.printf ("Balandlik: %.2f m %n", balandlik);

System.out.printf ("Selsiy bo'yicha harorat: %.2f C %n", cTemp);

System.out.printf ("Farengeytdagi harorat: %.2f F %n", fTemp);

}

}

4 -qadam: Ilovalar:

MPL3115A2 -ning turli xil ilovalari yuqori aniqlikdagi altimetriya, smartfonlar/planshetlar, shaxsiy elektron altimetriya va boshqalarni o'z ichiga oladi. Shuningdek, u GPS o'lik hisob -kitobiga, favqulodda xizmatlar uchun GPS -ni takomillashtirishga, xaritaga yordam berishga, navigatsiyaga, shuningdek ob -havo stantsiyasi uskunasiga qo'shilishi mumkin.

Tavsiya: