Sisukord:

Õpperuumi taimer: 7 sammu
Õpperuumi taimer: 7 sammu

Video: Õpperuumi taimer: 7 sammu

Video: Õpperuumi taimer: 7 sammu
Video: 2-Hour Study With Me☂️🌧️ Rain sound 🎹 gentle calm piano music/Pomodoro 25-5 real-time 2024, November
Anonim
Õppetoa taimer
Õppetoa taimer
Õppetoa taimer
Õppetoa taimer
Õppetoa taimer
Õppetoa taimer

Õpetusruumi taimeri loomise juhised.

1. toiming: interaktsioonivideo

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

2. samm. Probleemi avaldus

Enamasti võetakse alati õpperuumid. See juhtub seetõttu, et inimestele meeldib toas viibida palju kauem kui vaja. Oleme loonud taimeri, mis võimaldab igal inimesel kokku 2 tundi ja inimesi, kes ootavad võimalust taotleda ruumi järgmiseks rühmaks. RGB kasutamine neopikslitel väljendab järelejäänud aega.

Samm: ülevaade selle toimimisest

Taimer koosneb laserlõikuri lõigatud osadest, 3 nupust, 1 LED -st, 1 potentsiomeetrist.

Neopikslid ja potentsiomeeter on ühendatud NodeMCU -ga. NodeMCU on programmeeritud reguleerima potentsiomeetri pööramise kaugust, et muuta ringikujulisel Neopixel ribal süttivate LED -ide arvu. Nupp Taotlus peatab funktsiooni Start, Stop ja Set time funktsiooni. Ruumis oleva taimeri LED -de värv on sama värvi kui karbi küljel põlev LED. Karbi küljel asuv neopiksel tähistab hoone fuajees olevat väljapanekut, et teada saada, milline ruum on hõivatud ja kui palju aega on jäänud. Iga ruumi jaoks on ette nähtud 2 LED -i, üks LED tähistab ruumi võtmist ja teine LED peegeldab taimeril olevate LED -ide värvi (roheline on rohkem aega, siis kollane, seejärel punane vähem aega).

Samm: materjalide ja tööriistade loend

-Selge akrüül

-MicroUSB kaabel

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

-Leivalaud

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

-Potentsiomeeter

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

-3 nuppu

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

-SõlmMCU

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

- 2 neopikseli riba

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

-Takistid

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

- Juhtmed

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

-1 LED

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

-Kuum liimipüstol

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

-Kleepuvad takjaribad

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

Samm: hakake ehitama leivaplaadiga

Alustage ehitamist leivaplaadiga
Alustage ehitamist leivaplaadiga

A0 kuni potentsiomeetri keskmise tihvtini

Vin to Power on Neopixel ring

3v3 potentsiomeetri ühele küljele

Kõik alused maapinnale NodeMCU -s

D1 taotluse nupule

D2 LED -i taotlemiseks

D3 kuni Start nupuni

D4 stopp -nupule

D5 takistile Neopixeli sisendile rõngas

D6 kuni takisti Neopixeli sisendribale

6. samm: koodi käivitamine

See on kood, mis tagab, et teie projekt töötab siiani. Taimer peaks Neopixeli rõnga LED -i jaoks olema vaid paar sekundit. Kui teate, et see töötab kuni selle hetkeni, peate vaid muutma allolevate avalduste aega teie määratud vahemikku. Kui avaldused, mida peate oma aja jaotamiseks muutma, lisan iga kord märke „#Change time”.

Koodi proovimine:

impordi utime

impordi aeg

masina impordist ADC

impordimasin

impordi neopiksel

adc = ADC (0)

pin = masin. Pin (14, masin. Pin. OUT)

np = neopiksel. NeoPixel (tihvt, 12)

pin2 = masin. Pin (12, masin. Pin. OUT)

np2 = neopiksel. NeoPixel (tihvt 2, 8)

l1 = masin. Pin (4, masin. Pin. OUT)

b1 = masin. Pin (5, masin. Pin. IN, masin. Pin. PULL_UP)

b3 = masin. Pin (2, masin. Pin. IN, masin. Pin. PULL_UP)

b2 = masin. Pin (0, masin. Pin. IN, masin. Pin. PULL_UP)

l1.väärtus (0)

def tglled (): # lülitab päringu LED -funktsiooni

kui l1.väärtus () == 0:

l1.väärtus (1)

muidu:

l1.väärtus (0)

x = 0

b1temp1 = 0

b1temp2 = 0

t = 0

b2temp1 = 0

b2temp2 = 0

b3temp1 = 0

b3temp2 = 0

s = 0

kuigi tõsi:

# See on nupp, mis lülitab päringu LED -i sisse

b1temp2 = b1.väärtus ()

kui b1temp1 ja mitte b1temp2:

tglled ()

uneaeg (0,05)

b1temp1 = b1temp2

# See on ruudustik

np2 [0] = np [11]

kui l1.väärtus () == 1:

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

muidu:

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

np2.write ()

# Siin valime, kui palju aega vajame

kui t == 0:

i puhul vahemikus (-1, 12):

kui (l1.väärtus () == 0):

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

np = (0, 0, 0)

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

s = (i + 1)

muidu:

np = (0, 0, 30)

np.write ()

muidu:

np = (0, 0, 0)

np.write ()

# See on taimeri käivitamise nupp

kui (l1.väärtus () == 0) ja (t == 0):

b2temp2 = b2.väärtus ()

kui b2temp1 ja mitte b2temp2:

x += 1

t += (s * 100)

uneaeg (0,05)

b2temp1 = b2temp2

# See nupp lõpetab taimeri

kui (l1.väärtus () == 0):

b3temp2 = b3.väärtus ()

kui b3temp1 ja mitte b3temp2:

x = 0

t = 0

uneaeg (0,05)

b3temp1 = b3temp2

# See on taimer

kui x> 0:

t += 1

kui (t> 0) ja (t <= 100): #muuda aega

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.write ()

kui (t> 100) ja (t <= 200): #muuda aega

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.write ()

kui (t> 200) ja (t <= 300): #muuda aega

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.write ()

kui (t> 300) ja (t <= 400): #muuda aega

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.write ()

kui (t> 400) ja (t <= 500): #muuda aega

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.write ()

kui (t> 500) ja (t <= 600): #muuda aega

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.write ()

kui (t> 600) ja (t <= 700): #muuda aega

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.write ()

kui (t> 700) ja (t <= 800): #muuda aega

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.write ()

kui (t> 800) ja (t <= 900): #muuda aega

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.write ()

kui (t> 900) ja (t <= 1000): #muuda aega

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.write ()

kui (t> 1000) ja (t <= 1100): #muuda aega

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.write ()

kui (t> 1100) ja (t <= 1200): #muuta aega

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.write ()

kui t> = 1300: #Aja muutmine

t = 0

x = 0

Samm 7: Viimistlus

Nüüd, kui olete nii kaugele jõudnud, peaksite töökoodi NodeMCU -sse üles laadima ja kõik osad leivaplaadile ühendama. Kui olete koodi proovinud ja lõiganud kõik välispinna tükid, st laserlõigatud korpuse, võite nüüd juhtmed NodeMCU külge jootma hakata. Jootmine on valikuline, kuid võib muuta selle teie korpuse jaoks turvalisemaks ja väiksemaks. Siin on mõned meie tehtud laserlõigatud osad.

Soovitan: