Բովանդակություն:
- Քայլ 1. Մեզ անհրաժեշտ սարքավորումներ
- Քայլ 2: Սարքաշարային միացումներ `միացնելու համար միացումը
- Քայլ 3: Raspberry Pi ծրագրավորում Python- ում
- Քայլ 4. Կոդի գործնականությունը (թեստավորում)
- Քայլ 5: Applicրագրեր և առանձնահատկություններ
- Քայլ 6: Եզրակացություն
Video: Բարձրություն, ճնշում և ջերմաստիճան ՝ օգտագործելով Raspberry Pi- ն MPL3115A2- ով ՝ 6 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:46
Հետաքրքիր է հնչում. Դա միանգամայն հնարավոր է այն ժամանակաշրջանում, երբ մենք բոլորս գնում ենք դեպի IoT սերունդ: Որպես էլեկտրոնիկայի սարսափ, մենք խաղում էինք Raspberry Pi- ի հետ և որոշեցինք հետաքրքիր նախագծեր կատարել ՝ օգտագործելով այս գիտելիքները: Այս նախագծում մենք չափելու ենք բարձրությունը, օդի ճնշումը, ջերմաստիճանը ՝ օգտագործելով Raspberry Pi- ն: Այսպիսով, այստեղ է գնում փաստաթղթերը (միշտ փոփոխվում և ընդլայնվում են): Խորհուրդ ենք տալիս սկսել հրահանգներին հետևելով և պատճենել ծածկագիրը: Հետագայում կարող եք փորձարկել: Այսպիսով, եկեք սկսենք:
Քայլ 1. Մեզ անհրաժեշտ սարքավորումներ
1. Ազնվամորի Պի
Առաջին քայլը Raspberry Pi տախտակի ձեռքբերումն էր: Մենք գնել ենք մերը, և դուք նույնպես: Սկսեցինք սովորել ձեռնարկներից, մենք հասկացանք սցենարի և կապի հասկացությունները և սովորեցինք դրանից հետո: Այս փոքրիկ հանճարը տարածված է հոբբիիստների, ուսուցիչների և նորարար միջավայրեր ստեղծելու համար:
2. I²C Shield ազնվամորի Pi- ի համար
INPI2- ը (I2C ադապտեր) ապահովում է Raspberry Pi 2/3 և 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 Shield- ը: Մեղմորեն սեղմեք վահանը (տես նկարը):
Սենսորային և ազնվամորու Pi- ի միացում
Վերցրեք սենսորը և միացրեք I²C մալուխը դրա հետ: Համոզվեք, որ I²C ելքը ՄԻՇՏ միանում է I²C մուտքին: Նույնը պետք է հաջորդի Raspberry Pi- ին, որի վրա տեղադրված է I²C վահանը: Մենք ունենք I²C Shield և I²C միացնող մալուխները մեր կողմից ՝ որպես մեծ առավելություն, քանի որ մեզ մնում է միայն plug and play տարբերակը: Այլևս քորոցների և էլեկտրագծերի խնդիր չկա, և, հետևաբար, խառնաշփոթը վերացել է: Ինչպիսի relief թեթևացում, ինչպես պարզապես պատկերացրեք ինքներդ ձեզ լարերի ցանցում և դրա մեջ մտնելով: Պարզապես այն պարզ գործընթացը, որը մենք նշեցինք:
Նշում. Շագանակագույն մետաղալարը միշտ պետք է հետևի Ground (GND) կապին մի սարքի ելքի և մեկ այլ սարքի մուտքի միջև:
Ինտերնետ կապը կենսական նշանակություն ունի
Դուք իրականում այստեղ ընտրություն ունեք: Դուք կարող եք միացնել Raspberry Pi- ն LAN մալուխով կամ անլար Nano USB ադապտերով WiFi միացման համար: Ինչևէ, դա արեց հիմնական նպատակը ՝ ինտերնետին միանալը:
Շղթայի սնուցումը
Միացրեք Micro USB մալուխը Raspberry Pi- ի սնուցման վարդակին: Լուսավորեք այն, և մենք լավ ենք գնում:
Միացում էկրանին
Մենք կարող ենք կամ HDMI մալուխը միացնել նոր մոնիտորին, կամ կարող ենք դարձնել մեր անգլուխ Pi- ն, որը ստեղծագործական և ծախսարդյունավետ է ՝ օգտագործելով հեռավոր մուտքի նման ՝ SSH/PuTTY: (Ես գիտեմ, որ մենք չենք ֆինանսավորվում գաղտնի կազմակերպության նման)
Քայլ 3: Raspberry Pi ծրագրավորում Python- ում
Raspberry Pi- ի և MPL3115A2 սենսորի Python ծածկագիրը: Այն հասանելի է մեր Github շտեմարանում:
Նախքան ծածկագրին անցնելը, համոզվեք, որ կարդացել եք Readme ֆայլում տրված հրահանգները և ըստ դրա կարգավորեք ձեր Raspberry Pi- ն: Դա անելու համար կպահանջվի ընդամենը մի պահ:
Բարձրությունը հաշվարկվում է ճնշումից ՝ օգտագործելով ստորև բերված հավասարումը.
h = 44330.77 {1 - (p / p0) ^ 0.1902632} + OFF_H (Register Value)
Որտեղ p0 = ծովի մակարդակի ճնշումը (101326 Pa) և h- ը մետր է: MPL3115A2- ն օգտագործում է այս արժեքը, քանի որ օֆսեթ գրանցամատյանը սահմանվում է որպես 2 Pascals մեկ LSB- ի համար:
Կոդն ակնհայտորեն ձեր առջև է և այն ամենապարզ ձևով, որը դուք կարող եք պատկերացնել, և դուք չպետք է խնդիրներ ունենաք:
Այս սենսորի համար կարող եք պատճենել նաև աշխատող Python ծածկագիրը այստեղից:
# Տարածված է ազատ կամքի լիցենզիայի միջոցով: # MPL3115A2 # Այս կոդը նախատեսված է աշխատելու MPL3115A2_I2CS I2C մինի մոդուլի հետ, որը հասանելի է ControlEverything.com կայքում: #
ներմուծել smbus
ներմուծման ժամանակը
# Ձեռք բերեք I2C ավտոբուս
ավտոբուս = smbus. SMBus (1)
# MPL3115A2 հասցե, 0x60 (96)
# Ընտրել հսկիչ ռեգիստր, 0x26 (38) # 0xB9 (185) Ակտիվ ռեժիմ, OSR = 128, Altimeter ռեժիմի ավտոբուս: գրել_բայթ_ տվյալներ (0x60, 0x26, 0xB9) # MPL3115A2 հասցե, 0x60 (96) # Ընտրել տվյալների կազմաձևման գրանցամատյան, 0x13 (19) # 0x07 (07) Տվյալների պատրաստ իրադարձությունը միացված է բարձրության, ճնշման, ջերմաստիճանի ավտոբուսի համար: գրել_բայթ_տվյալներ (0x60, 0x13, 0x07) # MPL3115A2 հասցե, 0x60 (96) # Ընտրել կառավարման ռեգիստր, 0x26 (38) # 0xB9 (185) Ակտիվ ռեժիմ, OSR = 128, Բարձրաչափի ռեժիմ 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 temp = ((տվյալները [4] * 256) + (տվյալները [5] & 0xF0)) / 16 բարձրություն = t Բարձրություն / 16.0 cTemp = ջերմաստիճան / 16.0 fTemp = cTemp * 1.8 + 32
# MPL3115A2 հասցե, 0x60 (96)
# Ընտրել կառավարման ռեգիստր, 0x26 (38) # 0x39 (57) Ակտիվ ռեժիմ, OSR = 128, Բարոմետր ռեժիմի ավտոբուս: գրել_բայթ_տվյալներ (0x60, 0x26, 0x39)
ժամանակ. քուն (1)
# MPL3115A2 հասցե, 0x60 (96)
# Կարդացեք տվյալները 0x00- ից (00), 4 բայթ # կարգավիճակ, pres MSB1, pres MSB, pres LSB տվյալներ = bus.read_i2c_block_data (0x60, 0x00, 4)
# Փոխարկեք տվյալները 20 բիթ
pres = ((տվյալները [1] * 65536) + (տվյալները [2] * 256) + (տվյալները [3] և 0xF0)) / 16 ճնշումը = (նախնական / 4.0) / 1000.0
# Ելքի տվյալները էկրանին
տպել "ureնշում. %.2f kPa" %ճնշման տպում "Բարձրություն ՝ %.2f մ" %բարձրություն տպել "Cերմաստիճանը Celsius:
Քայլ 4. Կոդի գործնականությունը (թեստավորում)
Այժմ, ներբեռնեք (կամ git pull) ծածկագիրը և բացեք այն Raspberry Pi- ում:
Գործարկեք տերմինալում Կոդ կազմելու և վերբեռնելու հրամանները և տեսեք արտադրանքը Մոնիտորի վրա: Մի քանի վայրկյան անց այն կցուցադրի բոլոր պարամետրերը: Համոզվելուց հետո, որ ամեն ինչ հարթ է աշխատում, կարող եք այս նախագիծը դարձնել ավելի մեծ նախագիծ:
Քայլ 5: Applicրագրեր և առանձնահատկություններ
MPL3115A2 Precision Altimeter I²C սենսորի ընդհանուր օգտագործումը այնպիսի ծրագրերում են, ինչպիսիք են Քարտեզը (Քարտեզի օժանդակություն, նավարկություն), Մագնիսական կողմնացույց, կամ GPS (GPS Dead Reckoning, GPS Enhancement For Emergency Services), Բարձր ճշգրտության բարձրաչափություն, սմարթֆոններ/պլանշետներ, անհատական էլեկտրոնիկայի բարձրաչափություն և արբանյակներ (Եղանակային կայանի սարքավորում/կանխատեսում):
Օրինակ ՝ անհատական էլեկտրոնիկայի բարձրաչափի պատրաստման նախագիծ, որը չափում է բարձրությունը, օդի ճնշումը, ջերմաստիճանը ՝ օգտագործելով Raspberry Pi: Անձնական էլեկտրոնիկայի բարձրաչափը ընդհանուր առմամբ բավականին արագ նախագիծ է: Մի քանի պահ կպահանջվի, եթե դուք ունեք բոլոր մասերը և իմպրովիզներ չանեք (իհարկե, կարող եք): Pressureնշման բարձրաչափը բարձրաչափ է, որը հանդիպում է ինքնաթիռների մեծ մասում, եւ սքայդավորդները նմանատիպ նպատակներով օգտագործում են դաստակի վրա տեղադրված տարբերակներ: Արշավականներն ու լեռնագնացներն օգտագործում են դաստակի վրա տեղադրված կամ ձեռքի բարձրաչափեր:
Քայլ 6: Եզրակացություն
Հուսով եմ, որ այս նախագիծը ոգեշնչում է հետագա փորձերին: Այս I²C սենսորը աներևակայելի բազմակողմանի է, էժան և մատչելի: Քանի որ դա չափազանց փոփոխական ծրագիր է, կան հետաքրքիր եղանակներ, որոնցով կարող եք երկարաձգել այս նախագիծը և այն դարձնել ավելի լավը: Օրինակ, բարձրաչափը գործիք է, որն ընտրովի չէ արտաճանապարհային տրանսպորտային միջոցներում ՝ նավարկությանն օգնելու համար: Որոշ բարձրակարգ շքեղ մեքենաներ, որոնք երբեք նախատեսված չէին թողնել ասֆալտապատ ճանապարհները, օգտագործում են այս տեխնոլոգիան: Ձեր հարմարության համար մենք ունենք YouTube- ում հետաքրքիր վիդեո ձեռնարկ, որը կարող է ձեռք մեկնել ձեր ուսումնասիրություններին: Հուսով եմ, որ այս նախագիծը ոգեշնչում է հետագա փորձերին:
Խորհուրդ ենք տալիս:
Իրական ժամանակում ջրհորի ջրի ջերմաստիճան, հաղորդունակություն և ջրի մակարդակի հաշվիչ ՝ 6 քայլ (նկարներով)
Իրական ժամանակի ջրհորի ջրի ջերմաստիճան, հաղորդունակություն և ջրի մակարդակի հաշվիչ. Այս հրահանգները նկարագրում են, թե ինչպես կարելի է կառուցել էժան, իրական ժամանակի ջրաչափ `ջերմաստիճանը մոնիտորինգի համար, Էլեկտրական հաղորդունակություն (ԵՀ) և ջրի մակարդակները փորված հորերում: Հաշվիչը նախատեսված է փորված ջրհորի ներսում կախված լինելու համար, չափելու ջրի ջերմաստիճանը
LCDուցադրել խոնավություն և ջերմաստիճան LCD- ով ARDUINO NANO- ով. 5 քայլ
ARDUINO NANO- ով ցուցադրել խոնավություն և ջերմաստիճան LCD- ում. Հետևյալ հրահանգավոր գործարքները վերաբերում են arduino nano- ի հետ պարզ LCD ինտերֆեյսի ստեղծմանը:
Բոլորը մեկ թվային ժամանակաչափ (ժամացույց, ժամաչափ, զարթուցիչ, ջերմաստիճան). 10 քայլ (նկարներով)
All in One Digital Chronometer (ockամացույց, erամաչափ, rmարթուցիչ, peratերմաստիճան). Մենք պլանավորում էինք ժամաչափ պատրաստել մեկ այլ մրցույթի համար, բայց հետագայում մենք նաև գործարկեցինք ժամացույց (առանց RTC): Երբ մենք սկսեցինք ծրագրավորումը, մենք հետաքրքրվեցինք սարքի վրա ավելի շատ գործառույթներ կիրառելով և վերջում ավելացրեցինք DS3231 RTC, քանի որ
Օգտագործելով Raspberry Pi, չափեք բարձրությունը, ճնշումը և ջերմաստիճանը MPL3115A2- ով ՝ 6 քայլ
Օգտագործելով Raspberry Pi, չափեք բարձրությունը, ճնշումը և ջերմաստիճանը MPL3115A2- ով. Իմացեք, թե ինչն է ձեզ պատկանում և իմացեք, թե ինչու է այն ձեզ պատկանում: Հետաքրքրաշարժ է: Մենք ապրում ենք ինտերնետի ավտոմատացման դարաշրջանում, քանի որ այն ընկղմվում է նոր ծրագրերի բազմության մեջ: Որպես համակարգչային և էլեկտրոնիկայի սիրահարներ, մենք շատ բան ենք սովորում Raspberry Pi a
Հայցադիմումի հաղթահարում մթնոլորտային ճնշում. Ձեռք բերելու բռնակ `8 քայլ
Հաղթահարելով կոստյում Մթնոլորտային ճնշում. Ձեռքի բռնում. Որոշ ժամանակ առաջ ես տեսա Քրիս Հեդֆիլդի youtube- ի տեսանյութը: Ի թիվս այլ բաների, նա խոսեց այն մասին, թե որքան ծանր կարող է լինել տիեզերական զբոսանքի ընթացքում աշխատանքը: Խնդիրը ոչ միայն այն է, որ կոստյումը կոպիտ է, այլ նաև, որ այն նման է մի փուչիկի, որը պետք է լինի