Sommario:

Timer della sala studio: 7 passaggi
Timer della sala studio: 7 passaggi

Video: Timer della sala studio: 7 passaggi

Video: Timer della sala studio: 7 passaggi
Video: Дневник хранящий жуткие тайны. Переход. Джеральд Даррелл. Мистика. Ужасы 2024, Luglio
Anonim
Timer sala studio
Timer sala studio
Timer sala studio
Timer sala studio
Timer sala studio
Timer sala studio

Istruzioni su come creare un timer per una sala studio.

Passaggio 1: video di interazione

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

Passaggio 2: dichiarazione del problema

La maggior parte delle volte, le aule studio sono sempre occupate. Questo accade perché alle persone piace stare nella stanza molto più a lungo del necessario. Abbiamo progettato un timer che consente a ogni persona un totale di 2 ore e alle persone in attesa di richiedere la stanza per essere il prossimo gruppo. L'uso di RGB su Neopixel esprimerà la quantità di tempo rimasta.

Passaggio 3: panoramica di come funziona

Il timer è composto da parti tagliate dal laser cutter, 3 pulsanti, 1 LED, 1 potenziometro.

I Neopixel e il potenziometro sono collegati al NodeMCU. Il NodeMCU è programmato per regonizzare fino a che punto viene girato il potenziometro per modificare la quantità di LED che si accendono sulla striscia circolare di Neopixel. Il pulsante Richiesta interrompe la funzione di Avvio, Arresto e Imposta ora. Il colore dei led del timer all'interno della stanza è lo stesso colore del led acceso a lato della scatola. Il neopixel a lato della scatola rappresenta il display nell'atrio dell'edificio per sapere quale stanza è occupata e quanto tempo è rimasto. Per ogni stanza sono prescritti 2 LED, un LED rappresenta se la stanza è occupata e l'altro LED rispecchia il colore dei LED sul timer (il verde è più tempo, poi il giallo, poi il rosso per meno tempo).

Passaggio 4: elenco di materiali e strumenti

-Acrilico trasparente

-Cavo MicroUSB

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

-tagliere

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

-Potenziometro

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

-3 pulsanti

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

-NodeMCU

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

- 2 strisce di neopixel

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

-Resistori

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

- Fili

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

-1 LED

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

- Pistola per colla a caldo

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

- Strisce adesive in velcro

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

Passaggio 5: inizia a costruire con la breadboard

Inizia a costruire con la breadboard
Inizia a costruire con la breadboard

A0 al pin centrale sul potenziometro

Vin per accendere l'anello Neopixel

3v3 su un lato del potenziometro

Tutti i motivi a Ground su NodeMCU

D1 al pulsante di richiesta

D2 al LED di richiesta

D3 al pulsante Start

D4 al pulsante Stop

D5 al resistore all'ingresso Neopixel sull'anello

D6 al resistore alla striscia di ingresso Neopixel

Passaggio 6: avvio del codice

Questo è il codice per assicurarti che il tuo progetto funzioni finora. Il timer dovrebbe essere solo un paio di secondi per LED sull'anello Neopixel. Una volta che sai che funziona fino a questo punto, tutto ciò che devi fare è modificare l'ora se le istruzioni di seguito nell'intervallo specificato. Metterò '#Change time' su ciascuna delle affermazioni time if che devi modificare per la tua assegnazione di tempo.

Provando il codice:

importa utime

tempo di importazione

dall'importazione della macchina ADC

macchina di importazione

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

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

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

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

l1.valore(0)

def tglled(): # attiva/disattiva la funzione LED 'richiesta'

se l1.value() == 0:

l1.valore(1)

altro:

l1.valore(0)

x = 0

b1temp1 = 0

b1temp2 = 0

t = 0

b2temp1 = 0

b2temp2 = 0

b3temp1 = 0

b3temp2 = 0

s = 0

mentre vero:

# Questo è il pulsante che attiva il LED 'richiesta'

b1temp2 = b1.valore()

se b1temp1 e non b1temp2:

tglled()

tempo.sonno(0.05)

b1temp1 = b1temp2

# Questa è la griglia

np2[0] = np[11]

se l1.value() == 1:

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

altro:

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

np2.write()

# Qui è dove selezioniamo il tempo di cui abbiamo bisogno

se t == 0:

per i nell'intervallo (-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)

altro:

np = (0, 0, 30)

np.write()

altro:

np = (0, 0, 0)

np.write()

# Questo è il pulsante per avviare il timer

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

b2temp2 = b2.value()

se b2temp1 e non b2temp2:

x += 1

t += (s * 100)

tempo.sonno(0.05)

b2temp1 = b2temp2

# Questo pulsante termina il timer

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

b3temp2 = b3.value()

se b3temp1 e non b3temp2:

x = 0

t = 0

tempo.sonno(0.05)

b3temp1 = b3temp2

# Questo è il timer

se x > 0:

t += 1

if (t > 0) e (t <= 100): #Cambia tempo

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) e (t <= 200): #Cambia tempo

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) e (t <= 300): #Cambia tempo

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) e (t <= 400): #Cambia tempo

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) e (t <= 500): #Cambia tempo

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) e (t <= 600): #Cambia tempo

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) e (t <= 700): #Cambia tempo

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) e (t <= 800): #Cambia tempo

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) e (t <= 900): #Cambia tempo

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) e (t <= 1000): #Cambia tempo

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) e (t <= 1100): #Cambia tempo

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) e (t <= 1200): #Cambia tempo

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

se t >= 1300: #Cambia ora

t = 0

x = 0

Passaggio 7: ritocchi finali

Ora, una volta arrivato a questo punto, dovresti avere il codice funzionante caricato sul NodeMCU e tutte le parti collegate alla breadboard. Dopo aver provato il codice e tagliato tutti i pezzi che hai per l'esterno, ad esempio l'involucro tagliato al laser, puoi ora saldare i fili al NodeMCU. La saldatura è facoltativa ma potrebbe renderla più sicura e più piccola per il tuo involucro. Ecco alcune delle parti tagliate al laser che abbiamo realizzato.

Consigliato: