Kazalo:

Časovnik za študijsko sobo: 7 korakov
Časovnik za študijsko sobo: 7 korakov

Video: Časovnik za študijsko sobo: 7 korakov

Video: Časovnik za študijsko sobo: 7 korakov
Video: Красивая история о настоящей любви! Мелодрама НЕЛЮБОВЬ (Домашний). 2024, Julij
Anonim
Časovnik za študijsko sobo
Časovnik za študijsko sobo
Časovnik za študijsko sobo
Časovnik za študijsko sobo
Časovnik za študijsko sobo
Časovnik za študijsko sobo

Navodila za ustvarjanje časovnika za delovno sobo.

1. korak: interakcijski video

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

2. korak: Izjava o težavi

Večino časa so vedno zasedene učilnice. To se zgodi, ker ljudje radi ostanejo v sobi veliko dlje, kot jih potrebujejo. Oblikovali smo časovnik, ki vsaki osebi omogoča skupno 2 uri in ljudem, ki čakajo, da lahko zahtevajo, da soba postane naslednja skupina. Uporaba RGB na neopikslih bo izrazila preostali čas.

3. korak: Pregled delovanja

Časovnik je sestavljen iz delov, ki jih izreže laserski rezalnik, 3 gumbe, 1 LED, 1 potenciometer.

Neopiksli in potenciometer so povezani z NodeMCU. NodeMCU je programiran tako, da znova ugotovi, kako daleč je potenciometer obrnjen, da spremeni količino LED, ki svetijo na krožnem traku Neopixel. Gumb za zahtevo ustavi funkcijo Start, Stop in Set time. Barva LED na časovniku v prostoru je enaka barvi LED, prižganih na strani škatle. Neopixel na strani škatle predstavlja zaslon v preddverju stavbe, da ve, katera soba je zasedena in koliko časa je še ostalo. Za vsako sobo sta predpisani 2 LED, ena LED predstavlja, če je soba zasedena, druga pa odraža barvo LED na časovniku (zelena je več časa, nato rumena, nato rdeča za manj časa).

4. korak: Seznam materialov in orodij

-čist akril

-MicroUSB kabel

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

-lesena deska

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

-potenciometer

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

-3 gumbi

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

-NodeMCU

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

- 2 Neopixel trakova

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

-Upori

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

- Žice

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

-1 LED

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

-Pištola za vroče lepilo

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

-Ljupki Velcro trakovi

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

5. korak: Začnite graditi s ploščico

Začnite graditi s ploščico
Začnite graditi s ploščico

A0 do sredinskega zatiča na potenciometru

Vin za vklop prstana Neopixel

3v3 na eno stran potenciometra

Vsi razlogi za utemeljitev na NodeMCU

D1 za zahtevo

D2 za zahtevo LED

D3 za zagon

D4 za gumb za ustavitev

D5 do upora do neopixel vhoda na obroču

D6 do upora na vhodni trak Neopixel

6. korak: Zagon kode

To je koda za zagotovitev, da vaš projekt doslej deluje. Časovnik naj bo na obroču Neopixel le nekaj sekund na LED. Ko veste, da deluje do te točke, morate le spremeniti čas, če spodnji stavki v določeni obseg. Vsakemu času bom dodal '#Change time', če bodo navedbe, ki jih morate spremeniti glede na dodelitev časa.

Preizkusite kodo:

uvoz utime

čas uvoza

iz stroja za uvoz ADC

uvozni stroj

uvoz neopiksela

adc = ADC (0)

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

np = neopixel. NeoPixel (pin, 12)

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

np2 = neopixel. NeoPixel (pin2, 8)

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

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

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

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

l1.value (0)

def tglined (): # preklopi LED funkcija 'request'

če je l1.value () == 0:

l1.vrednost (1)

drugače:

l1.value (0)

x = 0

b1temp1 = 0

b1temp2 = 0

t = 0

b2temp1 = 0

b2temp2 = 0

b3temp1 = 0

b3temp2 = 0

s = 0

medtem ko je res:

# To je gumb, ki preklopi LED za zahtevo

b1temp2 = b1.value ()

če b1temp1 in ne b1temp2:

tglined ()

time.sleep (0,05)

b1temp1 = b1temp2

# To je mreža

np2 [0] = np [11]

če je l1.value () == 1:

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

drugače:

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

np2.write ()

# Tu izberemo, koliko časa potrebujemo

če je t == 0:

za i v območju (-1, 12):

if (l1.value () == 0):

if (adc.read ()> = (85,34 * (i+1))):

np = (0, 0, 0)

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

s = (i + 1)

drugače:

np = (0, 0, 30)

np.write ()

drugače:

np = (0, 0, 0)

np.write ()

# To je gumb za zagon časovnika

če (l1.value () == 0) in (t == 0):

b2temp2 = b2.value ()

če b2temp1 in ne b2temp2:

x += 1

t += (s * 100)

time.sleep (0,05)

b2temp1 = b2temp2

# S tem gumbom se časovnik konča

if (l1.value () == 0):

b3temp2 = b3.value ()

če b3temp1 in ne b3temp2:

x = 0

t = 0

time.sleep (0,05)

b3temp1 = b3temp2

# To je časovnik

če je x> 0:

t += 1

if (t> 0) in (t <= 100): #Spremeni čas

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

if (t> 100) in (t <= 200): #Spremeni čas

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

if (t> 200) in (t <= 300): #Spremeni čas

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

if (t> 300) in (t <= 400): #Spremeni čas

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

if (t> 400) in (t <= 500): #Spremeni čas

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

if (t> 500) in (t <= 600): #Spremeni čas

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

if (t> 600) in (t <= 700): #Spremeni čas

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

if (t> 700) in (t <= 800): #Spremeni čas

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

if (t> 800) in (t <= 900): #Spremeni čas

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

if (t> 900) in (t <= 1000): #Spremeni čas

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

if (t> 1000) in (t <= 1100): #Spremeni čas

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

če (t> 1100) in (t <= 1200): #Spremeni čas

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

če je t> = 1300: #Spremenite čas

t = 0

x = 0

7. korak: Zaključni dotiki

Zdaj, ko ste tako daleč, bi morali delovno kodo naložiti v NodeMCU in vse dele povezati z matično ploščo. Ko ste preizkusili kodo in odrezali vse kose, ki jih imate za zunanjost, to je lasersko rezano ohišje, lahko žice spajkate na NodeMCU. Spajkanje ni obvezno, vendar je lahko varnejše in manjše za vaše ohišje. Tukaj je nekaj delov, ki smo jih izdelali z laserjem.

Priporočena: