Мазмұны:

MPL3115A2 көмегімен Raspberry Pi көмегімен биіктік, қысым және температура: 6 қадам
MPL3115A2 көмегімен Raspberry Pi көмегімен биіктік, қысым және температура: 6 қадам

Бейне: MPL3115A2 көмегімен Raspberry Pi көмегімен биіктік, қысым және температура: 6 қадам

Бейне: MPL3115A2 көмегімен Raspberry Pi көмегімен биіктік, қысым және температура: 6 қадам
Бейне: ПОЧЕМУ Я ЖДУ L4D3 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 қалқаны

INPI2 (I2C адаптері) Raspberry Pi 2/3 пен I²C портын бірнеше I2C құрылғыларымен пайдалануға мүмкіндік береді. Ол Dcube дүкенінде қол жетімді

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

MPL3115A2 - қысым/биіктік және температура туралы мәліметтерді беретін I²C интерфейсі бар MEMS қысым датчигі. Бұл сенсор байланыс үшін I²C хаттамасын қолданады. Біз бұл сенсорды Dcube дүкенінен сатып алдық

4. Қосылатын кабель

Бізде Dcube Store дүкенінде қол жетімді I2C кабелі болды

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

Микро USB кабелі Қуат көзі - Raspberry Pi -ге қуат беру үшін тамаша таңдау.

6. Интернетке қосылуды жақсарту - Ethernet кабелі/WiFi адаптері

Бұл дәуірде кез келген нәрсеге қол жеткізу үшін Интернет байланысы қажет (дербес өмір де бар сияқты). Сондықтан біз Rasp Pi -ді оңай және еш қиындықсыз пайдалану үшін Интернетке қосылу үшін LAN кабелінің немесе сымсыз нано USB адаптерінің (WiFi) кеңесін аламыз.

7. HDMI кабелі (міндетті емес, сіздің таңдауыңыз)

Бұл сәл күрделі. Егер сіз қаласаңыз немесе басқа компьютерді ноутбукпен бассыз Pi байланысы арқылы өзіңізге үнемдейтін болсаңыз, басқа мониторды қоса аласыз.

2 -қадам: Схеманы біріктіру үшін аппараттық қосылымдар

Схеманы біріктіру үшін аппараттық қосылулар
Схеманы біріктіру үшін аппараттық қосылулар
Схеманы біріктіру үшін аппараттық қосылулар
Схеманы біріктіру үшін аппараттық қосылулар

Схеманы көрсетілген схемаға сәйкес жасаңыз. Жалпы, қосылулар өте қарапайым. Нұсқаулар мен суреттерді орындаңыз, сонда сізде проблемалар болмауы керек.

Жоспарлау кезінде біз аппараттық және кодтауды, сонымен қатар электрониканың негізін қарастырдық. Біз бұл жобаның электроникасының қарапайым схемасын жасағымыз келді. Диаграммада I²C байланыс хаттамаларына сәйкес әр түрлі бөліктерді, қуат компоненттерін және I²C сенсорын байқауға болады. Бұл жоба электроникасының қаншалықты қарапайым екенін көрсетеді деп үміттенемін.

Raspberry Pi мен I2C Shield қосылымы

Алдымен Raspberry Pi алыңыз және оған I²C қалқанын қойыңыз. Қалқанды ақырын басыңыз (суретті қараңыз).

Сенсор мен Raspberry Pi қосылуы

Сенсорды алыңыз және онымен I²C кабелін қосыңыз. I²C шығысы әрқашан I²C кірісіне қосылатынына көз жеткізіңіз. Бізде I²C қалқаны орнатылған Raspberry Pi де солай болады, бізде I²C қалқаны мен I²C қосқыш кабельдері бар, бізде үлкен артықшылық бар, өйткені бізде тек штепсель мен ойнату опциясы қалды. Енді түйреуіштер мен сымдар мәселесі болмайды, сондықтан шатасулар жойылады. Өзіңізді сым торында елестетіп, оған ену қандай жеңілдік. Біз айтқан қарапайым процесс.

Ескертпе: қоңыр сым әрқашан бір құрылғының шығысы мен басқа құрылғының кірісі арасындағы Ground (GND) байланысын ұстануы керек

Интернетке қосылу өте маңызды

Бұл жерде сізде таңдау бар. Сіз Raspberry Pi -ді LAN кабелімен немесе WiFi қосылымына арналған сымсыз Nano USB адаптерімен қосуға болады. Қалай болғанда да, бұл басты мақсат - Интернетке қосылу.

Электр тізбегінің қуаты

Micro USB кабелін Raspberry Pi қуат ұясына қосыңыз. Жарықтандырыңыз, біз баруға дайынбыз.

Экранға қосылу

Біз HDMI кабелін жаңа мониторға қосамыз немесе SSH/PuTTY сияқты қашықтан қатынауды қолдана отырып, біздің басы жоқ Pi жасай аламыз. (Біз құпия ұйым ретінде қаржыландырылмайтынымызды білемін)

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 Па) мен сағ метрде. MPL3115A2 бұл мәнді пайдаланады, себебі офсеттік регистр LSB үшін 2 Паскаль ретінде анықталады.

Код сіздің алдыңызда және сіз ойлағандай қарапайым түрде және сізде ешқандай проблемалар болмауы керек.

Бұл сенсордың жұмыс істейтін Python кодын осы жерден көшіруге болады.

# Ерік-жігер лицензиясымен таратылады.# Егер ол онымен байланысты жұмыстардың лицензиясына сәйкес келсе, оны қалаған жолмен пайдаланыңыз немесе тегін пайдаланыңыз. # MPL3115A2 # Бұл код ControlEverything.com сайтынан қол жетімді MPL3115A2_I2CS I2C шағын модулімен жұмыс жасауға арналған. #

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) Биіктік, қысым, температура шинасы үшін деректерге дайын оқиға қосылды.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, LSB temp data = bus.read_i2c_block_data (0x60, 0x00, 6) бастап оқу

# Деректерді 20 битке түрлендіріңіз

tHeight = ((деректер [1] * 65536) + (деректер [2] * 256) + (деректер [3] & 0xF0)) / 16 temp = ((деректер [4] * 256) + (деректер [5] & 0xF0)) / 16 биіктік = t Биіктігі / 16.0 cTemp = temp / 16.0 fTemp = cTemp * 1.8 + 32

# MPL3115A2 мекенжайы, 0x60 (96)

# Басқару регистрін таңдаңыз, 0x26 (38) # 0x39 (57) Белсенді режим, OSR = 128, Барометр режимі шинасы.write_byte_data (0x60, 0x26, 0x39)

уақыт.ұйқы (1)

# MPL3115A2 мекенжайы, 0x60 (96)

# Деректерді 0x00 (00), 4 байт мәртебесі, MSB1, MSB pres, 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 С» %cTemp басып шығару «Фаренгейт температурасы: %.2f F» %fTemp

4 -қадам: кодтың практикалық болуы (тестілеу)

Кодекстің қолданылуы (тестілеу)
Кодекстің қолданылуы (тестілеу)

Енді кодты жүктеңіз (немесе git pull) және оны Raspberry Pi -де ашыңыз.

Терминалда кодты құрастыру және жүктеу пәрмендерін іске қосыңыз және монитордағы шығуды қараңыз. Бірнеше секундтан кейін ол барлық параметрлерді көрсетеді. Барлығы біркелкі жұмыс істейтініне көз жеткізгеннен кейін, сіз бұл жобаны үлкен жобаға айналдыра аласыз.

5 -қадам: Қолданбалар мен мүмкіндіктер

MPL3115A2 Precision Altimeter I²C сенсорының кеңінен қолданылуы Map (Map Assist, Navigation), Magnetic Compass немесе GPS (GPS Dead Reckoning, GPS Enhancement for Emergency Services), жоғары дәлдіктегі альтиметрия, смартфондар/планшеттер, жеке электроника альтиметриясы сияқты қосымшаларда қолданылады. және спутниктер (метеостанция жабдықтары/болжау).

Мысалы Raspberry Pi көмегімен биіктікті, ауа қысымын, температураны өлшейтін жеке электронды альтиметр жасау жобасы. Жеке электроника альтиметрі - бұл өте тез құрастырылатын жоба. Егер сізде барлық бөлшектер болса және импровизация жасамасаңыз, бірнеше минут қажет болады (әрине жасай аласыз!). Қысым биіктігі-бұл ұшақтардың көпшілігінде орналасқан биіктік өлшегіш, ал аспансерлер ұқсас мақсаттар үшін білекке бекітілген нұсқаларды қолданады. Жаяу саяхатшылар мен альпинистер білекке бекітілген немесе қолмен ұсталатын биіктік өлшегіштерді пайдаланады.

6 -қадам: Қорытынды

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

Ұсынылған: