Съдържание:

Използвайки Raspberry Pi, измерете надморската височина, налягането и температурата с MPL3115A2: 6 стъпки
Използвайки Raspberry Pi, измерете надморската височина, налягането и температурата с MPL3115A2: 6 стъпки

Видео: Използвайки Raspberry Pi, измерете надморската височина, налягането и температурата с MPL3115A2: 6 стъпки

Видео: Използвайки Raspberry Pi, измерете надморската височина, налягането и температурата с MPL3115A2: 6 стъпки
Видео: Измерение 5A-30A переменного и постоянного тока с использованием ACS712 с библиотекой Robojax 2024, Ноември
Anonim
Image
Image
Необходимо оборудване, от което се нуждаем
Необходимо оборудване, от което се нуждаем

Знайте какво притежавате и знайте защо го притежавате

Това е интригуващо. Живеем в ерата на Интернет автоматизацията, тъй като тя се потопява в множество нови приложения. Като ентусиасти на компютрите и електрониката, ние научихме много с Raspberry Pi и решихме да смесим нашите интереси. Този проект отнема около час, ако сте нови за I²C връзки и настройка на софтуер, и това е чудесен начин да разширите възможностите на MPL3115A2 с Raspberry Pi в Java.

Стъпка 1: Необходимо оборудване, от което се нуждаем

Необходимо оборудване, от което се нуждаем
Необходимо оборудване, от което се нуждаем
Необходимо оборудване, от което се нуждаем
Необходимо оборудване, от което се нуждаем
Необходимо оборудване, от което се нуждаем
Необходимо оборудване, от което се нуждаем

1. Малина Пи

Първата стъпка беше получаването на платка Raspberry Pi. Този малък гений се използва от любители, учители и при създаването на иновативна среда.

2. I2C щит за Raspberry Pi

INPI2 (I2C адаптер) осигурява Raspberry Pi 2/3 an I²C порт за използване с множество I2C устройства. Предлага се в Dcube Store.

3. Висотомер, сензор за налягане и температура, MPL3115A2

MPL3115A2 е MEMS сензор за налягане с I²C интерфейс, който дава данни за налягане, надморска височина и температура. Този сензор използва протокола I²2 за комуникация. Закупихме този сензор от Dcube Store.

4. Свързващ кабел

Използвахме свързващия кабел I²C, наличен в Dcube Store.

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

Raspberry Pi се захранва от микро USB захранване.

6. Подобряване на достъпа до интернет - Ethernet кабелен/WiFi модул

Едно от първите неща, които ще искате да направите, е да свържете вашия Raspberry Pi към интернет. Можете да се свържете с помощта на Ethernet кабел или с безжичен USB Nano WiFi адаптер.

7. HDMI кабел (по избор, по ваш избор)

Можете да свържете Raspberry Pi към монитор с помощта на HDMI кабел. Също така можете да имате отдалечен достъп до вашия Raspberry Pi, като използвате SSH/PuTTY.

Стъпка 2: Хардуерни връзки за сглобяване на веригата

Хардуерни връзки за свързване на веригата
Хардуерни връзки за свързване на веригата
Хардуерни връзки за свързване на веригата
Хардуерни връзки за свързване на веригата

Направете веригата според показаната схема. Като цяло връзките са доста прости. Следвайте инструкциите и изображенията по -горе и не би трябвало да имате проблеми. Докато планирахме, разгледахме хардуера и кодирането, както и основите на електрониката. Искахме да разработим проста схема на електрониката за този проект. В диаграмата можете да забележите различните части, компонентите на захранването и I²C сензора, следвайки комуникационните протоколи I²C. Надяваме се, че това илюстрира колко проста е електрониката за този проект.

Свързване на Raspberry Pi и I2C Shield

За целта Raspberry Pi и поставете I²C щита върху него. Натиснете щита внимателно (вижте снимката).

Свързване на сензора и Raspberry Pi

Вземете сензора и свържете кабела I²C с него. Уверете се, че изходът I²C ВИНАГИ се свързва с входа I²C. Същото следва да бъде последвано от Raspberry Pi с монтиран върху него I²C щит. Имаме I²C щита и свързващите кабели I²C от наша страна като много голямо предимство, тъй като оставаме само с опцията plug and play. Няма повече проблеми с щифтовете и окабеляването и следователно объркването изчезна. Какво облекчение, просто си представете себе си в мрежата от проводници и влизате в това. Толкова просто като това!

Забележка: Кафявият проводник винаги трябва да следва заземяващата (GND) връзка между изхода на едно устройство и входа на друго устройство

Интернет връзката е от решаващо значение

За да направим нашия проект успешен, се нуждаем от достъп до интернет за нашия Raspberry Pi. В това имате опции като свързване на Ethernet (LAN) кабел. Също така, като алтернативен, но впечатляващ начин да използвате WiFi адаптер.

Захранване на веригата

Включете Micro USB кабела в гнездото за захранване на Raspberry Pi. Включете го и ето, добре сме!

Връзка към екрана

Можем или да включим HDMI кабела към монитор, или да сме малко иновативни, за да направим нашия Pi без глава (използвайки -SSH/PuTTY), което помага да се намалят допълнителните разходи, тъй като по някакъв начин сме любители.

Когато навикът започне да струва пари, той се нарича хоби

Стъпка 3: Програмиране на Raspberry Pi в Java

Програмиране на Raspberry Pi в Java
Програмиране на Raspberry Pi в Java

Java кодът за сензора Raspberry Pi и MPL3115A2. Предлага се в нашето хранилище на Github.

Преди да преминете към кода, не забравяйте да прочетете инструкциите, дадени във файла Readme и да настроите вашия Raspberry Pi според него. Това ще отнеме само малко време. Надморската височина се изчислява от налягането, като се използва уравнението по -долу:

h = 44330.77 {1 - (p / p0) ^ 0.1902632} + OFF_H (Регистърна стойност)

където p0 = налягане на морското равнище (101326 Pa) и h е в метри. MPL3115A2 използва тази стойност, тъй като регистърът на отместване е дефиниран като 2 паскала на LSB. Кодът е ясно пред вас и е в най -простата форма, която можете да си представите и не би трябвало да имате проблеми.

Можете също да копирате работещия Java код за този сензор от тук.

// Разпространява се с лиценз за свободна воля.// Използвайте го както искате, печелите или безплатно, при условие че се вписва в лицензите на свързаните с него произведения. // MPL3115A2 // Този код е проектиран да работи с мини модула MPL3115A2_I2CS I2C, достъпен от ControlEverything.com. //

внос 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 ) throws Exception {// Създаване на I2C шина I2CBus Bus = I2CFactory.getInstance (I2CBus. BUS_1); // Вземете I2C устройство, MPL3115A2 I2C адресът е 0x60 (96) I2CDevice устройство = Bus.getDevice (0x60); // Изберете контролен регистър // Активен режим, OSR = 128, устройство с режим на висотомер.write (0x26, (байт) 0xB9); // Изберете регистър за конфигуриране на данни // Активирано събитие за данни за надморска височина, налягане, температура device.write (0x13, (байт) 0x07); // Избор на регистър за управление // Активен режим, OSR = 128, режим на висотомер device.write (0x26, (байт) 0xB9); Thread.sleep (1000);

// Прочетете 6 байта данни от адрес 0x00 (00)

// статус, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb байт данни = нов байт [6]; device.read (0x00, данни, 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, устройство с режим на барометър.write (0x26, (байт) 0x39); Thread.sleep (1000); // Прочетете 4 байта данни от адрес 0x00 (00) // състояние, pres msb1, pres msb, pres lsb device.read (0x00, data, 0, 4);

// Конвертираме данните в 20-бита

int pres = (((данни [1] & 0xFF) * 65536) + ((данни [2] & 0xFF) * 256) + (данни [3] & 0xF0)) / 16; двойно налягане = (pres / 4.0) / 1000.0; // Извежда данни на екрана System.out.printf ("Налягане: %.2f kPa %n", налягане); System.out.printf ("Надморска височина: %.2f m %n", надморска височина); System.out.printf ("Температура в Целзий: %.2f C %n", cTemp); System.out.printf ("Температура по Фаренхайт: %.2f F %n", fTemp); }}

Стъпка 4: Практичността на Кодекса (Работа)

Практичността на кодекса (работещ)
Практичността на кодекса (работещ)

Сега изтеглете (или git изтеглете) кода и го отворете в Raspberry Pi. Изпълнете командите за компилиране и качване на кода на терминала и вижте изхода на монитора. След няколко секунди той ще покаже всички параметри. След като се уверите, че всичко работи гладко, можете да превърнете този проект в по -голям проект.

Стъпка 5: Приложения и функции

Обичайната употреба на сензора за прецизен висотомер MPL3115A2 е в приложения като Map (Map Assist, Navigation), Магнитен компас или GPS (GPS Dead Reckoning, GPS Enhancement за аварийни услуги), Altimetry с висока точност, смартфони/таблети, Altimetry на персонална електроника и Сателити (оборудване за метеорологични станции/прогнозиране).

За напр. С помощта на този сензор и Rasp Pi можете да изградите цифров визуален висотомер, най -важното оборудване за парашутизъм, което може да измерва надморска височина, въздушно налягане и температура. Можете да добавите марля за вятър и други сензори, така че да направите по -интересен.

Стъпка 6: Заключение

Тъй като програмата е невероятно персонализирана, има много интересни начини, по които можете да разширите този проект и да го направите още по -добър. Например, висотомер/интерферометър ще включва няколко висотомера, монтирани на мачти, които ще получават измервания едновременно, като по този начин ще осигурят непрекъснато, едно- или многовисотомерно широкообхватно покритие. Имаме интересен видео урок в YouTube, който може да ви помогне да разберете по -добре този проект.

Препоръчано: