Innholdsfortegnelse:

Studierom -timer: 7 trinn
Studierom -timer: 7 trinn

Video: Studierom -timer: 7 trinn

Video: Studierom -timer: 7 trinn
Video: САМЫЙ БЮДЖЕТНЫЙ ДОМ ЗА 7 ДНЕЙ! КАРКАСНЫЙ ДОМ БАНЯ 7 ДНЕЙ ЗА 20 МИНУТ! 2024, Juli
Anonim
Timer for studierom
Timer for studierom
Timer for studierom
Timer for studierom
Timer for studierom
Timer for studierom

Instruksjoner om hvordan du lager en timer for et studierom.

Trinn 1: Interaksjonsvideo

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

Trinn 2: Problemerklæring

Mesteparten av tiden blir det alltid tatt studierom. Dette skjer fordi folk liker å bli i rommet mye lenger enn de trenger. Vi har designet en tidtaker som tillater hver person totalt 2 timer og folk som venter på muligheten til å be rommet om å være den neste gruppen i. Bruk av RGB på Neopixels vil uttrykke hvor lang tid det er igjen.

Trinn 3: Oversikt over hvordan det fungerer

Timeren består av deler kuttet av laserskjæreren, 3 knapper, 1 LED, 1 potensiometer.

Neopixel og potensiometer er koblet til NodeMCU. NodeMCU er programmert til å regonisere hvor langt potensiometeret er dreid for å endre mengden LED -er som lyser på den sirkulære Neopixel -stripen. Forespørselsknappen stopper funksjonen til Start, Stopp og Angi klokkeslett -funksjonen. Fargen på lysdiodene på timeren inne i rommet er den samme fargen som lysdioden lyser på siden av boksen. Neopikselen på siden av esken representerer skjermen i lobbyen til bygningen for å vite hvilket rom som er tatt og hvor lang tid det er igjen. 2 lysdioder er foreskrevet for hvert rom, en lysdiode representerer hvis rommet er tatt, og den andre lysdioden speiler fargen på lysdiodene på timeren (grønn er mer tid, deretter gul, deretter rød for kortere tid).

Trinn 4: Liste over materialer og verktøy

-Klar akryl

-MicroUSB -kabel

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

-Brødbrett

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

-Potensiometer

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

-3 knapper

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

-NodeMCU

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

- 2 Neopixel Strips

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

-Motstandere

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

- Ledninger

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

-1 LED

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

-Varm limpistol

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

-Sticky borrelåsstrimler

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

Trinn 5: Begynn å bygge med brødbrettet

Begynn å bygge med brødbrettet
Begynn å bygge med brødbrettet

A0 til midtpinne på potensiometer

Vin to Power on Neopixel ring

3v3 til den ene siden av potensiometeret

All grunn til bakken på NodeMCU

D1 til forespørselsknapp

D2 for å be om LED

D3 til Start -knapp

D4 til stoppknapp

D5 til motstand mot Neopixel Inngang på ring

D6 til motstand mot Neopixel Input strip

Trinn 6: Start koden

Dette er koden for å sikre at prosjektet ditt fungerer så langt. Timeren bør bare være et par sekunder per LED på Neopixel -ringen. Når du vet at det fungerer frem til dette punktet, er alt du trenger å gjøre å endre tiden hvis utsagnene nedenfor er til det angitte området. Jeg vil sette "#Endre tid" på hver gang hvis uttalelser du må endre for din tidstildeling.

Prøver koden:

import utime

importtid

fra maskinimport ADC

import maskin

importer neopiksel

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.verdi (0)

def tglled (): # veksle 'forespørsel' LED -funksjon

hvis l1.value () == 0:

l1.verdi (1)

ellers:

l1.verdi (0)

x = 0

b1temp1 = 0

b1temp2 = 0

t = 0

b2temp1 = 0

b2temp2 = 0

b3temp1 = 0

b3temp2 = 0

s = 0

mens det er sant:

# Dette er knappen som veksler "forespørsels" LED

b1temp2 = b1.value ()

hvis b1temp1 og ikke b1temp2:

tglled ()

time.sleep (0,05)

b1temp1 = b1temp2

# Dette er rutenettet

np2 [0] = np [11]

hvis l1.value () == 1:

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

ellers:

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

np2.write ()

# Det er her vi velger hvor mye tid vi trenger

hvis t == 0:

for i i området (-1, 12):

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

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

np = (0, 0, 0)

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

s = (i + 1)

ellers:

np = (0, 0, 30)

np.write ()

ellers:

np = (0, 0, 0)

np.write ()

# Dette er knappen for å starte timeren

hvis (l1.value () == 0) og (t == 0):

b2temp2 = b2.value ()

hvis b2temp1 og ikke b2temp2:

x += 1

t += (s * 100)

time.sleep (0,05)

b2temp1 = b2temp2

# Denne knappen avslutter timeren

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

b3temp2 = b3.value ()

hvis b3temp1 og ikke b3temp2:

x = 0

t = 0

time.sleep (0,05)

b3temp1 = b3temp2

# Dette er timeren

hvis x> 0:

t += 1

hvis (t> 0) og (t <= 100): #Endre tid

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

hvis (t> 100) og (t <= 200): #Endre tid

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

hvis (t> 200) og (t <= 300): #Endre tid

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

hvis (t> 300) og (t <= 400): #Endre tid

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

hvis (t> 400) og (t <= 500): #Endre tid

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

hvis (t> 500) og (t <= 600): #Endre tid

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

hvis (t> 600) og (t <= 700): #Endre tid

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

hvis (t> 700) og (t <= 800): #Endre tid

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

hvis (t> 800) og (t <= 900): #Endre tid

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

hvis (t> 900) og (t <= 1000): #Endre tid

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

hvis (t> 1000) og (t <= 1100): #Endre tid

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

hvis (t> 1100) og (t <= 1200): #Endre tid

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

hvis t> = 1300: #Endre tid

t = 0

x = 0

Trinn 7: Etterbehandling

Nå, når du er så langt, bør du ha arbeidskoden lastet opp til NodeMCU og alle delene er koblet til brødbrettet. Når du har prøvd koden og kuttet de bitene du har til utsiden, dvs. laserskåret foringsrør, kan du nå lodde ledningene til NodeMCU. Loddetinnet er valgfritt, men kan gjøre det sikrere og mindre for huset ditt. Her er noen av de laserskårne delene vi har laget.

Anbefalt: