Mundarija:

Raspberry Pi yordamida MPL3115A2 yordamida balandlik, bosim va haroratni o'lchang: 6 qadam
Raspberry Pi yordamida MPL3115A2 yordamida balandlik, bosim va haroratni o'lchang: 6 qadam

Video: Raspberry Pi yordamida MPL3115A2 yordamida balandlik, bosim va haroratni o'lchang: 6 qadam

Video: Raspberry Pi yordamida MPL3115A2 yordamida balandlik, bosim va haroratni o'lchang: 6 qadam
Video: Lesson 37: Using BME280 Humidity, Barometric Pressure and Temperature Sensor 2024, Noyabr
Anonim
Image
Image
Bizga kerak bo'lgan ajralmas uskunalar
Bizga kerak bo'lgan ajralmas uskunalar

Nimaga egalik qilayotganingizni va nima uchun sizga tegishli ekanligini biling

Bu qiziq. Biz Internet -avtomatlashtirish asrida yashayapmiz, chunki u ko'plab yangi ilovalarga kiradi. Kompyuter va elektronika ixlosmandlari sifatida biz Raspberry Pi bilan ko'p narsalarni o'rgandik va o'z manfaatlarimizni uyg'unlashtirishga qaror qildik. Agar siz I²C ulanishlari va dasturiy ta'minotni sozlashda yangi bo'lsangiz, bu loyiha taxminan bir soat davom etadi va bu MPL3115A2 imkoniyatlarini Java -da Raspberry Pi bilan kengaytirishning ajoyib usuli.

1 -qadam: Bizga kerak bo'lmagan uskunalar

Bizga kerak bo'lgan ajralmas uskunalar
Bizga kerak bo'lgan ajralmas uskunalar
Bizga kerak bo'lgan ajralmas uskunalar
Bizga kerak bo'lgan ajralmas uskunalar
Bizga kerak bo'lgan ajralmas uskunalar
Bizga kerak bo'lgan ajralmas uskunalar

1. Raspberry Pi

Birinchi qadam Raspberry Pi taxtasini olish edi. Bu kichkina dahodan havaskorlar, o'qituvchilar va innovatsion muhit yaratishda foydalaniladi.

2. Raspberry Pi uchun I2C qalqoni

INPI2 (I2C adapteri) Raspberry Pi 2/3 va I²C portlarini bir nechta I2C qurilmalarida ishlatish uchun taqdim etadi. U Dcube do'konida mavjud.

3. Altimetr, bosim va harorat sensori, MPL3115A2

MPL3115A2 - bosim, balandlik va harorat ma'lumotlarini beruvchi I²C interfeysli MEMS bosim sensori. Bu sensor aloqa uchun I²2 protokolidan foydalanadi. Biz bu sensorni Dcube do'konidan sotib oldik.

4. Kabelni ulash

Biz Dcube do'konida mavjud bo'lgan I²C ulanish kabelidan foydalandik.

5. Micro USB kabeli

Raspberry Pi mikro USB -quvvat manbai bilan ishlaydi.

6. Internetga kirishni yaxshilash - Ethernet kabeli/WiFi moduli

Siz qilmoqchi bo'lgan birinchi narsalardan biri - Raspberry Pi -ni Internetga ulash. Siz Ethernet kabeli yoki simsiz USB Nano WiFi adapteri orqali ulanishingiz mumkin.

7. HDMI kabeli (ixtiyoriy, sizning tanlovingiz)

Siz HDMI kabelidan foydalanib, Raspberry Pi -ni monitorga ulashingiz mumkin. Shuningdek, siz Raspberry Pi -ga SSH/PuTTY yordamida masofadan kirishingiz mumkin.

2 -qadam: Devrenni birlashtirish uchun apparat ulanishlari

Devrenni birlashtirish uchun apparat ulanishlari
Devrenni birlashtirish uchun apparat ulanishlari
Devrenni birlashtirish uchun apparat ulanishlari
Devrenni birlashtirish uchun apparat ulanishlari

Ko'rsatilgan sxemaga muvofiq sxemani tuzing. Umuman olganda, ulanishlar juda oddiy. Yuqoridagi ko'rsatmalar va rasmlarga rioya qiling, shunda hech qanday muammo bo'lmasligi kerak. Rejalashtirishda biz apparat va kodlashni, shuningdek elektronika asoslarini ko'rib chiqdik. Biz ushbu loyiha uchun elektronikaning oddiy sxemasini tuzmoqchimiz. Diagrammada siz I²C aloqa protokollariga rioya qilgan holda turli qismlar, quvvat komponentlari va I²C sensorini ko'rishingiz mumkin. Umid qilamanki, bu loyiha uchun elektronika qanchalik sodda ekanligini ko'rsatadi.

Raspberry Pi va I2C qalqonining ulanishi

Buning uchun Raspberry Pi va I²C Shield -ni joylashtiring. Qalqonni sekin bosing (rasmga qarang).

Sensor va Raspberry Pi ulanishi

Sensorni oling va u bilan I²C kabelini ulang. I²C chiqishi har doim I²C kirishiga ulanganligiga ishonch hosil qiling. Shu bilan bir qatorda, I²C qalqoni o'rnatilgan Raspberry Pi, biz tomonda I²C qalqoni va I²C tutashtiruvchi kabellari bor, bu biz uchun juda katta afzallik, chunki bizda faqat vilkasini yoqish opsiyasi qoladi. Endi pinlar va simlar muammosi yo'q, shuning uchun chalkashliklar yo'qoldi. O'zingizni simlar tarmog'ida tasavvur qiling -a, qanday yengillik. Bu kabi oddiy!

E'tibor bering: jigarrang sim har doim bitta qurilmaning chiqishi va boshqa qurilmaning kirishi o'rtasidagi Ground (GND) aloqasini kuzatishi kerak

Internetga ulanish juda muhim

Loyihamiz muvaffaqiyatli bo'lishi uchun bizga Raspberry Pi uchun internet kerak. Bunda Ethernet (LAN) kabelini ulash kabi variantlar mavjud. Bundan tashqari, WiFi adapteridan foydalanishning muqobil, ammo ta'sirli usuli sifatida.

O'chirishning kuchi

Micro USB kabelini Raspberry Pi quvvat manbaiga ulang. Uni yoqing va voila, biz borishga tayyormiz!

Ekranga ulanish

Biz HDMI kabelini monitorga ulashimiz mumkin yoki biz boshsiz Pi (-SSH/PuTTY yordamida) yasashda biroz innovatsion bo'la olamiz, bu esa qo'shimcha xarajatlarni kamaytirishga yordam beradi, chunki biz qandaydir havaskormiz.

Odat pulga tusha boshlasa, bu xobbi deb ataladi

3 -qadam: Java -da Raspberry Pi dasturlash

Java -da Raspberry Pi dasturlash
Java -da Raspberry Pi dasturlash

Raspberry Pi va MPL3115A2 sensori uchun Java kodi. U bizning Github omborida mavjud.

Kodga o'tishdan oldin, Readme faylida berilgan ko'rsatmalarni o'qiganingizga va Raspberry Pi -ni unga muvofiq sozlaganingizga ishonch hosil qiling. Balandlik quyidagi tenglama yordamida bosimdan hisoblanadi:

h = 44330.77 {1 - (p / p0) ^ 0.1902632} + OFF_H (Ro'yxatdan o'tish qiymati)

bu erda p0 = dengiz sathining bosimi (101326 Pa) va h metrda. MPL3115A2 bu qiymatdan foydalanadi, chunki ofset registri LSB uchun 2 Paskal sifatida belgilanadi. Kod sizning oldingizda aniq va siz tasavvur qila oladigan eng oddiy shaklda va sizda hech qanday muammo bo'lmasligi kerak.

Bu sensor uchun ishlaydigan Java kodini bu erdan ham ko'chirishingiz mumkin.

// Ixtiyoriy litsenziya bilan tarqatilgan. // MPL3115A2 // Bu kod ControlEverything.com saytida mavjud 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 yaratish I2CBus Bus = I2CFactory.getInstance (I2CBus. BUS_1); // I2C qurilmasini oling, MPL3115A2 I2C manzili - 0x60 (96) I2CDevice device = Bus.getDevice (0x60); // Boshqaruv registrini tanlang // Faol rejim, OSR = 128, altimetr rejimi device.write (0x26, (bayt) 0xB9); // Ma'lumotlar konfiguratsiyasi registrini tanlang // Balandlik, bosim, harorat moslamasi uchun ma'lumot tayyor hodisa.write (0x13, (bayt) 0x07); // Boshqaruv 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, barometrli uskuna.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; // System.out.printf ekraniga ma'lumotlarni chiqarish ("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: Kodning amaliyligi (ishchi)

Kodeksning amaliyligi (ishchi)
Kodeksning amaliyligi (ishchi)

Endi kodni yuklab oling (yoki git pull) va uni Raspberry Pi -da oching. Kodni kompilyatsiya qilish va terminalga yuklash buyruqlarini bajaring va monitorda chiqishni ko'ring. Bir necha soniyadan so'ng, u barcha parametrlarni ko'rsatadi. Hamma muammosiz ishlashiga ishonch hosil qilganingizdan so'ng, siz ushbu loyihani kattaroq loyihaga aylantirishingiz mumkin.

5 -qadam: Ilovalar va xususiyatlar

MPL3115A2 Precision Altimeter sensorining keng qo'llanilishi Map (Map Assist, Navigatsiya), Magnit Kompas yoki GPS (GPS O'lik Hisoblash, Favqulodda Xizmatlar uchun GPS -ni yaxshilash), yuqori aniqlikdagi altimetriya, smartfonlar/planshetlar, shaxsiy elektron altimetriya va Sun'iy yo'ldoshlar (ob -havo stantsiyalari uskunalari/bashorat qilish).

Masalan Ushbu sensor va Rasp Pi yordamida siz balandlikni, havo bosimi va haroratni o'lchaydigan, parvozda sakrash uskunasining eng muhim qismi bo'lgan Digital Visual Altimeter -ni qurishingiz mumkin. Siz shamol doka va boshqa datchiklarni qo'shishingiz mumkin, shuning uchun ularni yanada qiziqarli qiling.

6 -qadam: Xulosa

Dastur hayratlanarli darajada moslashtirilganligi sababli, siz ushbu loyihani kengaytirish va uni yanada yaxshilashning ko'plab qiziqarli usullari mavjud. Masalan, altimetr/interferometr bir vaqtning o'zida o'lchovlarni oladigan, shu tariqa doimiy yoki bitta yoki ko'p balandlikdagi keng maydonni qamrab oladigan tayanchlarga o'rnatilgan bir nechta altimetrlarni o'z ichiga oladi. YouTubeda ushbu loyihani yaxshiroq tushunishga yordam beradigan qiziqarli video darsimiz bor.

Tavsiya: