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

Լույսի ինտենսիվության գծագրում Arduino- ի և Python- ի Arduino վարպետ գրադարանի միջոցով. 5 քայլ
Լույսի ինտենսիվության գծագրում Arduino- ի և Python- ի Arduino վարպետ գրադարանի միջոցով. 5 քայլ

Video: Լույսի ինտենսիվության գծագրում Arduino- ի և Python- ի Arduino վարպետ գրադարանի միջոցով. 5 քայլ

Video: Լույսի ինտենսիվության գծագրում Arduino- ի և Python- ի Arduino վարպետ գրադարանի միջոցով. 5 քայլ
Video: Electronic curtain, Электронные шторы, Ավտոմատ վարագույրներ 2024, Նոյեմբեր
Anonim
Լույսի ինտենսիվության սյուժե Arduino- ի և Python- ի Arduino վարպետ գրադարանի միջոցով
Լույսի ինտենսիվության սյուժե Arduino- ի և Python- ի Arduino վարպետ գրադարանի միջոցով

Arduino- ն լինելով տնտեսապես միևնույն ժամանակ շատ արդյունավետ և ֆունկցիոնալ գործիք, այն ներկառուցված C- ով ծրագրավորելը ձանձրացնում է նախագծերը դարձնելու գործընթացը: Python- ի Arduino_Master մոդուլը հեշտացնում է դա և թույլ է տալիս մեզ կատարել հաշվարկներ, հեռացնել աղբի արժեքները և գծել գրաֆիկ տվյալների տեսողական ներկայացման համար:

Եթե դեռ չգիտեք այս մոդուլի մասին, տեղադրեք այն ՝ օգտագործելով հրամանի pip install Arduino_Master- ը

Մի անհանգստացեք, եթե չգիտեք, թե ինչպես օգտագործել այս մոդուլը, այցելեք այս հղումը => Arduino_Master

Այնուամենայնիվ, այս նախագծի ծածկագիրը միշտ հասանելի կլինի այս հրահանգում:

Պարագաներ

Այս նախագծի համար ձեզ հարկավոր է հետևյալը.

  1. Արդուինո
  2. Լույսից կախված դիմադրություն (LDR) և
  3. Python 3 -ը տեղադրված է ձեր համակարգչում:

Քայլ 1: Կառուցեք ձեր շրջանը

Կառուցեք ձեր շրջանը
Կառուցեք ձեր շրջանը

Մուտքային տվյալներ ստանալու համար մենք կօգտագործենք Arduino- ի A1 կապը: Մարտկոցի փոխարեն կարող եք օգտագործել Arduino- ի 5V և GND կապանքները: Կապը կատարեք հետևյալ կերպ.

  1. LDR- ի մի ծայրը միացրեք 5 Վ մարտկոցի դրական տերմինալին կամ Arduino- ի 5 Վ պինին:
  2. Միացրեք LDR- ի մյուս ծայրը զուգահեռ A1 կապին և մարտկոցի բացասական տերմինալին կամ Arduino- ի GND կապին:
  3. Օգտագործեք ռեզիստոր `համոզվելու համար, որ ամբողջ հոսանքը չի հոսում GND, ինչը կհանգեցնի նրան, որ դուք բավականաչափ ուժեղ ազդանշան չեք ստանալու Arduino- ի A1 տերմինալում զգալու համար: (Ես օգտագործում եմ 10k ohms ռեզիստոր):

Քայլ 2: Ձեր Arduino- ի ծրագրավորում

Arduino_Master մոդուլը օգտագործում է Arduino- ի Serial Monitor- ը ՝ տվյալներ ուղարկելու և ստանալու համար: Այս մոդուլն օգտագործելու առավելությունն այն է, որ ձեր Arduino- ն ծրագրավորելուց հետո կարող եք միայնակ փոխել Python ծրագիրը տարբեր նախագծերի համար, քանի որ Python- ում ծրագրավորումը համեմատաբար ավելի հեշտ է:

Կոդ:

// LDR_1 փոփոխականն օգտագործվում է Arduino- ի A1 կապը նշելու համար:

int LDR_1 = A1;

// A1- ից ստացված տվյալները կպահվեն LDR_Value_1- ում:

բոց LDR_Value_1;

Լարային մուտքագրում;

դատարկ կարգավորում ()

{pinMode (LDR_1, Մուտք); // LDR_1- ը սահմանվում է որպես INPUT քորոց: Serial.begin (9600); // Հաղորդակցության բաուդրատը սահմանվում է 9600:}

դատարկ շրջան ()

{if (Serial.available ()> 0) // եթե սերիական մոնիտորում առկա է որևէ մուտք, ապա շարունակեք: {մուտքագրում = Serial.readString (); // Մուտքը կարդա որպես տող: եթե (մուտքագրում == "ՏՎՅԱԼՆԵՐ") {LDR_Value_1 = analogRead (LDR_1) * (5.0 / 1023.0); // (5 /1023) վոլտում արժեք ստանալու փոխակերպման գործոնն է: Serial.println (LDR_Value_1); // Եթե մուտքագրումը հավասար է «ՏՎՅԱԼՆԵՐԻ», ապա կարդացեք մուտքագրումը LDR_1- ից և տպեք այն Սերիայի մոնիտորի վրա: } else int i = 0; // եթե մուտքագրումը հավասար չէ «ՏՎՅԱԼՆԵՐԻ», ոչինչ մի արա: }

}

Քայլ 3. Python- ի ծրագրավորում Arduino- ի տվյալների գծագրման համար

Յուրաքանչյուր LDR- ն կունենա իր դիմադրողականության արժեքները, և մենք պետք է հիշենք, որ էլեկտրոնային բաղադրիչներից ոչ մեկը երբևէ ճշգրիտ նույնական չէ: Այսպիսով, առաջին հերթին մենք պետք է գտնենք լարման տարբեր ինտենսիվության լույսի ներքո:

Վերբեռնեք հետևյալ ծրագիրը ձեր python IDE- ում և գործարկեք այն.

Դա արեք լույսի տարբեր ինտենսիվությունների դեպքում և գրաֆիկի միջոցով եզրակացություն արեք, ասեք, օրինակ, եթե ինտենսիվությունը 1 -ից փոքր է, սենյակը չափազանց մութ է: 1 -ից 2 -ի ինտենսիվության դեպքում սենյակը զգալիորեն մութ է: 2 -ից մեծ ինտենսիվության դեպքում լույսը միացված է:

# Arduino_Master մոդուլի ներմուծում

Arduino_Master ներմուծումից *

# տվյալների հավաքում

տվյալներ = զտիչ (ardata (8, squeeze = False, dynamical = True, msg = "DATA", lines = 30), expect_type = 'num', limit = [0, 5])

# սահմանաչափը սահմանվել է 5, քանի որ մենք օգտագործում ենք 5 Վ մարտկոց:

# Արժեքների գծագրում

Գրաֆիկ (տվյալներ, stl = 'dark_background', label = 'Light Intensity')

Քայլ 4. Սենյակում լույսի ինտենսիվությունը ստուգելու վերջնական ծրագիր:

Ստացված տվյալներից եզրակացություն անելուց հետո վերբեռնեք հետևյալ ծրագիրը և համոզվեք, որ ձեր եզրակացության համաձայն փոխեք սահմանները:

# Arduino_Master մոդուլի ներմուծում

Arduino_Master- ից ներմուծում # տվյալների հավաքում = զտիչ (ardata (8, squeeze = False, dynamical = True, msg = "DATA", lines = 50), expect_type = 'num', limit = [0, 5]) # տվյալների դասակարգում հիմնված եզրակացության վրա info = i համար միջակայքում (len (տվյալներ)). ինտենսիվություն = տվյալներ եթե ինտենսիվությունը 1 և ինտենսիվությունը = 2: info.append ('Light ON') # Գրաֆիկի գծագրում: compGraph (տվյալներ, տեղեկություններ, stl = 'dark_background', label1 = 'Light Intensity', label2 = 'State')

Քայլ 5: Արդյունք

Արդյունք
Արդյունք

Theրագիրը կտևի մեկ -երկու րոպե, քանի որ դուք կարդում եք 50 ակնթարթային արժեքներ Արդուինոյից:

Եթե ցանկանում եք արագացնել գործընթացը, փորձեք փոխել ardata գործառույթի տողերի պարամետրը: Բայց հիշեք, որ որքան փոքր լինեն դիտարկումները, այնքան փոքր կլինի տվյալների որակը:

Նշում. Եթե վերը նշված նկարի ամբողջական գրաֆիկը տեսանելի չէ, նշեք Ներածություն բաժնի վերևում գտնվող գրաֆիկը:

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