Բովանդակություն:

Ինչպես կառուցել ձեր սեփական անեմոմետրը ՝ օգտագործելով եղեգնյա անջատիչներ, Hall Effect ցուցիչ և որոշ գրություններ Nodemcu- ում - Մաս 2 - Softwareրագրակազմ. 5 քայլ (նկարներով)
Ինչպես կառուցել ձեր սեփական անեմոմետրը ՝ օգտագործելով եղեգնյա անջատիչներ, Hall Effect ցուցիչ և որոշ գրություններ Nodemcu- ում - Մաս 2 - Softwareրագրակազմ. 5 քայլ (նկարներով)

Video: Ինչպես կառուցել ձեր սեփական անեմոմետրը ՝ օգտագործելով եղեգնյա անջատիչներ, Hall Effect ցուցիչ և որոշ գրություններ Nodemcu- ում - Մաս 2 - Softwareրագրակազմ. 5 քայլ (նկարներով)

Video: Ինչպես կառուցել ձեր սեփական անեմոմետրը ՝ օգտագործելով եղեգնյա անջատիչներ, Hall Effect ցուցիչ և որոշ գրություններ Nodemcu- ում - Մաս 2 - Softwareրագրակազմ. 5 քայլ (նկարներով)
Video: Ունե՞ք սեփական հողատարածք: Ցանկանում ե՞ք տուն կառուցել: 2024, Հունիսի
Anonim
Ինչպես կառուցել ձեր սեփական անեմոմետրը ՝ օգտագործելով եղեգնյա անջատիչներ, Hall Effect ցուցիչ և որոշ գրություններ Nodemcu- ի վրա - մաս 2 - ծրագրակազմ
Ինչպես կառուցել ձեր սեփական անեմոմետրը ՝ օգտագործելով եղեգնյա անջատիչներ, Hall Effect ցուցիչ և որոշ գրություններ Nodemcu- ի վրա - մաս 2 - ծրագրակազմ
Ինչպես կառուցել ձեր սեփական անեմոմետրը ՝ օգտագործելով եղեգնյա անջատիչներ, Hall Effect ցուցիչ և որոշ գրություններ Nodemcu- ի վրա - մաս 2 - ծրագրակազմ
Ինչպես կառուցել ձեր սեփական անեմոմետրը ՝ օգտագործելով եղեգնյա անջատիչներ, Hall Effect ցուցիչ և որոշ գրություններ Nodemcu- ի վրա - մաս 2 - ծրագրակազմ

Ներածություն

Սա առաջին գրառման շարունակությունն է `« Ինչպես կառուցել սեփական անեմոմետր ՝ օգտագործելով եղեգնյա անջատիչներ, Hall Effect Sensor և որոշ գրություններ Nodemcu- ում - մաս 1 - սարքավորում », որտեղ ես ցույց եմ տալիս, թե ինչպես հավաքել քամու արագության և ուղղության չափման սարքերը: Այստեղ մենք կօգտագործենք չափման կառավարման ծրագրակազմը, որը նախատեսված է Nodemcu- ում օգտագործելու համար `օգտագործելով Arduino IDE- ն:

Ծրագրի նկարագրությունը

Նախորդ գրառման մեջ Նոդեմկուին զինված և միացված սարքերը կարողանում են չափել քամու արագությունն ու ուղղությունը: Վերահսկիչ ծրագրակազմը նախատեսված էր որոշակի ժամանակ անեմոմետրի ռոտացիան կարդալու, գծային արագությունը հաշվարկելու, կարդալու ուղղությամբ, որտեղ գտնվում է թևը, ցույց տալու արդյունքները OLED- ում, արդյունքները հրապարակելու ThingSpeak- ում և քնելու 15 րոպե մինչև հաջորդ չափումը:

Հրաժարում. Այս անեմոմետրը չպետք է օգտագործվի մասնագիտական նպատակների համար: Այն նախատեսված է միայն ակադեմիական կամ տնային օգտագործման համար:

Նշում. Անգլերենը իմ բնական լեզուն չէ: Եթե գտնում եք քերականական սխալներ, որոնք խանգարում են ձեզ հասկանալ նախագիծը, խնդրում եմ ինձ տեղյակ պահեք դրանք շտկելու համար: Շատ շնորհակալություն.

Քայլ 1. Arduino IDE, ESP8266 տախտակների և գրադարանների և ձեր ThingSpeak հաշվի տեղադրում

Տեղադրելով Arduino IDE, ESP8266 տախտակներ և գրադարաններ և ձեր ThingSpeak հաշիվ
Տեղադրելով Arduino IDE, ESP8266 տախտակներ և գրադարաններ և ձեր ThingSpeak հաշիվ
Տեղադրելով Arduino IDE, ESP8266 տախտակներ և գրադարաններ և ձեր ThingSpeak հաշիվ
Տեղադրելով 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, որը հանրային է, և այնտեղ դուք կգտնեք քամու և ուղղության չափումներ իմ տանը:

Ես իսկապես հույս ունեմ, որ դուք զվարճացեք:

Եթե որևէ կասկած ունեք, մի հապաղեք կապվել ինձ հետ:

Հարգանքներով

Խորհուրդ ենք տալիս: