Мазмуну:
Video: Raspberry Pi - MPL3115A2 Precision Altimeter Sensor Python үйрөткүчү: 4 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:38
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дин ар кандай тиркемелери жогорку тактык алтиметриясын, смартфондорду/планшеттерди, персоналдык электроника алтиметриясын ж.б. камтыйт.
Сунушталууда:
Raspberry Pi - ADXL345 3 -октук акселерометр Python үйрөткүчү: 4 кадам
Raspberry Pi-ADXL345 3-Axis Accelerometer Python үйрөткүчү: ADXL345-кичинекей, ичке, ультра кубаттуу, 3 октук акселерометр, ± 16 г чейин жогорку чечилиште (13-бит) өлчөө. Санарип чыгуучу маалыматтар 16-бит эки катары толукталган жана I2 C санариптик интерфейси аркылуу жеткиликтүү. Ал өлчөйт
Raspberry Pi - BH1715 Digital Ambient Light Sensor Python үйрөткүчү: 4 кадам
Raspberry Pi - BH1715 Digital Ambient Light Sensor Python үйрөткүчү: BH1715 - бул I²C автобус интерфейси бар санариптик жарык сенсору. BH1715, адатта, мобилдик түзмөктөр үчүн ЖК жана Баскычтоптун арткы жарык кубатын тууралоо үчүн айланадагы жарык маалыматтарды алуу үчүн колдонулат. Бул түзмөк 16-биттик чечимди жана жөндөөнү сунуштайт
Raspberry Pi - TMP007 Infrared Thermopile Sensor Python үйрөткүчү: 4 кадам
Raspberry Pi - TMP007 Infrared Thermopile Sensor Python үйрөткүчү: TMP007 - бул инфрақызыл термопил сенсор, ал объектинин температурасын аны менен байланышпастан өлчөйт. Сенсор талаасындагы объект тарабынан чыгарылган инфракызыл энергия сенсорго интеграцияланган термопил тарабынан сиңирилет. Термопил
Raspberry Pi - TSL45315 Ambient Light Sensor Python үйрөткүчү: 4 кадам
Raspberry Pi - TSL45315 Ambient Light Sensor Python үйрөткүчү: TSL45315 - бул санариптик жарык сенсору. Бул жарыктын ар кандай шарттарында адамдын көзүнүн реакциясын болжолдойт. Түзмөктөрдүн үч тандалма интеграция убактысы бар жана I2C автобус интерфейси аркылуу 16-бит люкс түз чыгууну камсыз кылат. Түзмөк ко
Raspberry Pi A1332 Precision Hall - Effect Angle Sensor Java үйрөткүчү: 4 кадам
Raspberry Pi A1332 Precision Hall - Effect Angle Sensor Java үйрөткүчү: A1332 - бул 360 ° контактсыз жогорку чечимдүү программалоочу магниттик бурчтун сенсору. Бул I2C интерфейсин колдонгон санарип системалар үчүн иштелип чыккан. Ал Circular Vertical Hall (CVH) технологиясына жана программалоочу микропроцессорго негизделген сигналга курулган