
Բովանդակություն:
2025 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2025-01-23 14:48


Ներածություն
Սա առաջին գրառման շարունակությունն է `« Ինչպես կառուցել սեփական անեմոմետր ՝ օգտագործելով եղեգնյա անջատիչներ, Hall Effect Sensor և որոշ գրություններ Nodemcu- ում - մաս 1 - սարքավորում », որտեղ ես ցույց եմ տալիս, թե ինչպես հավաքել քամու արագության և ուղղության չափման սարքերը: Այստեղ մենք կօգտագործենք չափման կառավարման ծրագրակազմը, որը նախատեսված է Nodemcu- ում օգտագործելու համար `օգտագործելով Arduino IDE- ն:
Ծրագրի նկարագրությունը
Նախորդ գրառման մեջ Նոդեմկուին զինված և միացված սարքերը կարողանում են չափել քամու արագությունն ու ուղղությունը: Վերահսկիչ ծրագրակազմը նախատեսված էր որոշակի ժամանակ անեմոմետրի ռոտացիան կարդալու, գծային արագությունը հաշվարկելու, կարդալու ուղղությամբ, որտեղ գտնվում է թևը, ցույց տալու արդյունքները OLED- ում, արդյունքները հրապարակելու ThingSpeak- ում և քնելու 15 րոպե մինչև հաջորդ չափումը:
Հրաժարում. Այս անեմոմետրը չպետք է օգտագործվի մասնագիտական նպատակների համար: Այն նախատեսված է միայն ակադեմիական կամ տնային օգտագործման համար:
Նշում. Անգլերենը իմ բնական լեզուն չէ: Եթե գտնում եք քերականական սխալներ, որոնք խանգարում են ձեզ հասկանալ նախագիծը, խնդրում եմ ինձ տեղյակ պահեք դրանք շտկելու համար: Շատ շնորհակալություն.
Քայլ 1. Arduino IDE, ESP8266 տախտակների և գրադարանների և ձեր ThingSpeak հաշվի տեղադրում


Arduino IDE- ի և Nodemcu- ի տեղադրում
Եթե դուք երբեք չեք տեղադրել IDE- ն Arduino- ին, խնդրում ենք կարդալ ձեռնարկի հղումը `Ինչպես տեղադրել Arduino IDE- ն, որտեղ կարող եք գտնել ամբողջական հրահանգները:
Հաջորդ քայլը ՝ Nodemcu տախտակը տեղադրելու համար օգտագործեք այս ձեռնարկը Magesh Jayakumar Instructables- ից, որը շատ ամբողջական է: Ինչպես տեղադրել Nodemcu no Arduino IDE- ն
Գրադարանների տեղադրում
Հաջորդ քայլը դուք պետք է տեղադրեք այն գրադարանները, որոնք օգտագործում է ուրվագիծը: Նրանք սովորական են, և դուք կարող եք հետևել ստորև ներկայացված քայլերին:
ThingSpeak գրադարան -
ESP8266 Գրադարան -
Ստեղծելով ThingSpeak հաշիվ
ThingSpeak (https://thingspeak.com/) - ից օգտվելու համար պետք է ստեղծել հաշիվ (այն դեռևս անվճար է որոշակի քանակությամբ փոխազդեցությունների դեպքում), որտեղ կարող եք պահպանել ձեր անեմոմետրում չափված տվյալները և վերահսկել ձեր տան քամու պայմանները, նույնիսկ բջջային հեռախոսի միջոցով: ThingSpeak- ի միջոցով դուք կարող եք հանրությանը հասանելի դարձնել ձեր հավաքած տվյալները, ում հետաքրքրում է: Դա ThingSpeak- ի լավ առավելությունն է: Մուտքագրեք հիմնական էջը և հետևեք ձեր հաշիվը ստեղծելու քայլերին:
Հաշվի ստեղծումից հետո մուտքագրեք այս ձեռնարկը `ThingSpeak Getting Started - ձեր ալիքները ստեղծելու համար: Բավականին լավ բացատրված է: Ամփոփելով ՝ պետք է ստեղծել ալիք, որտեղ տվյալները կպահվեն: Այս ալիքն ունի ID և հիմնական API, որը պետք է հղված լինի ուրվագծում ամեն անգամ, երբ ցանկանում եք տվյալներ գրանցել: ThingSpeak- ը կպահի բոլոր տվյալները բանկում և կցուցադրի դրանք ամեն անգամ, երբ մուտք եք գործում ձեր հաշիվ ՝ ձեր կազմաձևված ձևով:
Քայլ 2. Ուսումնասիրեք ուրվագիծը


Flowchart
Դիագրամում դուք կարող եք հասկանալ էսքիզի ֆլուկոգրաման: Երբ արթնանաք (կապեք) Nodemcu- ն, այն կմիանա ձեր Wi-Fi ցանցին, որի պարամետրերը դուք կազմաձևել եք և սկսում է հաշվել 1 րոպե ժամանակ չափումները կատարելու համար: Նախ, այն կհաշվի անեմոմետրի պտույտները 25 վայրկյան, հաշվարկեք գծային արագությունը և կարդալ քամու ուղղությունը: Արդյունքները ցուցադրվում են OLED- ում: Կրկին կատարեք նույն քայլերը և այս երկրորդ ընթերցման համար այն կփոխանցվի ThingSpeak- ին:
Հետո Նոդեմկուն 15 րոպե քնում է մարտկոցը խնայելու համար: Քանի որ ես օգտագործում եմ փոքր արևային վահանակ, անհրաժեշտ է դա անել: Եթե դուք օգտագործում եք 5 Վ աղբյուր, կարող եք փոփոխել ծրագիրը, որպեսզի այն չքննի և շարունակեք չափել տվյալները:
Րագրերի կառուցվածքը
Դիագրամում դուք կարող եք տեսնել ուրվագծի կառուցվածքը:
Անեմոմետր_ստրուկտիվներ
Այն հիմնական ծրագիրն է, որը բեռնում է գրադարանները, սկսում փոփոխականները, վերահսկում կցման ընդհատումը, կանչում բոլոր գործառույթները, հաշվարկում քամու արագությունը, որոշում դրա ուղղությունը և քնում:
հաղորդակցություններ
Միացրեք WiFi- ն և տվյալները ուղարկեք ThingSpeak:
հավատարմագրերը.հ
Ձեր WiFi ցանցի բանալիները և ձեր հաշվի նույնացուցիչները ThingSpeak- ում: Այստեղ դուք կփոխեք ձեր բանալիների ID- ները և API- ները:
սահմանում է.հ
Այն պարունակում է ծրագրի բոլոր փոփոխականները: Այստեղ կարող եք փոխել ընթերցման ժամանակը կամ որքան ժամանակ պետք է քնի nodemcu- ն:
գործառույթները
Այն պարունակում է պարամետրերը համատեղելու և մուլտիպլեքսեր կարդալու գործառույթներ, ինչպես նաև անեմոմետրի պտույտները կարդալու գործառույթ:
oled ispուցադրել
Showույց տալ քամու արագության և ուղղության արդյունքները էկրանին:
Քայլ 3: Բացատրություններ…




Կցել ընդհատումը
Անեմոմետրի պտույտը չափվում է Nodemcu- ի GPIO 12 (pin D6) GPIO 12-ում (այն ունի D0-D8 կապում) ընդհատման գործառույթ)
Ընդհատումները իրադարձություններ կամ պայմաններ են, որոնք ստիպում են միկրոկոնտրոլերը դադարեցնել իր կատարած առաջադրանքի կատարումը, ժամանակավորապես աշխատել այլ առաջադրանքի մեջ և վերադառնալ սկզբնական առաջադրանքին:
Ֆունկցիայի մանրամասները կարող եք կարդալ Arduino- ի ձեռնարկի հղման մեջ: Տե՛ս attachInterrupt ():
Շարահյուսություն ՝ attachInterrupt (քորոց, հետադարձման գործառույթ, ընդհատման տեսակ/եղանակ)
քորոց = D6
հետադարձ գործառույթ = rpm_anemometer - հաշվում է յուրաքանչյուր զարկերակի փոփոխականի վրա:
ընդհատման տեսակ/ռեժիմ = RISING - ընդհատել, երբ քորոցը ցածրից բարձր է անցնում:
Hall- ի սենսորում մագնիտոյի արտադրած յուրաքանչյուր զարկերակի ժամանակ քորոցը ցածրից բարձրանում է, և հաշվիչ գործառույթը ակտիվանում և ամփոփում է զարկերակը փոփոխականում ՝ հաստատված 25 վայրկյանների ընթացքում: Theամանակը լրանալուց հետո հաշվիչը անջատված է (detachInterrupt ()) և ռեժիմը հաշվարկում է արագությունը `անջատված վիճակում:
Քամու արագության հաշվարկ
Երբ որոշվի, թե քանի պտույտ է կատարել անեմոմետրը 25 վայրկյանում, մենք հաշվարկում ենք արագությունը:
- ՌԱԴԻՈ -ն չափումն է անեմոմետրի կենտրոնական առանցքից մինչև պինգ -պոնգի գնդակի ծայրը: Դուք, հավանաբար, շատ լավ եք չափել ձեր ձերը - (տե՛ս այն 10 սմ -ով գրված դիագրամում):
- RPS (պտույտներ մեկ վայրկյանում) = պտույտներ / 25 վայրկյան
- RPM (պտույտներ րոպեում) = RPS * 60
- OMEGA (անկյունային արագություն - ռադիոներ վայրկյանում) = 2 * PI * RPS
- Գծային_Արագություն (մետր վայրկյանում) = OMEGA * RADIO
- Linear_Velocity_kmh (Km / ժամ) = 3.6 * Linear_Velocity, և սա այն է, ինչ ուղարկվելու է ThingSpeak:
Կարդացեք քամու թևի ուղղությունը
Քամու դիրքը կարդալու և քամու ուղղությունը որոշելու համար ծրագիրը ցածր և բարձր ազդանշաններ է ուղարկում մուլտիպլեքսորին `A, B, C պարամետրերի բոլոր համակցություններով (muxABC մատրիցա) և սպասել, որ արդյունքը ստանա A0 pin- ում: որը կարող է լինել 0 -ից 3.3 Վ լարման միջև: Համակցությունները ցուցադրվում են դիագրամում:
Օրինակ, երբ C = 0 (ցածր), B = 0 (ցածր), A = 0 (ցածր) մուլտիպլեքսերը նրան տալիս է 0 -ի կապի տվյալները և ազդանշան է ուղարկում A0- ին, որը կարդում է Nodemcu- ն; եթե C = 0 (ցածր), B = 0 (ցածր), A = 1 (բարձր) մուլտիպլեքսերը ձեզ կուղարկի 1 -ին կապի տվյալները և այլն, մինչև 8 ալիքների ընթերցման ավարտը:
Քանի որ ազդանշանն անալոգային է, ծրագիրը վերածվում է թվայինի (0 կամ 1), եթե լարումը 1.3V- ից փոքր կամ հավասար է, ազդանշանը 0 է; եթե այն 1.3 Վ -ից մեծ է, ազդանշանը 1. է: 1.3 Վ արժեքը կամայական է, և ինձ համար այն շատ լավ էր աշխատում: Միշտ կան հոսանքի փոքր արտահոսքեր, և դա պաշտպանում է, որ կեղծ պոզիտիվներ չկան:
Այս տվյալները պահվում են վեկտորի val [8] -ում, որը կհամեմատվի հասցեի զանգվածի հետ որպես կողմնացույց: Տեսեք գծապատկերում գտնվող մատրիցան: Օրինակ, եթե ստացված վեկտորը [0, 0, 1, 0, 0, 0, 0, 0, 0] է, դա մատրիցում ցույց է տալիս E ուղղությունը և համապատասխանում է 90 աստիճանի անկյունին; եթե [0, 0, 0, 0, 0, 0, 1, 1] մատրիցում նշում է WNW հասցեն և համապատասխանում է 292.5 աստիճանի անկյան: N- ն համապատասխանում է [1, 0, 0, 0, 0, 0, 0, 0, 0] և 0 աստիճանի անկյունին:
Այն, ինչ կուղարկվի ThingSpeak- ին, անկյան տակ է, քանի որ այն ընդունում է միայն թվեր:
Քայլ 4: Հաղորդակցություն


Ինչպես ուղարկել տվյալներ ThingSpeak- ին
Thingspeaksenddata () գործառույթը պատասխանատու է տվյալների ուղարկման համար:
ThingSpeak.setField (1, float (linear_velocity_kmh)) - ուղարկեք արագության տվյալները իմ ալիքի դաշտ 1 -ին
ThingSpeak.setField (2, float (wind_Direction_Angle)) - հասցեի տվյալները ուղարկեք իմ ալիքի դաշտ 2
ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey) - Ուղարկեք իմ ալիք myChannelNumber ՝ գրված myWriteAPIKey API- ով, որը նշված է TS- ով: Այս տվյալները ստեղծվել են TS- ի կողմից `ձեր հաշիվը և ալիքը ստեղծելիս:
Վերևի նկարներում կարող եք տեսնել, թե ինչպես է ThingSpeak- ը ցույց տալիս ստացված տվյալները:
Այս հղումով կարող եք մուտք գործել իմ նախագծի տվյալները ThingSpeak- ի հանրային ալիքում:
Քայլ 5: Հիմնական փոփոխականներ

քամու թևերի պարամետրերը
- MUX_A D5 - mux pi A- ից Nodemcu pin D5
- MUX_B D4 - mux քորոց B- ից Nodemcu կապում D4
- MUX_C D3 - mux քորոց C- ից Nodemcu կապում D3
- READPIN 0 - NodeMcu = A0- ի անալոգային մուտքագրում
- NO_PINS 8 - mux կապումների քանակը
- val [NO_PINS] - մուտքի 0 -ից 7 -ը
- wind_Direction_Angle - քամու ուղղության անկյուն
- String windRose [16] = {"N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW"} - կարդինալներ, գրավի առարկաներ և ենթավարկային պայմաններ
- windAng [16] = {0, 22.5, 45, 67.5, 90, 112.5, 135, 157.5, 180, 202.5, 225, 247.5, 270, 292.5, 315, 337.5} - յուրաքանչյուր ուղղության անկյուններ
- Թվանշան [16] [NO_PINS] - Ուղղությունների մատրիցա
- muxABC [8] [3] - ABC մեքսային համակցություններ
անեմոմետր պարամետրեր
- rpmcount - հաշվել, թե քանի ամբողջական պտույտ է կատարել անեմոմետրը հատկացված ժամանակում
- ժամանակաչափ = 25.00 - չափման տևողության ժամանակը վայրկյաններով
- timetoSleep = 1 - Nodemcu արթուն ժամանակը րոպեների ընթացքում
- sleepTime = 15 - րոպեների ընթացքում քնելու ժամանակը
- rpm, rps - պտտման հաճախականություններ (պտույտներ րոպեում, պտույտներ վայրկյանում)
- շառավիղ - մետր - անեմոմետր թևի երկարության չափում
- linear_velocity - գծային արագություն մ/սեգ
- linear_velocity_kmh - գծային արագությունը կմ/ժ -ում
- օմեգա - ճառագայթային արագություն ռադ/սեգում
Ստորև կարող եք գտնել ամբողջական ուրվագիծը: Ստեղծեք նոր թղթապանակ ձեր համակարգչի Arduino թղթապանակի վրա `նույն անունով, ինչ հիմնական ծրագիրը (Anemometer_Instructables) և դրանք բոլորը միասին դնելով:
Մուտքագրեք ձեր wi -fi ցանցի տվյալները և ThingSpeak ID- ն և API Writer Key- ը Credentials.h մասում և պահեք: Վերբեռնեք Nodemcu և վերջ:
Համակարգի աշխատանքը ստուգելու համար խորհուրդ եմ տալիս լավ պտտվող օդափոխիչ:
Բջջային հեռախոսով տվյալներին մուտք գործելու համար ներբեռնեք ThingView կոչվող IOS կամ Android հավելվածները, որոնք, բարեբախտաբար, դեռ անվճար են:
Կարգավորեք ձեր հաշվի կարգավորումները և պատրաստ կլինեք տեսնել ձեր տան քամու պայմանները, որտեղ էլ որ լինեք:
Եթե հետաքրքրություն ունեք, մուտք գործեք իմ ThingSpeak Channel ID ալիք ՝ 438851, որը հանրային է, և այնտեղ դուք կգտնեք քամու և ուղղության չափումներ իմ տանը:
Ես իսկապես հույս ունեմ, որ դուք զվարճացեք:
Եթե որևէ կասկած ունեք, մի հապաղեք կապվել ինձ հետ:
Հարգանքներով
Խորհուրդ ենք տալիս:
Ինչպես կառուցել ձեր սեփական աշխատասեղանը `20 քայլ

Ինչպես կառուցել ձեր սեփական համակարգիչը. Անկախ նրանից, թե ցանկանում եք կառուցել ձեր սեփական համակարգիչը տեսախաղերի, գրաֆիկական դիզայնի, վիդեո խմբագրման կամ նույնիսկ պարզապես զվարճանքի համար, այս մանրամասն ուղեցույցը ցույց կտա ձեզ այն, ինչ ձեզ հարկավոր կլինի ձեր սեփական անձնական համակարգիչը կառուցելու համար:
Ինչպես կառուցել ձեր սեփական NRF24L01+pa+lna մոդուլը ՝ 5 քայլ

Ինչպես կառուցել ձեր սեփական NRF24L01+pa+lna մոդուլը. Nrf24L01 մոդուլը շատ տարածված է, քանի որ այն հեշտ է իրականացնել անլար կապի նախագծերում: Մոդուլը կարելի է գտնել 1 $ -ով ՝ PCB տպագիր տարբերակով կամ միաբևեռ ալեհավաքով: Այս էժան մոդուլների խնդիրն այն է, որ նրանք ունեն
Ինչպես կառուցել ձեր սեփական 3D տպագիր Quadcopter- ը `4 քայլ

Ինչպես կառուցել ձեր սեփական 3D տպագիր քառանկյունը
Ինչպես կառուցել ձեր սեփական ռեակտիվ շարժիչը. 10 քայլ (նկարներով)

Ինչպես կառուցել ձեր սեփական ռեակտիվ շարժիչը. Ռեակտիվ շարժիչով մոտոցիկլետ ունենալու համար պարտադիր չէ, որ լինեք ayեյ Լենոն, և մենք ձեզ ցույց կտանք, թե ինչպես կատարել ձեր սեփական ռեակտիվ ինքնաթիռը հենց այստեղ ՝ ձեր տարօրինակ մեքենաներին հզորացնելու համար: Սա շարունակական նախագիծ է, և բազմաթիվ լրացուցիչ տեղեկություններ հասանելի կլինեն մեր վեբ կայքում
Ինչպես կառուցել կիթառի խոսնակների տուփ կամ կառուցել երկու ձեր ստերեոյի համար. 17 քայլ (նկարներով)

Ինչպես կառուցել կիթառի խոսնակների արկղ կամ կառուցել երկու ձեր ստերեոյի համար. Բարձրախոսը դուրս կգա իմ խանութում, այնպես որ կարիք չկա չափազանց առանձնահատուկ բան լինել: Tolex ծածկույթը կարող է շատ հեշտությամբ վնասվել, այնպես որ ես պարզապես սև ցողեցի թեթև ավազից հետո