Indholdsfortegnelse:

Studierumstimer: 7 trin
Studierumstimer: 7 trin

Video: Studierumstimer: 7 trin

Video: Studierumstimer: 7 trin
Video: Обязательно запомни эту хитрость! Как можно моментально вывести йод с одежды? #shorts 2024, Juli
Anonim
Studierum Timer
Studierum Timer
Studierum Timer
Studierum Timer
Studierum Timer
Studierum Timer

Instruktioner om, hvordan du opretter en timer til et studieværelse.

Trin 1: Interaktionsvideo

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

Trin 2: Problemformulering

For det meste tages der altid studierum. Dette sker, fordi folk kan lide at blive i rummet meget længere, end de har brug for. Vi har designet en timer, der giver hver person i alt 2 timer og folk, der venter på muligheden for at anmode lokalet om at være den næste gruppe i. Brug af RGB på Neopixels vil udtrykke den tid, der er tilbage.

Trin 3: Oversigt over hvordan det fungerer

Timeren består af dele, der er skåret af laserskæreren, 3 knapper, 1 LED, 1 potentiometer.

Neopixel og potentiometer er forbundet til NodeMCU. NodeMCU er programmeret til at regonisere, hvor langt potentiometeret drejes for at ændre mængden af lysdioder, der lyser på den cirkulære Neopixel -strimmel. Knappen Anmodning stopper funktionen Start, Stop og Indstil tid. Farven på LED'erne på timeren inde i rummet er den samme farve som LED'en tændt på siden af boksen. Neopixel på siden af boksen repræsenterer displayet i bygningens lobby for at vide, hvilket rum der er taget, og hvor lang tid der er tilbage. 2 LED'er er foreskrevet for hvert værelse, en LED repræsenterer, hvis rummet er taget, og den anden LED afspejler farven på LED'erne på timeren (grøn er mere tid, derefter gul, derefter rød i kortere tid).

Trin 4: Liste over materialer og værktøjer

-Klar akryl

-MicroUSB -kabel

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

-Brødbræt

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

-Potentiometer

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 strimler

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

-Modstande

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 velcro strips

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

Trin 5: Start med at bygge med brødbrættet

Start med at bygge med brødbrættet
Start med at bygge med brødbrættet

A0 til midterste pin på potentiometer

Vin to Power on Neopixel ring

3v3 til den ene side af potentiometeret

Alle grunde til jorden på NodeMCU

D1 til anmodningsknap

D2 til Request LED

D3 til startknap

D4 til stopknap

D5 til modstand til Neopixel Indgang på ring

D6 til modstand til Neopixel inputstrimmel

Trin 6: Start af koden

Dette er koden for at sikre, at dit projekt fungerer indtil videre. Timeren bør kun være et par sekunder pr. LED på Neopixel -ringen. Når du ved, at det fungerer indtil dette tidspunkt, er alt du skal gøre at ændre tiden, hvis udsagnene nedenfor til dit angivne område. Jeg vil sætte '#Change time' på hver gang, hvis udsagn, som du skal ændre for din tidstildeling.

Prøv koden:

import utime

importtid

fra maskineimport ADC

import maskine

import neopixel

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

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

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

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

l1.værdi (0)

def tglled (): # skift 'anmodning' LED -funktion

hvis l1.value () == 0:

l1.værdi (1)

andet:

l1.værdi (0)

x = 0

b1temp1 = 0

b1temp2 = 0

t = 0

b2temp1 = 0

b2temp2 = 0

b3temp1 = 0

b3temp2 = 0

s = 0

mens det er sandt:

# Dette er den knap, der skifter LED'en 'anmodning'

b1temp2 = b1.value ()

hvis b1temp1 og ikke b1temp2:

tglled ()

time.sleep (0,05)

b1temp1 = b1temp2

# Dette er gitteret

np2 [0] = np [11]

hvis l1.value () == 1:

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

andet:

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

np2.write ()

# Det er her, vi vælger, hvor meget tid vi har brug for

hvis t == 0:

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

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

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

np = (0, 0, 0)

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

s = (i + 1)

andet:

np = (0, 0, 30)

np.write ()

andet:

np = (0, 0, 0)

np.write ()

# Dette er knappen til at 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 knap afslutter 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): #Ændre 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): #Ændre 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): #Ændre 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): #Ændre 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): #Ændre 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): #Ændre 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): #Ændre 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): #Ændre 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): #Ændre 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): #Ændre 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): #Ændre 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): #Ændre 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: #Ændre tid

t = 0

x = 0

Trin 7: Efterbehandling

Nu, når du er kommet så langt, skal du have uploadet arbejdskoden til NodeMCU og alle delene er forbundet til brødbrættet. Når du har prøvet koden og skåret de stykker, du har til ydersiden, dvs. laserskåret kabinet, kan du nu lodde ledningerne til NodeMCU. Lodningen er valgfri, men kan gøre den mere sikker og mindre til dit hus. Her er nogle af de laserskårne dele, som vi har lavet.

Anbefalede: