Índice:

Temporizador da sala de estudo: 7 etapas
Temporizador da sala de estudo: 7 etapas

Vídeo: Temporizador da sala de estudo: 7 etapas

Vídeo: Temporizador da sala de estudo: 7 etapas
Vídeo: Música Para Estudar e Manter o Foco - Trabalhar com Mais Concentração e Focar nos Estudos 2024, Julho
Anonim
Temporizador da sala de estudo
Temporizador da sala de estudo
Temporizador da sala de estudo
Temporizador da sala de estudo
Temporizador da sala de estudo
Temporizador da sala de estudo

Instruções sobre como criar um cronômetro para uma sala de estudo.

Etapa 1: Vídeo de interação

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

Etapa 2: Declaração do Problema

Na maioria das vezes, as salas de estudo estão sempre ocupadas. Isso acontece porque as pessoas gostam de ficar na sala por muito mais tempo do que precisam. Projetamos um cronômetro que permite a cada pessoa um total de 2 horas e às pessoas em espera a possibilidade de solicitar a sala para ser o próximo grupo. O uso de RGB em Neopixels expressará o tempo restante.

Etapa 3: Visão geral de como funciona

O cronômetro é composto por peças cortadas pelo cortador a laser, 3 botões, 1 LED, 1 potenciômetro.

O Neopixels e o potenciômetro são conectados ao NodeMCU. O NodeMCU é programado para regonizar até que ponto o potenciômetro é girado para alterar a quantidade de LEDs que são acesos na faixa circular de Neopixel. O botão Solicitar interrompe a função das funções Iniciar, Parar e Definir hora. A cor dos LEDs do cronômetro dentro da sala é a mesma cor do LED aceso na lateral da caixa. O neopixel na lateral da caixa representa o display no saguão do prédio para saber qual sala está ocupada e quanto tempo resta. São prescritos 2 LEDs para cada divisão, um LED representa se a divisão está ocupada e o outro LED espelha a cor dos LEDs do temporizador (verde é mais tempo, depois amarelo e vermelho para menos tempo).

Etapa 4: Lista de materiais e ferramentas

- Acrílico claro

- Cabo MicroUSB

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

-Breadboard

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

-Potenciômetro

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

-3 botões

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…

- Fios

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

-1 LED

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

-Pistola de cola quente

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

- Tiras de velcro fixas

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

Etapa 5: comece a construir com a placa de ensaio

Comece a construir com a placa de ensaio
Comece a construir com a placa de ensaio

A0 para pino do meio no potenciômetro

Vin para ligar o anel de Neopixel

3v3 para um lado do potenciômetro

Todos os fundamentos para aterrar no NodeMCU

D1 para solicitar o botão

D2 para solicitar LED

D3 para botão Iniciar

Botão D4 para parar

D5 para resistor para entrada de Neopixel no anel

D6 para resistor para faixa de entrada de Neopixel

Etapa 6: Iniciando o Código

Este é o código para garantir que seu projeto esteja funcionando até agora. O cronômetro deve ser de apenas alguns segundos por LED no anel de Neopixel. Depois de saber que está funcionando até este ponto, tudo o que você precisa fazer é alterar as instruções de tempo if abaixo para o intervalo especificado. Colocarei '#Change time' em cada uma das declarações de tempo que você precisa alterar para sua alocação de tempo.

Experimentando o código:

import utime

tempo de importação

da máquina de importação ADC

máquina de importação

importar neopixel

adc = ADC (0)

pin = machine. Pin (14, machine. Pin. OUT)

np = neopixel. NeoPixel (pino, 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 = máquina. Pin (0, máquina. Pin. IN, máquina. Pin. PULL_UP)

l1.valor (0)

def tglled (): # alternar a função de LED de 'solicitação'

se l1.value () == 0:

l1.valor (1)

outro:

l1.valor (0)

x = 0

b1temp1 = 0

b1temp2 = 0

t = 0

b2temp1 = 0

b2temp2 = 0

b3temp1 = 0

b3temp2 = 0

s = 0

enquanto verdadeiro:

# Este é o botão que alterna o LED de 'solicitação'

b1temp2 = b1.value ()

se b1temp1 e não b1temp2:

tglled ()

tempo.sono (0,05)

b1temp1 = b1temp2

# Esta é a grade

np2 [0] = np [11]

se l1.value () == 1:

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

outro:

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

np2.write ()

# Aqui é onde selecionamos quanto tempo precisamos

se t == 0:

para i no intervalo (-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)

outro:

np = (0, 0, 30)

np.write ()

outro:

np = (0, 0, 0)

np.write ()

# Este é o botão para iniciar o cronômetro

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

b2temp2 = b2.value ()

se b2temp1 e não b2temp2:

x + = 1

t + = (s * 100)

tempo.sono (0,05)

b2temp1 = b2temp2

# Este botão encerra o cronômetro

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

b3temp2 = b3.value ()

se b3temp1 e não b3temp2:

x = 0

t = 0

tempo.sono (0,05)

b3temp1 = b3temp2

# Este é o cronômetro

se x> 0:

t + = 1

if (t> 0) e (t <= 100): # Alterar o 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): # Alterar o 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): #Mudar 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) e (t <= 400): #Mudar 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): #Mudar 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): # Alterar o 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): # Alterar o 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): #Mudar 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) e (t <= 900): # Alterar o 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): # Alterar o 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): #Mudar 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) e (t <= 1200): # Alterar 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 ()

se t> = 1300: # Alterar hora

t = 0

x = 0

Etapa 7: toques finais

Agora, uma vez que você está tão longe, você deve ter o código de trabalho carregado para o NodeMCU e todas as partes conectadas à placa de ensaio. Depois de tentar o código e cortar todas as peças que você tem para o exterior, ou seja, revestimento de corte a laser, agora você pode soldar os fios ao NodeMCU. A solda é opcional, mas pode torná-la mais segura e menor para o seu gabinete. Aqui estão algumas das peças cortadas a laser que fizemos.

Recomendado: