Tabla de contenido:

Temporizador de sala de estudio: 7 pasos
Temporizador de sala de estudio: 7 pasos

Video: Temporizador de sala de estudio: 7 pasos

Video: Temporizador de sala de estudio: 7 pasos
Video: 🎓 7 Pasos para ORGANIZAR tu VIDA ESCOLAR con NOTION (...y Aprobar el Semestre) 2024, Mes de julio
Anonim
Temporizador de sala de estudio
Temporizador de sala de estudio
Temporizador de sala de estudio
Temporizador de sala de estudio
Temporizador de sala de estudio
Temporizador de sala de estudio

Instrucciones sobre cómo crear un temporizador para una sala de estudio.

Paso 1: video de interacción

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

Paso 2: declaración del problema

La mayoría de las veces, las salas de estudio siempre están ocupadas. Esto sucede porque a las personas les gusta quedarse en la habitación mucho más tiempo del que necesitan. Hemos diseñado un temporizador que permite a cada persona un total de 2 horas y a las personas que esperan la posibilidad de solicitar que la sala sea el siguiente grupo. El uso de RGB en Neopixels expresará la cantidad de tiempo restante.

Paso 3: descripción general de cómo funciona

El temporizador consta de piezas cortadas por el cortador láser, 3 botones, 1 LED, 1 potenciómetro.

Los Neopixels y el potenciómetro están conectados al NodeMCU. El NodeMCU está programado para regonizar cuánto se gira el potenciómetro para cambiar la cantidad de LED que se encienden en la tira circular de Neopixel. El botón Solicitar detiene la función de Iniciar, Detener y Establecer la hora. El color de los LED en el temporizador dentro de la habitación es el mismo color del LED iluminado en el costado de la caja. El neopixel en el lateral de la caja representa la pantalla en el vestíbulo del edificio para saber qué habitación se toma y cuánto tiempo queda. Se prescriben 2 LED para cada habitación, un LED representa si la habitación está ocupada y el otro LED refleja el color de los LED en el temporizador (el verde es más tiempo, luego el amarillo, luego el rojo por menos tiempo).

Paso 4: Lista de materiales y herramientas

-Acrílico transparente

-Cable MicroUSB

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

-Tablero de circuitos

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

-Potenciómetro

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

-3 botones

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

-NodeMCU

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

- 2 tiras de Neopixel

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

-Resistores

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

- alambres

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

-1 LED

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

-Pistola de silicona

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

-Tiras adhesivas de velcro

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

Paso 5: Comience a construir con la placa de pruebas

Comience a construir con la placa de pruebas
Comience a construir con la placa de pruebas

A0 al pin central del potenciómetro

Vin to Power on anillo Neopixel

3v3 a un lado del potenciómetro

Todos los motivos a tierra en NodeMCU

D1 al botón de solicitud

D2 para solicitar LED

D3 al botón de inicio

D4 al botón de parada

D5 a la resistencia a la entrada de Neopixel en el anillo

D6 a la resistencia a la tira de entrada Neopixel

Paso 6: Iniciar el código

Este es el código para asegurarse de que su proyecto esté funcionando hasta ahora. El temporizador solo debe ser de un par de segundos por LED en el anillo de Neopixel. Una vez que sepa que está funcionando hasta este punto, todo lo que necesita hacer es cambiar el tiempo si las declaraciones a continuación a su rango especificado. Pondré '#Change time' en cada una de las declaraciones de tiempo que necesita cambiar para su asignación de tiempo.

Probar el código:

import utime

tiempo de importación

desde la importación de la máquina ADC

máquina de importación

importar neopixel

adc = ADC (0)

pin = máquina. Pin (14, máquina. Pin. OUT)

np = neopixel. NeoPixel (pin, 12)

pin2 = máquina. Pin (12, máquina. Pin. OUT)

np2 = neopixel. NeoPixel (pin2, 8)

l1 = máquina. Pin (4, máquina. Pin. OUT)

b1 = máquina. Pin (5, máquina. Pin. IN, máquina. Pin. PULL_UP)

b3 = máquina. Pin (2, máquina. Pin. IN, máquina. Pin. PULL_UP)

b2 = máquina. Pin (0, máquina. Pin. IN, máquina. Pin. PULL_UP)

l1.valor (0)

def tglled (): # alternar la función LED de 'solicitud'

si l1.value () == 0:

l1.valor (1)

demás:

l1.valor (0)

x = 0

b1temp1 = 0

b1temp2 = 0

t = 0

b2temp1 = 0

b2temp2 = 0

b3temp1 = 0

b3temp2 = 0

s = 0

mientras que es cierto:

# Este es el botón que alterna el LED de 'solicitud'

b1temp2 = b1.value ()

si b1temp1 y no b1temp2:

tglled ()

tiempo de sueño (0.05)

b1temp1 = b1temp2

# Esta es la cuadrícula

np2 [0] = np [11]

si l1.value () == 1:

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

demás:

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

np2.write ()

# Aquí es donde seleccionamos cuánto tiempo necesitamos

si t == 0:

para i en el rango (-1, 12):

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

si (lectura adc. ()> = (85.34 * (i + 1))):

np = (0, 0, 0)

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

s = (i + 1)

demás:

np = (0, 0, 30)

np.write ()

demás:

np = (0, 0, 0)

np.write ()

# Este es el botón para iniciar el temporizador

si (l1.value () == 0) y (t == 0):

b2temp2 = b2.value ()

si b2temp1 y no b2temp2:

x + = 1

t + = (s * 100)

tiempo de sueño (0.05)

b2temp1 = b2temp2

# Este botón finaliza el temporizador

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

b3temp2 = b3.value ()

si b3temp1 y no b3temp2:

x = 0

t = 0

tiempo de sueño (0.05)

b3temp1 = b3temp2

# Este es el temporizador

si x> 0:

t + = 1

if (t> 0) y (t <= 100): #Cambio de hora

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) y (t <= 200): #Cambio de hora

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) y (t <= 300): #Cambio de hora

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) y (t <= 400): #Cambio de hora

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) y (t <= 500): #Cambio de hora

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) y (t <= 600): #Cambio de hora

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

si (t> 600) y (t <= 700): #Cambio de hora

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) y (t <= 800): #Cambio de hora

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) y (t <= 900): #Cambio de hora

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) y (t <= 1000): #Cambio de hora

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) y (t <= 1100): #Cambio de hora

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) y (t <= 1200): #Cambiar hora

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

si t> = 1300: #Cambio de hora

t = 0

x = 0

Paso 7: Toques finales

Ahora, una vez que esté tan lejos, debería tener el código de trabajo cargado en NodeMCU y todas las partes conectadas a la placa de pruebas. Una vez que haya probado el código y cortado las piezas que tenga para el exterior, es decir, la carcasa cortada con láser, ahora puede soldar los cables al NodeMCU. La soldadura es opcional, pero puede hacerla más segura y más pequeña para su carcasa. Estas son algunas de las piezas cortadas con láser que hicimos.

Recomendado: