Съдържание:

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

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

Видео: Надморска височина, налягане и температура с помощта на Raspberry Pi с MPL3115A2: 6 стъпки
Видео: 20 товаров для автомобиля с Алиэкспресс, автотовары №32 2024, Юли
Anonim
Надморска височина, налягане и температура с помощта на Raspberry Pi с MPL3115A2
Надморска височина, налягане и температура с помощта на Raspberry Pi с MPL3115A2
Надморска височина, налягане и температура с помощта на Raspberry Pi с MPL3115A2
Надморска височина, налягане и температура с помощта на Raspberry Pi с MPL3115A2

Звучи интересно. Това е напълно възможно в този момент, когато всички ние влизаме в поколението на IoT. Като изрод за електроника, ние играхме с Raspberry Pi и решихме да правим интересни проекти, използвайки тези знания. В този проект ще измерваме надморска височина, въздушно налягане, температура с помощта на Raspberry Pi. Тук идва документацията (винаги се променя и разширява). Препоръчваме да започнете, като следвате инструкциите и копирате кода. Можете да експериментирате по -късно. Така че нека започнем.

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

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

1. Малина Пи

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

2. I²C щит за Raspberry Pi

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

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

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

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

Имахме свързващ кабел I2C на разположение в Dcube Store

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

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

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

В тази ера получаването на достъп до всичко се нуждае от интернет връзка (почти както има живот и офлайн). Затова отиваме да вземем съвета на LAN кабел или безжичен Nano USB адаптер (WiFi), за да изградим интернет връзка, така че да можем да използваме нашия Rasp Pi с лекота и без никакъв проблем.

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

Малко е сложно. Можете да имате правото да прикачите друг монитор, в случай че искате, или това е много рентабилно за вас, като направите безглава Pi връзка с вашия компютър/лаптоп.

Стъпка 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 с LAN кабел или безжичен Nano USB адаптер за WiFi връзка. Както и да е, основната цел е да се свърже с интернет.

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

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

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

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

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

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

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

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

Надморската височина се изчислява от налягането, като се използва уравнението по -долу:

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

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

Кодът е ясно пред вас и е в най -простата форма, която можете да си представите и не би трябвало да имате проблеми.

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

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

внос 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)

time.sleep (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 temp = ((данни [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, шина в режим на барометър. Запис_байт_данни (0x60, 0x26, 0x39)

time.sleep (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 налягане = (pres / 4.0) / 1000.0

# Извеждане на данни на екрана

печат "Налягане: %.2f kPa" %печат на налягане "Надморска височина: %.2f m" %надморска височина печат "Температура в Целзий: %.2f C" %cТемп печат "Температура по Фаренхайт: %.2f F" %fTemp

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

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

Сега изтеглете (или git изтеглете) кода и го отворете в Raspberry Pi.

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

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

Честото използване на сензора за прецизен висотомер MPL3115A2 I²C е в приложения като Map (Map Assist, Navigation), Магнитен компас или GPS (GPS Dead Reckoning, GPS Enhancement за аварийни услуги), Altimetry с висока точност, Smartphones/Tablets, Personal Electronics Altimetry и сателити (оборудване за метеорологични станции/прогнозиране).

За напр. проект за производство на висотомер за персонална електроника, който измерва надморска височина, въздушно налягане, температура с помощта на Raspberry Pi. Висотомерът за персонална електроника е общо взето доста бърз проект за изграждане. Ще отнеме само няколко минути, ако имате всички части и не импровизирате (разбира се, че можете!). Висотомер за налягане е висотомер, който се намира в повечето самолети, а парашутистите използват версии, монтирани на китката, за подобни цели. Туристите и алпинистите използват висотомери, монтирани на китка или ръчни.

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

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

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