Мазмуну:

Raspberry Pi - MPL3115A2 Precision Altimeter Sensor Python үйрөткүчү: 4 кадам
Raspberry Pi - MPL3115A2 Precision Altimeter Sensor Python үйрөткүчү: 4 кадам

Video: Raspberry Pi - MPL3115A2 Precision Altimeter Sensor Python үйрөткүчү: 4 кадам

Video: Raspberry Pi - MPL3115A2 Precision Altimeter Sensor Python үйрөткүчү: 4 кадам
Video: Raspberry Pi MPL115A2 Digital Barometer Python Tutorial 2024, Июль
Anonim
Image
Image

MPL3115A2 так басым/бийиктик жана температура маалыматын берүү үчүн I2C интерфейси бар MEMS басым сенсорун колдонот. Сенсордун жыйынтыктары жогорку разряддуу 24-бит ADC менен санариптештирилет. Ички иштетүү MCU тутумунун компенсация милдеттерин жок кылат. Бул 0,05 кПадагы өзгөрүүнү аныктоого жөндөмдүү, бул бийиктиктин 0,3 м өзгөрүшүнө барабар. Бул жерде python кодун колдонуп, малина pi менен анын көрсөтмөсү.

1 -кадам: Сизге эмне керек..

Сизге эмне керек.. !!
Сизге эмне керек.. !!

1. Raspberry Pi

2. MPL3115A2

3. I²C кабели

4. Raspberry Pi үчүн I²C Shield

5. Ethernet кабели

2 -кадам: Байланыштар:

Байланыштар
Байланыштар
Байланыштар
Байланыштар
Байланыштар
Байланыштар
Байланыштар
Байланыштар

Малина пи үчүн I2C калканчын алыңыз жана аны акырын малинанын пи gpio казыктарынын үстүнө басыңыз.

Андан кийин I2C кабелинин бир учун MPL3115A2 сенсоруна, экинчи учун I2C калканчына туташтырыңыз.

Ethernet кабелин пи -ге туташтырыңыз же WiFi модулун колдонсоңуз болот.

Байланыштар жогорудагы сүрөттө көрсөтүлгөн.

3 -кадам: Код:

Код
Код

MPL3115A2 үчүн питон кодун биздин Github репозиторийинен көчүрүп алсаңыз болот- DCUBE Store Community.

Мына шилтеме

Биз SMBus китепканасын python коду үчүн колдонгонбуз, малина пи боюнча SMBus орнотуу кадамдары бул жерде сүрөттөлгөн:

pypi.python.org/pypi/smbus-cffi/0.5.1

Сиз бул жерден кодду көчүрүп алсаңыз болот, ал төмөнкүчө берилген:

# Эркин лицензия менен бөлүштүрүлгөн.

# Аны каалагандай колдон, пайда же бекер, эгерде ал тиешелүү эмгектеринин лицензиясына туура келсе.

# MPL3115A2

# Бул код MPL3115A2_I2CS I2C Mini Module менен иштөө үчүн иштелип чыккан

smbus импорттоо

импорттоо убактысы

# I2C автобусун алыңыз

автобус = smbus. SMBus (1)

# MPL3115A2 дареги, 0x60 (96)

# Башкаруу реестрин тандоо, 0x26 (38)

# 0xB9 (185) Активдүү режим, OSR = 128, Альтиметрдик режим

bus.write_byte_data (0x60, 0x26, 0xB9)

# MPL3115A2 дареги, 0x60 (96)

# Маалымат конфигурациясынын регистрин тандаңыз, 0x13 (19)

# 0x07 (07) Бийиктикке, басымга, температурага иштетилген маалымат даяр окуясы

bus.write_byte_data (0x60, 0x13, 0x07)

# MPL3115A2 дареги, 0x60 (96)

# Башкаруу реестрин тандоо, 0x26 (38)

# 0xB9 (185) Активдүү режим, OSR = 128, Альтиметрдик режим

bus.write_byte_data (0x60, 0x26, 0xB9)

убакыт.уйку (1)

# MPL3115A2 дареги, 0x60 (96)

# Окууну 0x00 (00), 6 байттан кайра окуу

# статусу, tHeight MSB1, tHeight MSB, tHeight LSB, temp MSB, temp LSB

маалыматтар = bus.read_i2c_block_data (0x60, 0x00, 6)

# Маалыматтарды 20 битке айландырыңыз

tHeight = ((маалымат [1] * 65536) + (маалымат [2] * 256) + (маалымат [3] & 0xF0)) / 16

темп = ((маалымат [4] * 256) + (маалымат [5] & 0xF0)) / 16

бийиктик = бийиктик / 16.0

cTemp = temp / 16.0

fTemp = cTemp * 1.8 + 32

# MPL3115A2 дареги, 0x60 (96)

# Башкаруу реестрин тандоо, 0x26 (38)

# 0x39 (57) Активдүү режим, OSR = 128, Барометр режими

bus.write_byte_data (0x60, 0x26, 0x39)

убакыт.уйку (1)

# MPL3115A2 дареги, 0x60 (96)

# 0x00 (00), 4 байт маалыматтарын кайра окуу

# статусу, MSB1 чейинки, MSB, пресс LSB

маалыматтар = bus.read_i2c_block_data (0x60, 0x00, 4)

# Маалыматтарды 20 битке айландырыңыз

pres = ((маалымат [1] * 65536) + (маалымат [2] * 256) + (маалымат [3] & 0xF0)) / 16

басым = (прес / 4.0) / 1000.0

# Экранга маалыматтарды чыгаруу

басып чыгаруу "Басым: %.2f кПа" %басымы

басып чыгаруу "Бийиктик: %.2f м" %бийиктик

басып чыгаруу "Цельсий боюнча температура: %.2f C" %cTemp

басып чыгаруу "Фаренгейт температурасы: %.2f F" %fTemp

4 -кадам: Тиркемелер:

MPL3115A2дин ар кандай тиркемелери жогорку тактык алтиметриясын, смартфондорду/планшеттерди, персоналдык электроника алтиметриясын ж.б. камтыйт.

Сунушталууда: