Sadržaj:

Tajmer za radnu sobu: 7 koraka
Tajmer za radnu sobu: 7 koraka

Video: Tajmer za radnu sobu: 7 koraka

Video: Tajmer za radnu sobu: 7 koraka
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Juli
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ćinu vremena radne sobe su uvijek zauzete. To se događa zato što ljudi vole ostati u sobi mnogo duže nego što im je potrebno. Dizajnirali smo mjerač vremena koji omogućava 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

Tajmer se sastoji od dijelova izrezanih laserskim rezačem, 3 dugmeta, 1 LED, 1 potenciometar.

Neopikseli i potenciometar su spojeni 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. Tipka Zahtjev zaustavlja funkciju Start, Stop i Set time. Boja LED dioda na tajmeru u prostoriji je ista boja LED diode koja svijetli sa strane kutije. Neopiksel sa strane kutije predstavlja ekran u predvorju zgrade kako bi znao koja je soba zauzeta i koliko je vremena ostalo. 2 LED diode su propisane za svaku prostoriju, jedna LED predstavlja ako je soba zauzeta, a druga LED reflektuje boju LED dioda na tajmeru (zelena ima više vremena, zatim žuta, a zatim crvena za manje vremena).

Korak 4: Lista materijala i alata

-Čisti akril

-MicroUSB kabl

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

-Bboardboard

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

-Potenciometar

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

-3 dugmeta

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

-NodeMCU

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

- 2 Neopixel 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 gradnju s pločicom
Počnite gradnju s pločicom

A0 do srednjeg pina na potenciometru

Vin za uključivanje Neopixel prstena

3v3 na jednu stranu potenciometra

Sve osnove za uzemljenje na NodeMCU

D1 za dugme za traženje

D2 na zahtjev LED

D3 za pokretanje

D4 za dugme Stop

D5 na otpor prema Neopixel ulazu 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. Tajmer bi trebao imati samo nekoliko sekundi po LED diodi na Neopixel prstenu. Jednom 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 se izjave koje morate promijeniti za dodjelu vremena.

Isprobavanje koda:

import utime

vreme uvoza

iz ADC -a za uvoz mašina

mašina 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 = Machine. Pin (4, machine. 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.value (0)

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

ako je l1.value () == 0:

l1.value (1)

drugo:

l1.value (0)

x = 0

b1temp1 = 0

b1temp2 = 0

t = 0

b2temp1 = 0

b2temp2 = 0

b3temp1 = 0

b3temp2 = 0

s = 0

dok je True:

# Ovo je dugme za prebacivanje LED -a za 'zahtev'

b1temp2 = b1.value ()

ako b1temp1, a ne b1temp2:

tglined ()

time.sleep (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 dugme za pokretanje odbrojavanja

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

b2temp2 = b2.value ()

ako b2temp1, a ne b2temp2:

x += 1

t += (s * 100)

time.sleep (0,05)

b2temp1 = b2temp2

# Ovo dugme prekida tajmer

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

b3temp2 = b3.value ()

ako b3temp1, a ne b3temp2:

x = 0

t = 0

time.sleep (0,05)

b3temp1 = b3temp2

# Ovo je tajmer

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): #Promeni vreme

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): #Promijenite 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): #Promijenite 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, kada ste ovoliki, radni kôd biste trebali učitati na NodeMCU, a svi dijelovi ožičeni na matičnoj ploči. Nakon što ste isprobali kod i izrezali sve dijelove koje imate za vanjski dio, tj. Kućište laserskim rezanjem, 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 napravili.

Preporučuje se: