Tartalomjegyzék:

Tanulószoba időzítő: 7 lépés
Tanulószoba időzítő: 7 lépés

Videó: Tanulószoba időzítő: 7 lépés

Videó: Tanulószoba időzítő: 7 lépés
Videó: Garmin FENIX 7 sorozat - bemutató 2024, November
Anonim
Tanulószoba időzítő
Tanulószoba időzítő
Tanulószoba időzítő
Tanulószoba időzítő
Tanulószoba időzítő
Tanulószoba időzítő

Utasítások időzítő létrehozásához a dolgozószobához.

1. lépés: Interakciós videó

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

2. lépés: Problémajelentés

A legtöbb esetben a tanulószobákat mindig elfoglalják. Ez azért történik, mert az emberek szeretnek a kelleténél jóval hosszabb ideig a szobában maradni. Úgy terveztünk egy időzítőt, hogy minden személynek összesen 2 órát és a várakozást váró személyeknek legyen lehetősége a következő csoportba kerülni. Az RGB használata a neopixelekben kifejezi a hátralévő időt.

3. lépés: A működésének áttekintése

Az időzítő a lézervágó által vágott részekből, 3 gombból, 1 LED -ből és 1 potenciométerből áll.

A neopixelek és a potenciométer be van kötve a NodeMCU -ba. A NodeMCU úgy van programozva, hogy újraszabályozza a potenciométer elforgatását, hogy megváltoztassa a kör alakú Neopixel csíkon világító LED -ek mennyiségét. A Kérés gomb leállítja a Start, Stop és Set Time funkciót. A szobában lévő időzítőn lévő LED -ek színe megegyezik a doboz oldalán világító LED -ek színével. A doboz oldalán található neopixel az épület előcsarnokában lévő kijelzőt jelzi, hogy megtudja, melyik szobát foglalja el, és mennyi idő van hátra. Minden helyiségre 2 LED -et írnak elő, az egyik LED jelzi, ha a szoba el van foglalva, a másik LED pedig az időzítő LED -jeinek színét tükrözi (a zöld több, majd a sárga, majd a piros kevesebb ideig).

4. lépés: Az anyagok és eszközök listája

-Tiszta akril

-MicroUSB kábel

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

-Kenyértábla

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

-Potenciométer

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

-3 gomb

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

-NodeMCU

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

- 2 neopixel csík

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

-Ellenállások

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

- Vezetékek

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

-1 LED

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

-Ragasztópisztoly

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

-Ragadós tépőzáras szalagok

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

5. lépés: Kezdje el az építést a kenyértáblával

Kezdje el az építést a kenyértáblával
Kezdje el az építést a kenyértáblával

A0 a potenciométer középső csapjához

Vin to Power on Neopixel ring

3v3 a potenciométer egyik oldalára

Minden alap a földre a NodeMCU -n

D1 a kérés gombhoz

D2 a LED kéréséhez

D3 a Start gombra

D4 a Stop gombhoz

D5 az ellenálláshoz a Neopixel bemenethez

D6 az ellenálláshoz a Neopixel bemeneti szalaghoz

6. lépés: A kód elindítása

Ez a kód annak biztosítására, hogy a projekt eddig is működjön. Az időzítőnek csak néhány másodpercnek kell lennie a LED -en a Neopixel Ring -en. Miután megtudta, hogy ez működik, csak annyit kell tennie, hogy módosítja az alábbi állítások idejét a megadott tartományra. Minden alkalommal felteszem a "#Change time" lehetőséget, ha olyan állításokat kell módosítania, amelyeket ki kell osztania.

A kód kipróbálása:

importálás utime

importálási idő

gépimportból ADC

importáló gép

neopixel importálása

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 = gép. Pin (4, gép. Pin. OUT)

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

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

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

11. érték (0)

def tglled (): # toggle 'request' LED funkció

ha l1.érték () == 0:

11. érték (1)

más:

11. érték (0)

x = 0

b1temp1 = 0

b1temp2 = 0

t = 0

b2temp1 = 0

b2temp2 = 0

b3temp1 = 0

b3temp2 = 0

s = 0

míg igaz:

# Ez a gomb kapcsolja be a „kérés” LED -et

b1temp2 = b1.value ()

ha b1temp1 és nem b1temp2:

tglled ()

time.sleep (0.05)

b1temp1 = b1temp2

# Ez a rács

np2 [0] = np [11]

ha l1.érték () == 1:

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

más:

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

np2.write ()

# Itt választjuk ki, hogy mennyi időre van szükségünk

ha t == 0:

i esetén (-1, 12):

ha (l1.érték () == 0):

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

np = (0, 0, 0)

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

s = (i + 1)

más:

np = (0, 0, 30)

np.write ()

más:

np = (0, 0, 0)

np.write ()

# Ez a gomb az időzítő elindításához

ha (l1.érték () == 0) és (t == 0):

b2temp2 = b2.value ()

ha b2temp1 és nem b2temp2:

x += 1

t += (s * 100)

time.sleep (0.05)

b2temp1 = b2temp2

# Ez a gomb lezárja az időzítőt

ha (l1.érték () == 0):

b3temp2 = b3.value ()

ha b3temp1 és nem b3temp2:

x = 0

t = 0

time.sleep (0.05)

b3temp1 = b3temp2

# Ez az időzítő

ha x> 0:

t += 1

ha (t> 0) és (t <= 100): #Változás ideje

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

ha (t> 100) és (t <= 200): #Változás ideje

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

ha (t> 200) és (t <= 300): #Változás ideje

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

ha (t> 300) és (t <= 400): #Változási idő

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

ha (t> 400) és (t <= 500): #Változási idő

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

ha (t> 500) és (t <= 600): #Változás ideje

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

ha (t> 600) és (t <= 700): #Változás ideje

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

ha (t> 700) és (t <= 800): #Változás ideje

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

ha (t> 800) és (t <= 900): #Változás ideje

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

ha (t> 900) és (t <= 1000): #Változás ideje

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

ha (t> 1000) és (t <= 1100): #Változás ideje

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

ha (t> 1100) és (t <= 1200): #Változás ideje

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

ha t> = 1300: #Változás ideje

t = 0

x = 0

7. lépés: Utolsó simítások

Most, hogy idáig eljutott, fel kell töltenie a működőkódot a NodeMCU -ra, és az összes alkatrészt be kell kötni a kenyérpultra. Miután kipróbálta a kódot, és elvágta a külső részeket, azaz a lézervágott burkolatot, most forraszthatja a vezetékeket a NodeMCU -hoz. A forrasztás opcionális, de biztonságosabbá és kisebbé teheti a burkolat számára. Íme néhány lézerrel vágott alkatrész, amelyet készítettünk.

Ajánlott: