Мазмуну:

MPL3115A2 менен Raspberry Pi колдонуу менен бийиктик, басым жана температура: 6 кадам
MPL3115A2 менен Raspberry Pi колдонуу менен бийиктик, басым жана температура: 6 кадам

Video: MPL3115A2 менен Raspberry Pi колдонуу менен бийиктик, басым жана температура: 6 кадам

Video: MPL3115A2 менен Raspberry Pi колдонуу менен бийиктик, басым жана температура: 6 кадам
Video: Урок 96: Датчик атмосферного давления, температуры, приблизительной высоты BMP390 с ЖК-дисплеем 2024, Ноябрь
Anonim
MPL3115A2 менен Raspberry Pi колдонуу менен бийиктик, басым жана температура
MPL3115A2 менен Raspberry Pi колдонуу менен бийиктик, басым жана температура
MPL3115A2 менен Raspberry Pi колдонуу менен бийиктик, басым жана температура
MPL3115A2 менен Raspberry Pi колдонуу менен бийиктик, басым жана температура

Кызыктуу угулат. Бул баарыбыз IoT муунуна өтүп жаткан учурда мүмкүн. Электрониканын таң калыштуусу катары биз Raspberry Pi менен ойноп келе жатабыз жана бул билимди колдонуу менен кызыктуу долбоорлорду түзүүнү чечтик. Бул долбоордо биз Raspberry Pi аркылуу бийиктикти, абанын басымын, температураны өлчөйбүз. Ошентип, бул жерде документтер бар (дайыма өзгөртүлүп жана кеңейтилет). Биз нускамаларды аткаруудан баштоону жана кодду көчүрүүнү сунуштайбыз. Сиз кийинчерээк эксперимент жасай аласыз. Ошентип, баштайлы.

1 -кадам: Бизге керек болгон жабдуулар

Бизге керек болгон жабдуулар
Бизге керек болгон жабдуулар
Бизге керек болгон жабдуулар
Бизге керек болгон жабдуулар
Бизге керек болгон жабдуулар
Бизге керек болгон жабдуулар
Бизге керек болгон жабдуулар
Бизге керек болгон жабдуулар

1. Raspberry Pi

Биринчи кадам Raspberry Pi тактасын алуу болду. Биз өзүбүздүкүн сатып алдык, сиз дагы. Окутуучулардан үйрөнө баштаганда, биз сценарий жана туташуу түшүнүктөрүн түшүнүп, кийин үйрөндүк. Бул кичинекей гений хоббистер, мугалимдер жана инновациялык чөйрөнү түзүүдө кеңири таралган.

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

INPI2 (I2C адаптери) Raspberry Pi 2/3 жана I²C портун бир нече I2C түзмөктөрү менен камсыз кылат. Бул Dcube дүкөнүндө жеткиликтүү

3. Альтиметр, басым жана температура сенсору, MPL3115A2

MPL3115A2 IEMC интерфейси бар MEMS басым сенсору, басым/бийиктик жана температура маалыматтарын берет. Бул сенсор байланыш үчүн I²C протоколун колдонот. Биз бул сенсорду Dcube дүкөнүнөн сатып алдык

4. Кабелди туташтыруу

Бизде Dcube Storeдо I2C туташтыруучу кабели бар болчу

5. Микро USB кабели

Микро USB кабели Электр энергиясы менен камсыздоо Raspberry Pi менен иштөө үчүн идеалдуу чечим.

6. Интернетке кирүүнү жакшыртуу - Ethernet Cable/WiFi адаптери

Бул доордо, баарына жетүү үчүн интернет байланышы керек (оффлайнда жашоо бар сыяктуу). Ошентип, биз LAN кабелинин же Wireless Nano USB адаптеринин (WiFi) кеңешин колдонуп, интернет байланышыбызды куруп, Rasp Piбизди эч кыйынчылыксыз жана оңой колдоно алабыз.

7. HDMI Cable (Милдеттүү эмес, Сиздин тандооңуз)

Бул бир аз татаал. Кааласаңыз же башка мониторду тиркөөгө күчүңүз жетет, эгерде сиз кааласаңыз же бул сиздин компьютериңизге/ноутбукуңузга башы жок Pi туташуусу менен өзүңүз үчүн абдан үнөмдүү болсо.

2 -кадам: Аппараттык туташуулар схеманы бириктирет

Районду бириктирүү үчүн аппараттык туташуулар
Районду бириктирүү үчүн аппараттык туташуулар
Районду бириктирүү үчүн аппараттык туташуулар
Районду бириктирүү үчүн аппараттык туташуулар

Схеманы көрсөтүлгөн схемага ылайык жасаңыз. Жалпысынан алганда, байланыштар абдан жөнөкөй. Көрсөтмөлөрдү жана сүрөттөрдү ээрчиңиз, жана сизде эч кандай көйгөй болбошу керек.

Пландаштырып жатып, биз аппараттык жана коддоону, ошондой эле электрониканын негиздерин карадык. Биз бул долбоор үчүн жөнөкөй электроника схемасын иштеп чыккыбыз келди. Диаграммада I²C байланыш протоколдоруна ылайык ар кандай бөлүктөрдү, күч компоненттерин жана I²C сенсорун байкаса болот. Бул долбоордун электроникасы канчалык жөнөкөй экенин көрсөтөт деп үмүттөнөбүз.

Raspberry Pi жана I2C Shieldдин туташуусу

Биринчиден, Raspberry Pi алып, ага I²C Shield коюңуз. Калканды акырын басыңыз (Сүрөттү караңыз).

Сенсор менен Raspberry Pi байланышы

Сенсорду алып, аны менен I²C кабелин туташтырыңыз. I²C Output ар дайым I²C киришине туташып турганын текшериңиз. Анын артында I²C экраны орнотулган Raspberry Pi турат, бизде I²C Shield жана I²C туташтыруучу кабелдер абдан чоң артыкчылык болуп саналат, анткени бизде сайгыч жана ойноо опциясы гана калды. Мындан ары казыктар жана зым көйгөйлөрү жок, ошондуктан башаламандык жок болду. Өзүңүздү зымдардын торунда элестетип, ага кирүү кандай жеңилдик. Биз айткан жөнөкөй процесс.

Эскертүү: күрөң зым дайыма бир түзмөктүн чыгышы менен башка түзмөктүн киришинин ортосундагы Ground (GND) байланышын ээрчиши керек

Интернетке туташуу абдан маанилүү

Чынында бул жерде тандооңуз бар. Сиз Raspberry Pi'ни LAN кабели же WiFi туташуусу үчүн зымсыз Nano USB адаптери менен туташтыра аласыз. Кандай болбосун, бул интернетке туташуу болгон негизги максат.

Райондун кубаттуулугу

Micro USB кабелин Raspberry Pi'дин кубат уячасына сайыңыз. Аны күйгүзүңүз, биз барганыбыз жакшы.

Экранга туташуу

Биз HDMI кабелин жаңы мониторго туташтырып алышыбыз мүмкүн же башыбыз жок Пи жасай алабыз, ал SSH/PuTTY сыяктуу алыстан кирүү аркылуу чыгармачыл жана үнөмдүү. (Биз жашыруун уюмдай каржыланбайбыз)

3 -кадам: Pythonдо Raspberry Pi программалоо

Pythonдо Raspberry Pi программалоо
Pythonдо Raspberry Pi программалоо

Raspberry Pi жана MPL3115A2 сенсорунун Python коду. Бул биздин Github репозиторийибизде жеткиликтүү.

Кодго өтүүдөн мурун, Readme файлында берилген көрсөтмөлөрдү окуп чыкканыңызга ишениңиз жана ага ылайык Raspberry Pi орнотуңуз. Бул үчүн бир аз убакыт талап кылынат.

Бийиктик төмөнкү теңдеме аркылуу басымдан эсептелет:

h = 44330.77 {1 - (p / p0) ^ 0.1902632} + OFF_H (Каттоо мааниси)

Бул жерде p0 = деңиз деңгээлинин басымы (101326 Па) жана h метр менен. MPL3115A2 бул маанини колдонот, анткени офсеттик реестр LSBге 2 Паскаль деп аныкталат.

Код так сиздин алдыңызда жана сиз элестете турган эң жөнөкөй формада жана сизде эч кандай көйгөй болбошу керек.

Бул сенсордун Python кодун бул жерден көчүрүп алсаңыз болот.

# Эркин лицензия менен бөлүштүрүлгөн.# Аны каалагандай колдон, пайда же бекер, эгер ал тиешелүү эмгектеринин лицензиясына туура келсе. # MPL3115A2 # Бул код ControlEverything.com жеткиликтүү MPL3115A2_I2CS I2C Mini Module менен иштөө үчүн иштелип чыккан. #

smbus импорттоо

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

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

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

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

# Башкаруу реестрин тандоо, 0x26 (38) # 0xB9 (185) активдүү режим, OSR = 128, Altimeter mode 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, Altimeter mode bus.write_byte_data (0x60, 0x26, 0xB9)

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

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

# 0x00 (00), 6 байт статусу, tHeight MSB1, tHeight MSB, tHeight LSB, temp MSB, temp LSB data = bus.read_i2c_block_data (0x60, 0x00, 6) маалыматтарын кайра окуу

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

tHeight = ((маалымат [1] * 65536) + (маалымат [2] * 256) + (маалымат [3] & 0xF0)) / 16 темп = ((маалымат [4] * 256) + (маалымат [5] & 0xF0)) / 16 бийиктик = tHeight / 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, Pres LSB data = bus.read_i2c_block_data (0x60, 0x00, 4) маалыматтарын кайра окуу

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

pres = ((маалымат [1] * 65536) + (маалымат [2] * 256) + (маалымат [3] & 0xF0)) / 16 басым = (прес / 4.0) / 1000.0

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

басып чыгаруу "Кысым: %.2f кПа" %басым басуу "Бийиктик: %.2f м" %бийиктик басып чыгаруу "Цельсий боюнча температура: %.2f С" %cTemp басып чыгаруу "Фаренгейт температурасы: %.2f F" %fTemp

4 -кадам: Коддун практикалык (тестирлөө)

Кодекстин практикалуулугу (тестирлөө)
Кодекстин практикалуулугу (тестирлөө)

Эми кодду жүктөп алыңыз (же git pull) жана аны Raspberry Piден ачыңыз.

Терминалга кодду компиляциялоо жана жүктөө үчүн буйруктарды аткарыңыз жана монитордогу чыгууну көрүңүз. Бир нече секунддан кийин, ал бардык параметрлерди көрсөтөт. Баары бир калыпта иштээрине ынангандан кийин, бул долбоорду чоңураак долбоорго кабыл алсаңыз болот.

5 -кадам: Тиркемелер жана өзгөчөлүктөр

MPL3115A2 Precision Altimeter I²C сенсорунун кеңири колдонулушу Карта (Map Assist, Navigation), Magnetic Compass, or GPS (GPS Dead Reckoning, GPS Enhancement for Emergency Services), Жогорку Тактык Альтиметрия, Смартфондор/Планшеттер, Персоналдык Электроника Альтиметриясы сыяктуу колдонмолордо колдонулат. жана спутниктери (Аба ырайы станциясынын жабдуулары/болжолдоо).

Мисалы, Raspberry Pi аркылуу бийиктикти, абанын басымын, температураны өлчөгөн жеке электроника альтиметрин даярдоо долбоору. Personal Electronics Altimeter - бул абдан тез курула турган долбоор. Эгерде сизде бардык бөлүктөр болсо жана импровизация кылбасаңыз, анда бир нече мүнөттөр талап кылынат (албетте болот!). Кысымдын бийиктиги-бул көпчүлүк учактарда кездешүүчү бийиктиги, асман чайкоочулар ушундай максаттар үчүн билекке орнотулган версияларды колдонушат. Саякатчылар жана альпинисттер билекке орнотулган же колго көтөрүлгөн бийиктигин колдонушат.

6 -кадам: Жыйынтык

Бул долбоор кийинки эксперименттерге дем берет деп үмүттөнөбүз. Бул I²C сенсору ар тараптуу, арзан жана жеткиликтүү. Бул өтө өзгөрүлмө программа болгондуктан, бул долбоорду узартуунун жана андан да жакшыртуунун кызыктуу жолдору бар. Мисалы, альтиметр-жолсуз жүргөн унааларда навигацияга жардам берүүчү кошумча шайман. Асфальтталган жолдорду таштап кетүү эч качан ойлонулбаган кээ бир жогорку өндүрүмдүү люкс машиналары бул технологияны колдонушат. Сизге ыңгайлуу болушу үчүн, бизде YouTube боюнча кызыктуу видео үйрөткүч бар, ал сиздин изилдөөңүзгө жардам берет. Бул долбоор кийинки эксперименттерге дем берет деп үмүттөнөбүз.

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