Sisällysluettelo:

Työhuoneen ajastin: 7 vaihetta
Työhuoneen ajastin: 7 vaihetta

Video: Työhuoneen ajastin: 7 vaihetta

Video: Työhuoneen ajastin: 7 vaihetta
Video: 15 DIYs to rejuvenate a small house 2024, Heinäkuu
Anonim
Työhuoneen ajastin
Työhuoneen ajastin
Työhuoneen ajastin
Työhuoneen ajastin
Työhuoneen ajastin
Työhuoneen ajastin

Ohjeet ajastimen luomiseen työhuoneeseen.

Vaihe 1: Vuorovaikutusvideo

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

Vaihe 2: Ongelmailmoitus

Suurimman osan ajasta opiskeluhuoneet otetaan aina. Tämä johtuu siitä, että ihmiset haluavat pysyä huoneessa paljon pidempään kuin he tarvitsevat. Olemme suunnitelleet ajastimen, joka sallii jokaiselle henkilölle yhteensä 2 tuntia ja ihmisille, jotka odottavat kykyä pyytää tilaa seuraavaksi ryhmäksi. RGB: n käyttö Neopikseleissä ilmaisee jäljellä olevan ajan.

Vaihe 3: Yleiskatsaus sen toimintaan

Ajastin koostuu laserleikkurin leikkaamista osista, 3 painikkeesta, 1 LEDistä ja 1 potentiometristä.

Neopikselit ja potentiometri on kytketty NodeMCU: hon. NodeMCU on ohjelmoitu säätämään, kuinka pitkälle potentiometri on käännetty muuttaakseen pyöreässä Neopixel -nauhassa syttyvien LED -valojen määrää. Pyyntö -painike pysäyttää Käynnistä, Pysäytä ja Aseta aika -toiminnon. Huoneen ajastimen LED -valojen väri on sama kuin laatikon sivussa palavien LED -valojen väri. Laatikon sivussa oleva neopikseli edustaa rakennuksen aulassa olevaa näyttöä, joka tietää, mikä huone on varattu ja kuinka paljon aikaa on jäljellä. Jokaiselle huoneelle on määrätty kaksi LEDiä, joista yksi osoittaa, jos huone on otettu, ja toinen LED heijastaa ajastimen LEDien väriä (vihreä on enemmän aikaa, sitten keltainen ja sitten punainen vähemmän aikaa).

Vaihe 4: Luettelo materiaaleista ja työkaluista

-Kirkas akryyli

-MicroUSB -kaapeli

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

-Leipälauta

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

-Potentiometri

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

-3 painiketta

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

-SolmuMCU

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

- 2 Neopixel -nauhaa

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

-Vastukset

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

- Johdot

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

-1 LED

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

-Kuuma liimapistooli

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

-Tarttuvat tarranauhat

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

Vaihe 5: Aloita rakentaminen leipälevyn avulla

Aloita rakentaminen leipälevyn avulla
Aloita rakentaminen leipälevyn avulla

A0 potentiometrin keskitappiin

Vin to Power päälle Neopixel -rengas

3v3 potentiometrin toiselle puolelle

Kaikki perusteet maahan NodeMCU: lla

D1 pyyntöpainikkeeseen

D2 pyytää LED -valoa

D3 käynnistyspainikkeeseen

D4 pysäytyspainikkeeseen

D5 vastus Neopixel Input renkaassa

D6 vastus Neopixel -tuloliuskalle

Vaihe 6: Koodin käynnistäminen

Tämä on koodi, jolla varmistat, että projektisi toimii toistaiseksi. Ajastimen tulisi olla vain pari sekuntia neopikselirenkaan LEDiä kohti. Kun tiedät, että se toimii tähän asti, sinun tarvitsee vain muuttaa alla olevien lausuntojen aika määrittämääsi alueeseen. Laitan "#Change time" joka kerta, jos lausunnot, jotka sinun on muutettava aikasi jakamiseksi.

Koodin kokeilu:

tuoda aikaa

tuonnin aika

koneen tuonnista ADC

tuontikone

tuo neopikseli

adc = ADC (0)

nasta = kone. Pin (14, kone. Pin. OUT)

np = neopikseli NeoPixel (nasta, 12)

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

np2 = neopixel. NeoPixel (nasta2, 8)

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

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

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

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

11.arvo (0)

def tglled (): # toggle 'request' LED -toiminto

jos l1.arvo () == 0:

11.arvo (1)

muu:

11.arvo (0)

x = 0

b1temp1 = 0

b1temp2 = 0

t = 0

b2temp1 = 0

b2temp2 = 0

b3temp1 = 0

b3temp2 = 0

s = 0

vaikka totta:

# Tämä on painike, joka vaihtaa pyyntö -LED -valon

b1temp2 = b1.arvo ()

jos b1temp1 eikä b1temp2:

tglled ()

aika. unta (0,05)

b1temp1 = b1temp2

# Tämä on ruudukko

np2 [0] = np [11]

jos l1.arvo () == 1:

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

muu:

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

np2.write ()

# Tässä valitsemme kuinka paljon aikaa tarvitsemme

jos t == 0:

i alueella (-1, 12):

jos (l1.arvo () == 0):

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

np = (0, 0, 0)

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

s = (i + 1)

muu:

np = (0, 0, 30)

np.write ()

muu:

np = (0, 0, 0)

np.write ()

# Tällä painikkeella käynnistät ajastimen

jos (l1.arvo () == 0) ja (t == 0):

b2temp2 = b2.value ()

jos b2temp1 eikä b2temp2:

x += 1

t += (s * 100)

aika. unta (0,05)

b2temp1 = b2temp2

# Tämä painike lopettaa ajastimen

jos (l1.arvo () == 0):

b3temp2 = b3.value ()

jos b3temp1 eikä b3temp2:

x = 0

t = 0

aika. unta (0,05)

b3temp1 = b3temp2

# Tämä on ajastin

jos x> 0:

t += 1

jos (t> 0) ja (t <= 100): #Vaihda aikaa

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

jos (t> 100) ja (t <= 200): #Vaihda aikaa

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

jos (t> 200) ja (t <= 300): #Vaihda aikaa

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

jos (t> 300) ja (t <= 400): #Vaihda aikaa

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

jos (t> 400) ja (t <= 500): #Vaihda aikaa

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

jos (t> 500) ja (t <= 600): #Vaihda aikaa

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

jos (t> 600) ja (t <= 700): #Vaihda aikaa

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

jos (t> 700) ja (t <= 800): #Vaihda aikaa

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

jos (t> 800) ja (t <= 900): #Vaihda aikaa

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

jos (t> 900) ja (t <= 1000): #Vaihda aikaa

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

jos (t> 1000) ja (t <= 1100): #Vaihda aikaa

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

jos (t> 1100) ja (t <= 1200): #Vaihda aikaa

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

jos t> = 1300: #Muuta aikaa

t = 0

x = 0

Vaihe 7: Viimeistely

Nyt kun olet niin kaukana, sinun pitäisi ladata työkoodi NodeMCU: hon ja kaikki osat, jotka on kytketty leipälautaan. Kun olet kokeillut koodia ja leikannut kaikki palaset ulkopuolelta, eli laserleikatusta kotelosta, voit nyt juottaa johdot NodeMCU: lle. Juotos on valinnainen, mutta se voi tehdä siitä turvallisemman ja pienemmän kotelollesi. Tässä on joitain tekemiämme laserleikattuja osia.

Suositeltava: