Mundarija:

MPL3115A2 bilan Raspberry Pi yordamida balandlik, bosim va harorat: 6 qadam
MPL3115A2 bilan Raspberry Pi yordamida balandlik, bosim va harorat: 6 qadam

Video: MPL3115A2 bilan Raspberry Pi yordamida balandlik, bosim va harorat: 6 qadam

Video: MPL3115A2 bilan Raspberry Pi yordamida balandlik, bosim va harorat: 6 qadam
Video: Lesson 37: Using BME280 Humidity, Barometric Pressure and Temperature Sensor 2024, Iyul
Anonim
MPL3115A2 bilan Raspberry Pi yordamida balandlik, bosim va harorat
MPL3115A2 bilan Raspberry Pi yordamida balandlik, bosim va harorat
MPL3115A2 bilan Raspberry Pi yordamida balandlik, bosim va harorat
MPL3115A2 bilan Raspberry Pi yordamida balandlik, bosim va harorat

Qiziqarli eshitiladi. Hammamiz IoT avlodiga o'tayotganimizda, bu mumkin. Biz elektronika fanati sifatida Raspberry Pi bilan o'ynadik va bu bilimdan foydalanib, qiziqarli loyihalar tuzishga qaror qildik. Ushbu loyihada biz Raspberry Pi yordamida balandlik, havo bosimi, haroratni o'lchaymiz. Shunday qilib, bu erda hujjatlar (har doim o'zgartirilgan va kengaytirilgan). Ko'rsatmalarni bajarishni boshlash va kodni nusxalashni tavsiya qilamiz. Keyinchalik tajriba o'tkazishingiz mumkin. Shunday qilib, boshlaylik.

1 -qadam: Bizga zarur uskunalar

Bizga kerakli uskunalar
Bizga kerakli uskunalar
Bizga kerakli uskunalar
Bizga kerakli uskunalar
Bizga kerakli uskunalar
Bizga kerakli uskunalar
Bizga kerakli uskunalar
Bizga kerakli uskunalar

1. Raspberry Pi

Birinchi qadam Raspberry Pi taxtasini olish edi. Biz o'zimizni sotib oldik va siz ham. Qo'llanmalardan o'rganishni boshladik, biz skript va ulanish tushunchalarini tushundik va keyin bilib oldik. Bu kichkina daho havaskorlar, o'qituvchilar va innovatsion muhit yaratishda keng tarqalgan.

2. Raspberry Pi uchun I²C 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²C protokolidan foydalanadi. Biz bu sensorni Dcube do'konidan sotib oldik

4. Kabelni ulash

Bizda Dcube do'konida I2C ulanish kabeli bor edi

5. Micro USB kabeli

Micro USB kabeli Quvvat manbai Raspberry Pi -ni quvvatlantirish uchun ideal tanlovdir.

6. Internetga kirishni yaxshilash - Ethernet kabeli/WiFi adapteri

Bu davrda har qanday narsaga kirish uchun Internetga ulanish kerak (xuddi oflayn hayotda bo'lgani kabi). Shunday qilib, biz Rasp Pi -dan osongina va hech qanday muammosiz foydalanishimiz uchun Internetga ulanish uchun LAN kabeli yoki Simsiz Nano USB Adapterining (WiFi) maslahatini olamiz.

7. HDMI kabeli (ixtiyoriy, sizning tanlovingiz)

Bu biroz murakkab. Agar xohlasangiz, boshqa monitorni ulash huquqiga ega bo'lishingiz mumkin yoki bu sizning kompyuteringiz/noutbukingiz bilan boshsiz Pi ulanishi orqali o'zingizga juda tejamli bo'ladi.

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

O'chirish sxemasi ko'rsatilgan sxema bo'yicha amalga oshiriladi. Umuman olganda, ulanishlar juda oddiy. 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

Birinchidan, Raspberry Pi -ni oling va unga I²C qalqonini qo'ying. 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. Biz aytgan oddiy jarayon.

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

Sizda bu erda tanlov bor. Siz Raspberry Pi -ni LAN kabeli yoki Wi -Fi ulanish uchun simsiz Nano USB adapteri bilan ulashingiz mumkin. Qanday bo'lmasin, u Internetga ulanishning asosiy maqsadini amalga oshirdi.

O'chirishning kuchi

Micro USB kabelini Raspberry Pi quvvat manbaiga ulang. Chiroqni yoqing va biz borishga tayyormiz.

Ekranga ulanish

Biz HDMI kabelini yangi monitorga ulashimiz yoki SSH/PuTTY kabi masofadan kirishni ishlatib, ijodiy va tejamkor bo'lgan boshsiz Pi-ni yasashimiz mumkin.

3 -qadam: Pythonda Raspberry Pi dasturlash

Python -da Raspberry Pi dasturlash
Python -da Raspberry Pi dasturlash

Raspberry Pi va MPL3115A2 sensori uchun Python 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. Buning uchun bir oz vaqt kerak bo'ladi.

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 Python kodini ham shu erdan ko'chirishingiz mumkin.

# Ixtiyoriy litsenziya bilan tarqatilgan.# Istalgan usulda, xoh foyda, xoh tekin, agar u tegishli ish litsenziyalariga mos keladigan bo'lsa, foydalaning. # MPL3115A2 # Bu kod ControlEverything.com saytida mavjud MPL3115A2_I2CS I2C Mini moduli bilan ishlash uchun mo'ljallangan. #

smbus import qilish

import vaqti

# I2C avtobusini oling

avtobus = smbus. SMBus (1)

# MPL3115A2 manzili, 0x60 (96)

# Boshqarish registrini tanlang, 0x26 (38) # 0xB9 (185) Faol rejim, OSR = 128, Altimetr rejimi bus.write_byte_data (0x60, 0x26, 0xB9) # MPL3115A2 manzil, 0x60 (96) # Ma'lumot konfiguratsiyasi registrini tanlang, 0x13 (19)) # 0x07 (07) Ma'lumot tayyorligi hodisasi balandlik, bosim, harorat uchun yoqilgan bus.write_byte_data (0x60, 0x13, 0x07) # MPL3115A2 manzil, 0x60 (96) # Boshqarish registrini tanlash, 0x26 (38) # 0xB9 (185) Faol rejim, OSR = 128, Altimetr rejimi bus.write_byte_data (0x60, 0x26, 0xB9)

uyqu (1)

# MPL3115A2 manzili, 0x60 (96)

# Ma'lumotni 0x00 (00), 6 bayt # status, tHeight MSB1, tHeight MSB, tHeight LSB, temp MSB, temp LSB data = bus.read_i2c_block_data (0x60, 0x00, 6) dan o'qing.

# Ma'lumotni 20 bitga aylantiring

tHeight = ((ma'lumotlar [1] * 65536) + (ma'lumotlar [2] * 256) + (ma'lumotlar [3] va 0xF0)) / 16 temp = ((ma'lumotlar [4] * 256) + (ma'lumotlar [5] & 0xF0)) / 16 balandlik = tYuqorilik / 16.0 cTemp = temp / 16.0 fTemp = cTemp * 1.8 + 32

# MPL3115A2 manzili, 0x60 (96)

# Boshqarish registrini tanlang, 0x26 (38) # 0x39 (57) Faol rejim, OSR = 128, Barometr rejimi bus.write_byte_data (0x60, 0x26, 0x39)

uyqu (1)

# MPL3115A2 manzili, 0x60 (96)

# Ma'lumotni 0x00 (00), 4 bayt # holati, MSB1, MSB, LSB ma'lumotlari = bus.read_i2c_block_data (0x60, 0x00, 4) dan o'qing

# Ma'lumotni 20 bitga aylantiring

pres = ((ma'lumotlar [1] * 65536) + (ma'lumotlar [2] * 256) + (ma'lumotlar [3] va 0xF0)) / 16 bosim = (pres / 4.0) / 1000.0

# Ma'lumotlarni ekranga chiqarish

"Bosim: %.2f kPa" %bosma bosma "Balandlik: %.2f m" %balandlikda bosma "Selsiydagi harorat: %.2f C" %cTemp chop etish "Farengeytdagi harorat: %.2f F" %fTemp

4 -qadam: Kodning amaliyligi (test)

Kodeksning amaliyligi (test)
Kodeksning amaliyligi (test)

Endi kodni yuklab oling (yoki git pull) va uni Raspberry Pi -da oching.

Terminalda kodni kompilyatsiya qilish va 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 I²C sensorining keng qo'llanilishi xarita (xaritaga yordam, navigatsiya), magnit kompas yoki GPS (GPS o'lik hisobi, favqulodda xizmatlar uchun GPSni takomillashtirish), yuqori aniqlikdagi altimetriya, smartfonlar/planshetlar, shaxsiy elektron altimetriya kabi ilovalarda qo'llaniladi. va yo'ldoshlar (ob -havo stantsiyalari uskunalari/bashorat qilish).

Masalan Raspberry Pi yordamida balandlik, havo bosimi va haroratni o'lchaydigan shaxsiy elektron altimetrni yaratish loyihasi. Shaxsiy elektron altimetr - bu juda tez quriladigan loyiha. Agar sizda barcha qismlar bo'lsa va improvizatsiya qilmasangiz, bu bir necha daqiqaga to'g'ri keladi (albatta mumkin!). Bosim balandligi o'lchagichi-bu ko'pchilik samolyotlarda topilgan balandlik o'lchagichi va osmonda uchuvchilar bilagiga o'rnatilgan versiyalarni shunga o'xshash maqsadlarda ishlatadilar. Sayohatchilar va alpinistlar bilagiga o'rnatilgan yoki qo'lda ishlaydigan balandlikdan foydalanadilar.

6 -qadam: Xulosa

Umid qilamanki, bu loyiha keyingi tajribalarni ilhomlantiradi. Bu I²C sensori juda ko'p qirrali, arzon va qulay. Bu juda o'zgaruvchan dastur bo'lgani uchun, bu loyihani kengaytirish va uni yanada yaxshilashning qiziqarli usullari mavjud. Masalan, balandlik o'lchagichi-bu yo'lda harakatlanuvchi avtoulovlarda navigatsiyaga yordam beradigan ixtiyoriy asbob. Hech qachon asfaltlangan yo'llarni tark etishni mo'ljallamagan, yuqori samarali hashamatli avtomobillar, bu texnologiyadan foydalanadi. Sizning qulayligingiz uchun bizda YouTube -da sizning kashfiyotingizga yordam beradigan qiziqarli video darsimiz bor. Umid qilamanki, bu loyiha keyingi tajribalarni ilhomlantiradi.

Tavsiya: