Sadržaj:

Mjerač radne sobe: 7 koraka
Mjerač radne sobe: 7 koraka

Video: Mjerač radne sobe: 7 koraka

Video: Mjerač radne sobe: 7 koraka
Video: Праздник. Новогодняя комедия 2024, Srpanj
Anonim
Mjerač radne sobe
Mjerač radne sobe
Mjerač radne sobe
Mjerač radne sobe
Mjerač radne sobe
Mjerač radne sobe

Upute o tome kako stvoriti mjerač vremena za radnu sobu.

Korak 1: Videozapis o interakciji

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

Korak 2: Izjava o problemu

Većinom se uvijek zauzimaju radne sobe. To se događa jer ljudi vole ostati u sobi mnogo dulje nego što im je potrebno. Dizajnirali smo mjerač vremena koji omogućuje svakoj osobi ukupno 2 sata i ljudima koji čekaju mogućnost da zatraže da soba bude sljedeća grupa. Korištenje RGB -a na Neopikselima izrazit će preostalo vrijeme.

Korak 3: Pregled kako to funkcionira

Mjerač vremena sastoji se od dijelova izrezanih laserskim rezačem, 3 gumba, 1 LED, 1 potenciometar.

Neopikseli i potenciometar spojeni su na NodeMCU. NodeMCU je programiran za ponovno određivanje udaljenosti okretanja potenciometra za promjenu količine LED dioda koje svijetle na kružnoj traci od neopiksela. Gumb Zahtjev zaustavlja funkciju Start, Stop i Set time. Boja LED dioda na mjeraču vremena u prostoriji ista je boja LED diode koja svijetli sa strane kutije. Neopiksel sa strane kutije predstavlja zaslon u predvorju zgrade kako bi znao koja je soba zauzeta i koliko je vremena ostalo. 2 LED diode su propisane za svaku sobu, jedna LED predstavlja ako je soba zauzeta, a druga LED reflektira boju LED dioda na mjeraču vremena (zelena ima više vremena, zatim žuta, a zatim crvena za manje vremena).

Korak 4: Popis materijala i alata

-čisti akril

-MicroUSB kabel

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

-Daska

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

-Potenciometar

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

-3 tipke

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

-NodeMCU

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

- 2 Neopikselne trake

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

-Otpornici

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štolj za vruće ljepilo

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

-Ljepljive čičak trake

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

Korak 5: Počnite graditi s tlocrtom

Počnite graditi s tlocrtom
Počnite graditi s tlocrtom

A0 do srednjeg zatika na potenciometru

Vin to Power Neopixel prsten

3v3 na jednu stranu potenciometra

Sve osnove za uzemljenje na NodeMCU

D1 za gumb zahtjeva

D2 na zahtjev LED

D3 za pokretanje

D4 za zaustavljanje

D5 na otpornik do Neopixel ulaza na prstenu

D6 na otpor prema Neopixel ulaznoj traci

Korak 6: Pokretanje koda

Ovo je kôd za provjeru funkcioniranja vašeg projekta do sada. Mjerač vremena trebao bi biti samo nekoliko sekundi po LED na neopikselnom prstenu. Kad znate da radi do ove točke, sve što trebate učiniti je promijeniti donje izraze time if u navedeni raspon. Stavit ću '#Promijeni vrijeme' na svako vrijeme ako izjave koje morate promijeniti za svoju dodjelu vremena.

Isprobavanje koda:

uvoz utime

vrijeme uvoza

iz ADC uvoznog stroja

stroj za uvoz

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

l1.vrijednost (0)

def tglined (): # prebacivanje LED funkcije 'zahtjev'

ako je l1.value () == 0:

l1.vrijednost (1)

drugo:

l1.vrijednost (0)

x = 0

b1temp1 = 0

b1temp2 = 0

t = 0

b2temp1 = 0

b2temp2 = 0

b3temp1 = 0

b3temp2 = 0

s = 0

dok je istina:

# Ovo je gumb koji prebacuje LED "zahtjev"

b1temp2 = b1.value ()

ako b1temp1, a ne b1temp2:

tglined ()

vrijeme.spavanje (0,05)

b1temp1 = b1temp2

# Ovo je mreža

np2 [0] = np [11]

ako je l1.value () == 1:

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

drugo:

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

np2.write ()

# Ovdje odabiremo koliko nam je vremena potrebno

ako je t == 0:

za i u rasponu (-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)

drugo:

np = (0, 0, 30)

np.write ()

drugo:

np = (0, 0, 0)

np.write ()

# Ovo je gumb za pokretanje mjerača vremena

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

b2temp2 = b2.value ()

ako b2temp1, a ne b2temp2:

x += 1

t += (s * 100)

vrijeme.spavanje (0,05)

b2temp1 = b2temp2

# Ovaj gumb prekida mjerač vremena

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

b3temp2 = b3.value ()

ako b3temp1, a ne b3temp2:

x = 0

t = 0

vrijeme.spavanje (0,05)

b3temp1 = b3temp2

# Ovo je mjerač vremena

ako je x> 0:

t += 1

if (t> 0) i (t <= 100): #Promijeni vrijeme

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) i (t <= 200): #Promijeni vrijeme

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) i (t <= 300): #Promijeni vrijeme

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) i (t <= 400): #Promijeni vrijeme

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) i (t <= 500): #Promijeni vrijeme

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) i (t <= 600): #Promijeni vrijeme

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) i (t <= 700): #Promijeni vrijeme

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) i (t <= 800): #Promijeni vrijeme

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) i (t <= 900): #Promijeni vrijeme

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) i (t <= 1000): #Promijeni vrijeme

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) i (t <= 1100): #Promijeni vrijeme

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

if (t> 1100) i (t <= 1200): #Promijeni vrijeme

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

ako je t> = 1300: #Promijenite vrijeme

t = 0

x = 0

Korak 7: Završni dodiri

Sada, kad ste ovoliki, radni kôd trebali biste učitati na NodeMCU, a svi dijelovi ožičeni na matičnoj ploči. Nakon što ste isprobali kôd i izrezali sve dijelove koje imate za vanjski dio, tj. Laserski izrezano kućište, sada možete lemiti žice na NodeMCU. Lemljenje je opcionalno, ali ga može učiniti sigurnijim i manjim za vaše kućište. Evo nekih laserski izrezanih dijelova koje smo izradili.

Preporučeni: