Table des matières:

Minuterie de salle d'étude : 7 étapes
Minuterie de salle d'étude : 7 étapes

Vidéo: Minuterie de salle d'étude : 7 étapes

Vidéo: Minuterie de salle d'étude : 7 étapes
Vidéo: soins palliatifs. Mort en direct après 7 jours sans manger ni boire 😪 2024, Juillet
Anonim
Minuterie de salle d'étude
Minuterie de salle d'étude
Minuterie de salle d'étude
Minuterie de salle d'étude
Minuterie de salle d'étude
Minuterie de salle d'étude

Instructions sur la façon de créer une minuterie pour une salle d'étude.

Étape 1: Vidéo d'interaction

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

Étape 2: Énoncé du problème

La plupart du temps, les salles d'étude sont toujours occupées. Cela se produit parce que les gens aiment rester dans la pièce plus longtemps que nécessaire. Nous avons conçu une minuterie qui permet à chaque personne un total de 2 heures et aux personnes en attente la possibilité de demander la salle pour être le prochain groupe. L'utilisation de RVB sur Neopixels exprimera le temps restant.

Étape 3: Présentation de son fonctionnement

La minuterie se compose de pièces découpées par le cutter laser, 3 boutons, 1 LED, 1 potentiomètre.

Les Neopixels et le potentiomètre sont câblés au NodeMCU. Le NodeMCU est programmé pour modifier la distance de rotation du potentiomètre afin de modifier la quantité de LED allumées sur la bande circulaire Neopixel. Le bouton Request arrête la fonction de démarrage, d'arrêt et de réglage de l'heure. La couleur des LED sur la minuterie à l'intérieur de la pièce est la même couleur que la LED allumée sur le côté de la boîte. Le néopixel sur le côté de la box représente l'affichage dans le hall de l'immeuble pour savoir quelle pièce est prise et combien de temps il reste. 2 LED sont prescrites pour chaque pièce, une LED indique si la pièce est occupée et l'autre LED reflète la couleur des LED sur la minuterie (vert est plus de temps, puis jaune, puis rouge pour moins de temps).

Étape 4: Liste des matériaux et outils

-Acrylique transparent

-Câble MicroUSB

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

-Planche à pain

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

-Potentiomètre

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

-3 boutons

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

-NodeMCU

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

- 2 Bandes Néopixel

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

-Résistances

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

- Fils

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

-1 LED

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

-Pistolet à colle chaude

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

-Bandes Velcro collantes

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

Étape 5: Commencez à construire avec la planche à pain

Commencez à construire avec la planche à pain
Commencez à construire avec la planche à pain

A0 à la broche centrale du potentiomètre

Anneau Vin to Power on Neopixel

3v3 d'un côté du potentiomètre

Tous les motifs à la terre sur NodeMCU

D1 au bouton de demande

D2 à la LED de demande

D3 pour démarrer le bouton

D4 pour arrêter le bouton

D5 à la résistance à l'entrée Neopixel sur l'anneau

D6 à la résistance à la bande d'entrée Neopixel

Étape 6: Commencer le code

C'est le code pour s'assurer que votre projet fonctionne jusqu'à présent. La minuterie ne doit être que de quelques secondes par LED sur l'anneau Neopixel. Une fois que vous savez que cela fonctionne jusqu'à ce point, tout ce que vous avez à faire est de modifier l'heure si les instructions ci-dessous pour votre plage spécifiée. Je mettrai « #Change time » sur chacune des déclarations que vous devez modifier pour votre temps alloué.

Essayer le code:

importer utime

heure d'importation

à partir de l'ADC d'importation de machine

machine d'importation

importer des néopixels

adc = CAN(0)

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

np = neopixel. NeoPixel(broche, 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 = machine. Pin(0, machine. Pin. IN, machine. Pin. PULL_UP)

l1.valeur(0)

def tglled(): # basculer la fonction LED 'request'

si l1.value() == 0:

l1.valeur(1)

autre:

l1.valeur(0)

x = 0

b1temp1 = 0

b1temp2 = 0

t = 0

b2temp1 = 0

b2temp2 = 0

b3temp1 = 0

b3temp2 = 0

s = 0

tant que vrai:

# C'est le bouton qui bascule la LED 'request'

b1temp2 = b1.valeur()

si b1temp1 et non b1temp2:

tglled()

temps.sommeil(0.05)

b1temp1 = b1temp2

# Ceci est la grille

np2[0] = np[11]

si l1.value() == 1:

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

autre:

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

np2.write()

# C'est ici que nous sélectionnons le temps dont nous avons besoin

si t == 0:

pour i dans la plage (-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)

autre:

np = (0, 0, 30)

np.write()

autre:

np = (0, 0, 0)

np.write()

# Ceci est le bouton pour démarrer la minuterie

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

b2temp2 = b2.valeur()

si b2temp1 et non b2temp2:

x += 1

t += (s * 100)

temps.sommeil(0.05)

b2temp1 = b2temp2

# Ce bouton termine le chronomètre

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

b3temp2 = b3.valeur()

si b3temp1 et non b3temp2:

x = 0

t = 0

temps.sommeil(0,05)

b3temp1 = b3temp2

# C'est la minuterie

si x > 0:

t += 1

si (t > 0) et (t <= 100): #Change time

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

si (t > 100) et (t <= 200): #Change time

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

si (t > 200) et (t <= 300): #Change time

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

si (t > 300) et (t <= 400): #Change time

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

si (t > 400) et (t <= 500): #Change time

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

si (t > 500) et (t <= 600): #Change time

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) et (t <= 700): #Change time

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

si (t > 700) et (t <= 800): #Change time

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

si (t > 800) et (t <= 900): #Change time

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

si (t > 900) et (t <= 1000): #Change time

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

si (t > 1000) et (t <= 1100): #Change time

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

si (t > 1100) et (t <= 1200): #Change time

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: #Changer l'heure

t = 0

x = 0

Étape 7: Touches finales

Maintenant, une fois que vous êtes arrivé jusqu'ici, vous devriez avoir le code de travail téléchargé sur le NodeMCU et toutes les pièces câblées à la maquette. Une fois que vous avez essayé le code et coupé toutes les pièces que vous avez pour l'extérieur, c'est-à-dire le boîtier découpé au laser, vous pouvez maintenant souder les fils au NodeMCU. La soudure est facultative mais peut la rendre plus sûre et plus petite pour votre boîtier. Voici quelques-unes des pièces découpées au laser que nous avons réalisées.

Conseillé: