Table des matières:
- Étape 1: Vidéo d'interaction
- Étape 2: Énoncé du problème
- Étape 3: Présentation de son fonctionnement
- Étape 4: Liste des matériaux et outils
- Étape 5: Commencez à construire avec la planche à pain
- Étape 6: Commencer le code
- Étape 7: Touches finales
Vidéo: Minuterie de salle d'étude : 7 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
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
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é:
Copain d'étude : 10 étapes
Copain d'étude : cette instructable explique comment faire un copain d'étude La fonction de ce copain d'étude est d'aider les adolescents âgés de 14 à 18 ans à apprendre à planifier et à étudier. L'objectif est que le robot puisse apprendre avec les élèves. La couverture est peinte dans un
Étude de simulation : 9 étapes
Étude de simulation : dans cette instructable, j'ai utilisé la fusion 360 d'Autodesk. Cette instructable est pour l'étude de simulation
Moteur pas à pas avec bascules D et minuterie 555; la première partie du circuit la minuterie 555 : 3 étapes
Moteur pas à pas avec bascules D et minuterie 555; la première partie du circuit la minuterie 555 : Le moteur pas à pas est un moteur à courant continu qui se déplace par étapes discrètes. Il est souvent utilisé dans les imprimantes et même la robotique. Je vais expliquer ce circuit par étapes. La première partie du circuit est un 555 minuteur. C'est la première image (voir ci-dessus) avec une puce 555 avec
Indicateur de zone d'étude (ISC) : 8 étapes
Indicateur de zone d'étude (SAI) : vous voulez faciliter la recherche d'un lieu d'étude pendant la semaine des finales ? Envisagez de construire des indicateurs de zone d'étude ! Dans sa forme la plus simple, le système est un ensemble d'indicateurs de zone d'étude (SAI) connectés à une source d'alimentation principale qui indique la disponibilité de
Microcontrôleur AVR. LED clignotant à l'aide de la minuterie. Interruptions des minuteries. Mode CTC de la minuterie : 6 étapes
Microcontrôleur AVR. LED clignotant à l'aide de la minuterie. Interruptions des minuteries. Mode Timer CTC : Bonjour à tous ! Les minuteries sont un concept important dans le domaine de l'électronique. Chaque composant électronique fonctionne sur une base de temps. Cette base de temps permet de garder tout le travail synchronisé. Tous les microcontrôleurs fonctionnent à une fréquence d'horloge prédéfinie, le