Mundarija:
Video: Raspberry Pi - MPL3115A2 nozik altimetrli sensorli Python qo'llanmasi: 4 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:23
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 python kodi yordamida malina pi bilan namoyish.
1 -qadam: 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:
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:
MPL3115A2 uchun python kodini bizning Github omboridan- DCUBE do'konlar hamjamiyatidan yuklab olish mumkin.
Mana havola
Biz python kodi uchun SMBus kutubxonasidan foydalandik, malina pi ga SMBus o'rnatish bosqichlari bu erda tasvirlangan:
pypi.python.org/pypi/smbus-cffi/0.5.1
Siz bu erdan kodni nusxalashingiz mumkin, u quyidagicha berilgan:
# Ixtiyoriy litsenziya bilan tarqatilgan.
# Agar xohlasang, foyda yoki tekin, agar u tegishli ish litsenziyalariga mos keladigan bo'lsa, ishlat.
# MPL3115A2
# Bu kod 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 manzili, 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 manzili, 0x60 (96)
# Boshqarish registrini tanlang, 0x26 (38)
# 0xB9 (185) Faol rejim, OSR = 128, Altimetr rejimi
bus.write_byte_data (0x60, 0x26, 0xB9)
uyqu (1)
# MPL3115A2 manzili, 0x60 (96)
# 0x00 (00), 6 baytdan ma'lumotlarni o'qing
# status, tHeight MSB1, tHeight MSB, tHeight LSB, temp MSB, temp LSB
ma'lumotlar = bus.read_i2c_block_data (0x60, 0x00, 6)
# 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 = balandlik / 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 baytdan qaytarib o'qing
# status, MSB1, MSB, Pres LSB
ma'lumotlar = bus.read_i2c_block_data (0x60, 0x00, 4)
# 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
chop etish "Bosim: %.2f kPa" %bosim
"Balandlik: %.2f m" %balandlikni chop eting
chop etish "Tselsiy bo'yicha harorat: %.2f C" %cTemp
chop etish "Farengeytdagi harorat: %.2f F" %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:
Raspberry Pi - ADXL345 3 o'qli akselerometr Python qo'llanmasi: 4 qadam
Raspberry Pi-ADXL345 3 o'qli akselerometr Python qo'llanmasi: ADXL345-bu kichik, ingichka, ultra quvvatli, 3 o'qli akselerometr, yuqori aniqlikdagi (13 bitli) o'lchami ± 16 g gacha. Raqamli chiqish ma'lumotlari 16 bitli ikkita qo'shimcha sifatida formatlangan va I2 C raqamli interfeysi orqali kirish mumkin. O'lchovlar
NodeMCU sensorli sensorli LDR haroratni boshqarish rölesi bilan uy avtomatizatsiyasi: 16 qadam
NodeMCU sensorli sensorli LDR haroratni nazorat qilish rölesi yordamida uyni avtomatlashtirish: NodeMCU -ning oldingi loyihalarida men Blynk ilovasidan ikkita maishiy texnikani boshqarganman. Men qo'lda boshqarish va qo'shimcha funktsiyalarni qo'shish orqali loyihani yangilash uchun ko'plab sharhlar va xabarlarni oldim, shuning uchun men bu aqlli uyni kengaytirish qutisini yaratdim
Prototip - odam sensorli sensorli signalli qurilma (KY -036): 4 qadam
Prototip - Odam sensorli sensori yordamida signalizatsiya qurilmasi (KY -036): Ushbu loyihada men teginish bilan ishlaydigan signalizatsiya qurilmasini loyihalashtiraman. Ushbu loyiha uchun sizga inson sensorli sensor (KY-036) kerak bo'ladi. Sizga ushbu loyiha haqida qisqacha ma'lumot berishga ruxsat bering, yuqoridagi rasmlarda ko'rib turganingizdek, sensorli sensor
Raspberry Pi A1332 nozik zali - effektli burchak sensori Java darsligi: 4 qadam
Raspberry Pi A1332 Precision Hall - effektli burchak sensori Java darsligi: A1332 - bu 360 ° kontaktsiz yuqori aniqlikdagi programlanadigan magnit burchakli joylashuv sensori. U I2C interfeysi yordamida raqamli tizimlar uchun mo'ljallangan. U Circular Vertical Hall (CVH) texnologiyasi va dasturlashtiriladigan mikroprotsessor signaliga asoslangan
Sensorli uchta sensorli davr + Sensorli taymer davri: 4 qadam
Sensorli uchta sensorli davr + Sensorli taymer davri: Sensorli sensor - bu pimlarga teginish aniqlanganda yoqiladigan elektron. Bu vaqtinchalik ishlaydi, ya'ni yuk faqat pimlarga tegib turganda yoqiladi, bu erda men sizga teginishning uch xil usulini ko'rsataman