Sommario:
- Passaggio 1: video di interazione
- Passaggio 2: dichiarazione del problema
- Passaggio 3: panoramica di come funziona
- Passaggio 4: elenco di materiali e strumenti
- Passaggio 5: inizia a costruire con la breadboard
- Passaggio 6: avvio del codice
- Passaggio 7: ritocchi finali
Video: Timer della sala studio: 7 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:03
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
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:
Controllore automatico della luce e della ventola della stanza con contatore visitatori bidirezionale: 3 passaggi
Controllore automatico della luce e della ventola della stanza con contatore visitatori bidirezionale: spesso vediamo contatori visitatori in stadi, centri commerciali, uffici, aule, ecc. Come contano le persone e accendono o spengono la luce quando nessuno è all'interno? Oggi siamo qui con il progetto di controllo automatico della luce ambientale con contatore visitatori bidirezionale
Hackerare un pulsante della porta della Jubilee Line della metropolitana di Londra: 12 passaggi (con immagini)
Hacking di un pulsante della porta della Jubilee Line della metropolitana di Londra: Il negozio del London Transport Museum vende pulsanti della porta dismessi della Jubilee Line (sono disponibili sia a sinistra che a destra). Se stai pensando di realizzare un progetto che necessita di un pulsante e di una spia di qualche tipo, saresti
Monitor della sala server: 4 passaggi
Server Room Monitor: uno dei problemi di una sala server è la temperatura. Con diverse apparecchiature che producono calore, questo aumenta rapidamente. E se l'aria condizionata si guasta, ferma tutto velocemente. Per prevedere queste situazioni possiamo acquisire uno dei tanti ambienti
Monitoraggio della sala conferenze utilizzando il fotone particellare: 8 passaggi (con immagini)
Monitoraggio della sala conferenze utilizzando Particle Photon: Introduzione In questo tutorial realizzeremo il monitoraggio della sala conferenze utilizzando Particle Photon. In questa particella è integrato con Slack utilizzando Webhooks per ottenere aggiornamenti in tempo reale sulla disponibilità o meno di una stanza. I sensori PIR vengono utilizzati per d
IDC2018IOT: Snitcher della sala riunioni: 6 passaggi
IDC2018IOT: Meeting Room Snitcher: I PROBLEMI che conosciamo, il trend degli spazi di co-working ha accelerato negli ultimi anni, insieme alla tecnologia all'avanguardia che definisce la scelta dello spazio di co-working specifico che si adatta alle tue esigenze.One delle principali funzionalità offerte è