Мазмуну:

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

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

Video: Raspberry Pi колдонуу, MPL3115A2 менен бийиктикти, басымды жана температураны өлчөө: 6 кадам
Video: Как собрать ПЛК Raspberry Pi Pico || Редактор OpenPLC 2024, Ноябрь
Anonim
Image
Image
Бизге керектүү жабдуулар
Бизге керектүү жабдуулар

Эмнеге таандык экениңизди жана эмне үчүн ага ээлик кылганыңызды билиңиз

Бул кызык. Биз Интернетти автоматташтыруу доорунда жашап жатабыз, анткени ал көптөгөн жаңы тиркемелерге кирет. Компьютер жана электроника ышкыбоздору катары биз Raspberry Pi менен көп нерсени үйрөнүп, кызыкчылыктарыбызды аралаштырууну чечтик. Эгерде сиз I²C туташууларын жана Программалык камсыздоону жаңыдан үйрөнүп жатсаңыз, бул долбоор болжол менен бир саатка созулат жана бул MPL3115A2нин Javaдагы Raspberry Pi менен мүмкүнчүлүктөрүн кеңейтүүнүн эң сонун жолу.

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

Бизге керектүү жабдуулар
Бизге керектүү жабдуулар
Бизге керектүү жабдуулар
Бизге керектүү жабдуулар
Бизге керектүү жабдуулар
Бизге керектүү жабдуулар

1. Raspberry Pi

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

2. Raspberry Pi үчүн I2C Shield

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

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

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

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

Биз Dcube Storeдо бар I²C туташтыруу кабелин колдондук.

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

Raspberry Pi микро USB менен камсыздалат.

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

Сиз кыла турган эң биринчи нерселердин бири - Raspberry Piңизди Интернетке туташтыруу. Сиз Ethernet кабелин же Wireless USB Nano WiFi адаптери менен туташа аласыз.

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

Сиз HDMI кабели аркылуу мониторго Raspberry Pi туташтыра аласыз. Ошондой эле, Raspberry Pi'ге SSH/PuTTY аркылуу алыстан кире аласыз.

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 үчүн интернетке кирүү керек. Бул жерде сизде Ethernet (LAN) кабелин туташтыруу сыяктуу параметрлер бар. Ошондой эле, WiFi адаптерин колдонуунун альтернатива, бирок таасирдүү жолу катары.

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

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

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

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

Адат акчага чыга баштаганда, бул хобби деп аталат

3 -кадам: Javaдагы Raspberry Pi программалоосу

Javaдагы Raspberry Pi программалоо
Javaдагы Raspberry Pi программалоо

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

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

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

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

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

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

com.pi4j.io.i2c. I2CBus импорттоо;

com.pi4j.io.i2c. I2CDevice импорттоо; com.pi4j.io.i2c. I2CFactory импорттоо; java.io. IOException импорттоо;

коомдук класс MPL3115A2

{public static void main (String args ) Exception ыргытат {// I2C шинасын түзүү I2CBus Bus = I2CFactory.getInstance (I2CBus. BUS_1); // I2C түзмөгүн алыңыз, MPL3115A2 I2C дареги 0x60 (96) I2CDevice түзмөгү = Bus.getDevice (0x60); // Башкаруу реестрин тандоо // Активдүү режим, OSR = 128, altimeter mode device.write (0x26, (байт) 0xB9); // Маалымат конфигурациясынын регистрин тандоо // Бийиктикке, басымга, температурага түзмөккө жазуу үчүн даяр болгон окуя.write (0x13, (байт) 0x07); // Башкаруу реестрин тандоо // Активдүү режим, OSR = 128, altimeter mode device.write (0x26, (байт) 0xB9); Thread.sleep (1000);

// 0x00 (00) дарегинен 6 байт маалыматтарды окуу

// статус, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb байт маалыматтар = жаңы байт [6]; device.read (0x00, data, 0, 6);

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

int tHeight = (((((маалымат [1] & 0xFF) * 65536) + ((маалымат [2] & 0xFF) * 256) + (маалымат [3] & 0xF0)) / 16); int temp = ((маалыматтар [4] * 256) + (маалыматтар [5] & 0xF0)) / 16; кош бийиктик = tHeight / 16.0; кош cTemp = (temp / 16.0); кош fTemp = cTemp * 1.8 + 32;

// Башкаруу реестрин тандоо

// Активдүү режим, OSR = 128, barometer mode device.write (0x26, (байт) 0x39); Thread.sleep (1000); // 0x00 (00) адресинен 4 байт маалыматтарды окуңуз // статус, пресс msb1, pres msb, pres lsb device.read (0x00, маалыматтар, 0, 4);

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

int pres = (((маалымат [1] & 0xFF) * 65536) + ((маалымат [2] & 0xFF) * 256) + (маалымат [3] & 0xF0)) / 16; эки эсе басым = (pres / 4.0) / 1000.0; // System.out.printf экранына маалыматтарды чыгаруу ("Басым: %.2f кПа %n", басым); System.out.printf ("Бийиктик: %.2f m %n", бийиктик); System.out.printf ("Цельсий боюнча температура: %.2f C %n", cTemp); System.out.printf ("Фаренгейт температурасы: %.2f F %n", fTemp); }}

4 -кадам: Кодекстин практикалуулугу (Жумушчу)

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

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

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

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

Мисалы, Бул сенсорду жана Rasp Pi менен сиз бийиктикти, абанын басымын жана температураны өлчөй ала турган Digital Visual Altimeter, парашют менен секирүү жабдууларын кура аласыз. Сиз шамал марли жана башка сенсорлорду кошо аласыз, андыктан кызыктуусун жасаңыз.

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

Программа таң калыштуу түрдө ыңгайлаштырылгандыктан, бул долбоорду узартуунун жана андан да жакшырткан көптөгөн кызыктуу жолдор бар. Мисалы, альтиметр/интерферометр бир эле убакта өлчөөлөргө ээ боло турган, тактайларга орнотулган бир нече альтиметрди камтыйт, ошону менен кеңири аймакты үзгүлтүксүз, бир же көп альтиметр менен камтууну камсыз кылат. Бизде бул долбоорду жакшыраак түшүнүүгө жардам бере турган YouTubeда кызыктуу видео үйрөткүч бар.

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