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

Ուսումնական սենյակի ժամաչափ `7 քայլ
Ուսումնական սենյակի ժամաչափ `7 քայլ

Video: Ուսումնական սենյակի ժամաչափ `7 քայլ

Video: Ուսումնական սենյակի ժամաչափ `7 քայլ
Video: КАК УСТАНОВИТЬ CUSTOM ROM GAMING NUSANTARA V1.1 НА XIAOMI REDMI NOTE 8 ANDROID 10 И ТЕСТОВАЯ ИГРА 2024, Հուլիսի
Anonim
Ուսումնական սենյակի ժամաչափ
Ուսումնական սենյակի ժամաչափ
Ուսումնական սենյակի ժամաչափ
Ուսումնական սենյակի ժամաչափ
Ուսումնական սենյակի ժամաչափ
Ուսումնական սենյակի ժամաչափ

Հրահանգներ, թե ինչպես ստեղծել ժամաչափ աշխատասենյակի համար:

Քայլ 1: Փոխազդեցության տեսանյութ

drive.google.com/file/d/12z5zQR52AXILX2AGb3EplfbmZWANZiCl/view?usp=drivesdk

Քայլ 2: Խնդրի հայտարարություն

Ofամանակի մեծ մասը, ուսումնական սենյակները միշտ վերցվում են: Դա տեղի է ունենում այն պատճառով, որ մարդիկ սիրում են սենյակում մնալ շատ ավելի երկար, քան իրենց անհրաժեշտ է: Մենք նախագծել ենք ժամաչափ, որը յուրաքանչյուր անձի հնարավորություն է տալիս ընդամենը 2 ժամ, և այն մարդիկ, ովքեր սպասում են, որ կարողանան պահանջել, որ սենյակը լինի հաջորդ խումբը: Neopixels- ում RGB- ի օգտագործումը կարտահայտի մնացած ժամանակը:

Քայլ 3. Ակնարկ, թե ինչպես է այն աշխատում

Theամաչափը բաղկացած է լազերային դանակով կտրված մասերից, 3 կոճակ, 1 LED, 1 պոտենցիոմետր:

Neopixels- ը և պոտենցիոմետրը միացված են NodeMCU- ին: NodeMCU- ն ծրագրված է ռեգոնիզացնելու, թե որքանով է պոտենցիոմետրը շրջված ՝ փոխելու շրջանաձև Neopixel շերտի վրա լուսավորված լուսադիոդների քանակը: Հարցման կոճակը դադարեցնում է Start, Stop և Set time գործառույթի գործառույթը: Սենյակի ներսում գտնվող ժամաչափի վրա LED- ների գույնը տուփի կողքին լուսավորված LED- ի նույն գույնն է: Տուփի կողքի նեոպիքսելը ներկայացնում է շենքի նախասրահի ցուցադրումը `իմանալու համար, թե որ սենյակն է վերցված և որքան ժամանակ է մնացել: Յուրաքանչյուր սենյակի համար սահմանվում է 2 լուսադիոդ, որոնցից մեկը ցույց է տալիս, եթե սենյակը վերցված է, իսկ մյուս լուսադիոդային հայելին `ժամացույցի վրա լուսադիոդների գույնը (կանաչը ավելի շատ ժամանակ է, ապա դեղին, ապա կարմիր ավելի քիչ ժամանակ):

Քայլ 4: Նյութերի և գործիքների ցանկ

-Մաքուր ակրիլ

-MicroUSB մալուխ

www.digikey.com/product-detail/hy/stewart-…

-Գրատախտակ

www.amazon.com/gp/product/B01EV6LJ7G/ref=o…

-Պոտենցիոմետր

www.alliedelec.com/honeywell-380c32500/701…

-3 կոճակ

www.digikey.com/product-detail/hy/te-conne…

-NodeMCU

www.amazon.com/gp/product/B07CB4P2XY/ref=o…

- 2 նեոպիքսել ժապավեն

www.amazon.com/Lighting-Modules-NeoPixel-W…

-Դիմադրիչներ

www.digikey.com/product-detail/hy/te-conne…

- լարերը

www.digikey.com/product-detail/hy/sparkfun…

-1 LED

www.mouser.com/ProductDetail/Cree-Inc/C512…

-տաք սոսինձ ատրճանակ

www.walmart.com/ip/AdTech-Hi-Temp-Mini-Hot…

-Կպչուն Velcro շերտեր

www.amazon.com/VELCRO-Brand-90076-Fastener…

Քայլ 5. Սկսեք կառուցել Breadboard- ով

Սկսեք կառուցել Breadboard- ով
Սկսեք կառուցել Breadboard- ով

A0 դեպի միջին քորոց պոտենցիոմետրի վրա

Vin to Power on Neopixel մատանին

3v3 դեպի Potentiometer- ի մի կողմը

NodeMCU- ում հիմնավորելու բոլոր հիմքերը

D1 ՝ խնդրելու կոճակ

D2 ՝ LED պահանջելու համար

D3 Սկսելու կոճակ

D4 կանգառի կոճակ

D5 դեպի ռեզիստոր դեպի Neopixel Մուտք օղակի վրա

D6 դեպի Neopixel մուտքի ժապավենի դիմադրություն

Քայլ 6: Գործարկել կոդը

Սա ծածկագիր է `համոզվելու համար, որ ձեր նախագիծը մինչ այժմ աշխատում է: LEDամաչափը պետք է լինի ընդամենը մի քանի վայրկյան մեկ LED- ի վրա Neopixel Ring- ի վրա: Երբ իմանաք, որ այն գործում է մինչև այս պահը, այն ամենը, ինչ ձեզ հարկավոր է անել, այն է, որ ստորև բերված դրույթները փոխեն ձեր նշված տիրույթի: Ամեն անգամ ես կդնեմ «#Փոխել ժամանակը», եթե այն հայտարարությունները, որոնք դուք պետք է փոխեք ձեր ժամանակի հատկացման համար:

Փորձելով ծածկագիրը ՝

ներմուծել առավելագույն ժամանակը

ներմուծման ժամանակը

մեքենայի ներմուծման ADC- ից

ներմուծման մեքենա

ներմուծել նեոպիքսել

adc = ADC (0)

pin = մեքենա: Pin (14, մեքենա: Pin. OUT)

np = neopixel. NeoPixel (քորոց, 12)

pin2 = մեքենա: Pin (12, մեքենա. Pin. OUT)

np2 = նեոպիքսել. NeoPixel (pin2, 8)

l1 = մեքենա: Pin (4, մեքենա. Pin. OUT)

b1 = մեքենա. Pin (5, մեքենա. Pin. IN, մեքենա: Pin. PULL_UP)

b3 = մեքենա. Pin (2, մեքենա. Pin. IN, մեքենա. Pin. PULL_UP)

b2 = մեքենա: Pin (0, մեքենա. Pin. IN, մեքենա: Pin. PULL_UP)

l1. արժեք (0)

def tglled (): # միացնել «խնդրանք» LED գործառույթը

եթե l1.value () == 0:

l1. արժեք (1)

այլ:

l1. արժեք (0)

x = 0

b1temp1 = 0

b1temp2 = 0

t = 0

b2temp1 = 0

b2temp2 = 0

b3temp1 = 0

b3temp2 = 0

s = 0

իսկ ճշմարիտ:

# Սա այն կոճակն է, որը միացնում է «խնդրանք» LED- ը

b1temp2 = b1.արժեք ()

եթե b1temp1 և ոչ b1temp2:

tglled ()

ժամանակ. քուն (0.05)

b1temp1 = b1temp2

# Սա ցանցն է

np2 [0] = np [11]

եթե l1.value () == 1:

np2 [1] = (30, 0, 0)

այլ:

np2 [1] = (0, 0, 30)

np2.write ()

# Այստեղ մենք ընտրում ենք, թե որքան ժամանակ է մեզ պետք

եթե t == 0:

i- ի համար (-1, 12):

եթե (l1. արժեքը () == 0):

եթե (adc.read ()> = (85.34 * (i+1))):

np = (0, 0, 0)

np [11] = (0, 0, 30)

s = (i + 1)

այլ:

np = (0, 0, 30)

np. գրել ()

այլ:

np = (0, 0, 0)

np. գրել ()

# Սա ժմչփը գործարկելու կոճակն է

եթե (l1. արժեքը () == 0) և (t == 0):

b2temp2 = b2.value ()

եթե b2temp1 և ոչ b2temp2:

x += 1

t += (s * 100)

ժամանակ. քուն (0.05)

b2temp1 = b2temp2

# Այս կոճակն ավարտում է ժամաչափը

եթե (l1. արժեքը () == 0):

b3temp2 = b3. արժեք ()

եթե b3temp1 և ոչ b3temp2:

x = 0

t = 0

ժամանակ. քուն (0.05)

b3temp1 = b3temp2

# Սա ժամաչափ է

եթե x> 0:

t += 1

եթե (t> 0) և (t <= 100) ՝ #Փոխել ժամանակը

np [0] = (5, 30, 0)

np [1] = (5, 30, 0)

np [2] = (5, 30, 0)

np [3] = (5, 30, 0)

np [4] = (5, 30, 0)

np [5] = (5, 30, 0)

np [6] = (5, 30, 0)

np [7] = (5, 30, 0)

np [8] = (5, 30, 0)

np [9] = (5, 30, 0)

np [10] = (5, 30, 0)

np [11] = (5, 30, 0)

np. գրել ()

եթե (t> 100) և (t <= 200) ՝ #Փոխել ժամանակը

np [0] = (0, 0, 0)

np [1] = (10, 30, 0)

np [2] = (10, 30, 0)

np [3] = (10, 30, 0)

np [4] = (10, 30, 0)

np [5] = (10, 30, 0)

np [6] = (10, 30, 0)

np [7] = (10, 30, 0)

np [8] = (10, 30, 0)

np [9] = (10, 30, 0)

np [10] = (10, 30, 0)

np [11] = (10, 30, 0)

np. գրել ()

եթե (t> 200) և (t <= 300) ՝ #Փոխել ժամանակը

np [0] = (0, 0, 0)

np [1] = (0, 0, 0)

np [2] = (15, 30, 0)

np [3] = (15, 30, 0)

np [4] = (15, 30, 0)

np [5] = (15, 30, 0)

np [6] = (15, 30, 0)

np [7] = (15, 30, 0)

np [8] = (15, 30, 0)

np [9] = (15, 30, 0)

np [10] = (15, 30, 0)

np [11] = (15, 30, 0)

np. գրել ()

եթե (t> 300) և (t <= 400) ՝ #Փոխել ժամանակը

np [0] = (0, 0, 0)

np [1] = (0, 0, 0)

np [2] = (0, 0, 0)

np [3] = (20, 30, 0)

np [4] = (20, 30, 0)

np [5] = (20, 30, 0)

np [6] = (20, 30, 0)

np [7] = (20, 30, 0)

np [8] = (20, 30, 0)

np [9] = (20, 30, 0)

np [10] = (20, 30, 0)

np [11] = (20, 30, 0)

np. գրել ()

եթե (t> 400) և (t <= 500) ՝ #Փոխել ժամանակը

np [0] = (0, 0, 0)

np [1] = (0, 0, 0)

np [2] = (0, 0, 0)

np [3] = (0, 0, 0)

np [4] = (25, 30, 0)

np [5] = (25, 30, 0)

np [6] = (25, 30, 0)

np [7] = (25, 30, 0)

np [8] = (25, 30, 0)

np [9] = (25, 30, 0)

np [10] = (25, 30, 0)

np [11] = (25, 30, 0)

np. գրել ()

եթե (t> 500) և (t <= 600) ՝ #Փոխել ժամանակը

np [0] = (0, 0, 0)

np [1] = (0, 0, 0)

np [2] = (0, 0, 0)

np [3] = (0, 0, 0)

np [4] = (0, 0, 0)

np [5] = (30, 30, 0)

np [6] = (30, 30, 0)

np [7] = (30, 30, 0)

np [8] = (30, 30, 0)

np [9] = (30, 30, 0)

np [10] = (30, 30, 0)

np [11] = (30, 30, 0)

np. գրել ()

եթե (t> 600) և (t <= 700) ՝ #Փոխել ժամանակը

np [0] = (0, 0, 0)

np [1] = (0, 0, 0)

np [2] = (0, 0, 0)

np [3] = (0, 0, 0)

np [4] = (0, 0, 0)

np [5] = (0, 0, 0)

np [6] = (30, 25, 0)

np [7] = (30, 25, 0)

np [8] = (30, 25, 0)

np [9] = (30, 25, 0)

np [10] = (30, 25, 0)

np [11] = (30, 25, 0)

np. գրել ()

եթե (t> 700) և (t <= 800) ՝ #Փոխել ժամանակը

np [0] = (0, 0, 0)

np [1] = (0, 0, 0)

np [2] = (0, 0, 0)

np [3] = (0, 0, 0)

np [4] = (0, 0, 0)

np [5] = (0, 0, 0)

np [6] = (0, 0, 0)

np [7] = (30, 20, 0)

np [8] = (30, 20, 0)

np [9] = (30, 20, 0)

np [10] = (30, 20, 0)

np [11] = (30, 20, 0)

np. գրել ()

եթե (t> 800) և (t <= 900) ՝ #Փոխել ժամանակը

np [0] = (0, 0, 0)

np [1] = (0, 0, 0)

np [2] = (0, 0, 0)

np [3] = (0, 0, 0)

np [4] = (0, 0, 0)

np [5] = (0, 0, 0)

np [6] = (0, 0, 0)

np [7] = (0, 0, 0)

np [8] = (30, 15, 0)

np [9] = (30, 15, 0)

np [10] = (30, 15, 0)

np [11] = (30, 15, 0)

np. գրել ()

եթե (t> 900) և (t <= 1000) ՝ #Փոխել ժամանակը

np [0] = (0, 0, 0)

np [1] = (0, 0, 0)

np [2] = (0, 0, 0)

np [3] = (0, 0, 0)

np [4] = (0, 0, 0)

np [5] = (0, 0, 0)

np [6] = (0, 0, 0)

np [7] = (0, 0, 0)

np [8] = (0, 0, 0)

np [9] = (30, 10, 0)

np [10] = (30, 10, 0)

np [11] = (30, 10, 0)

np. գրել ()

եթե (t> 1000) և (t <= 1100) ՝ #Փոխել ժամանակը

np [0] = (0, 0, 0)

np [1] = (0, 0, 0)

np [2] = (0, 0, 0)

np [3] = (0, 0, 0)

np [4] = (0, 0, 0)

np [5] = (0, 0, 0)

np [6] = (0, 0, 0)

np [7] = (0, 0, 0)

np [8] = (0, 0, 0)

np [9] = (0, 0, 0)

np [10] = (30, 5, 0)

np [11] = (30, 5, 0)

np. գրել ()

եթե (t> 1100) և (t <= 1200) ՝ #Փոխել ժամանակը

np [0] = (0, 0, 0)

np [1] = (0, 0, 0)

np [2] = (0, 0, 0)

np [3] = (0, 0, 0)

np [4] = (0, 0, 0)

np [5] = (0, 0, 0)

np [6] = (0, 0, 0)

np [7] = (0, 0, 0)

np [8] = (0, 0, 0)

np [9] = (0, 0, 0)

np [10] = (0, 0, 0)

np [11] = (30, 0, 0)

np. գրել ()

եթե t> = 1300: #Փոխել ժամանակը

t = 0

x = 0

Քայլ 7: Ավարտելով հպումները

Այժմ, երբ դուք այսքան հեռու եք, դուք պետք է աշխատանքային կոդը վերբեռնեք NodeMCU- ում և բոլոր մասերը միացված են հացատախտակին: Երբ դուք փորձեք ծածկագիրը և կտրեք ձեր արտաքին մասի ցանկացած կտոր, այսինքն ՝ լազերային պատյան, այժմ կարող եք լարերը միացնել NodeMCU- ին: Theոդումը պարտադիր չէ, բայց կարող է այն ավելի ապահով և փոքր դարձնել ձեր պատյանների համար: Ահա մեր պատրաստած լազերային կտրված մասերից մի քանիսը:

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