Inhaltsverzeichnis:
- Schritt 1: Interaktionsvideo
- Schritt 2: Problembeschreibung
- Schritt 3: Überblick über die Funktionsweise
- Schritt 4: Liste der Materialien und Werkzeuge
- Schritt 5: Beginnen Sie mit dem Bauen mit dem Steckbrett
- Schritt 6: Starten des Codes
- Schritt 7: Feinschliff
Video: Timer für das Arbeitszimmer - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:19
Anleitung zum Erstellen eines Timers für ein Arbeitszimmer.
Schritt 1: Interaktionsvideo
drive.google.com/file/d/12z5zQR52AXILX2AGb3EplfbmZWANZiCl/view?usp=drivesdk
Schritt 2: Problembeschreibung
Studienräume sind meistens immer belegt. Dies geschieht, weil die Leute gerne viel länger im Raum bleiben, als sie brauchen. Wir haben einen Timer entwickelt, der es jeder Person erlaubt, insgesamt 2 Stunden zu verbringen, und die wartenden Personen die Möglichkeit, den Raum als nächste Gruppe anzufordern. Die Verwendung von RGB auf Neopixels drückt die verbleibende Zeit aus.
Schritt 3: Überblick über die Funktionsweise
Der Timer besteht aus Teilen, die mit dem Laserschneider geschnitten wurden, 3 Tasten, 1 LED, 1 Potentiometer.
Die Neopixel und das Potentiometer sind mit der NodeMCU verdrahtet. Die NodeMCU ist so programmiert, dass sie regonisiert, wie weit das Potentiometer gedreht wird, um die Anzahl der LEDs zu ändern, die auf dem kreisförmigen Neopixel-Streifen leuchten. Die Schaltfläche Request stoppt die Funktion der Funktion Start, Stop und Set time. Die Farbe der LEDs an der Zeitschaltuhr im Raum entspricht der Farbe der LED an der Seite der Box. Das Neopixel an der Seite der Box stellt die Anzeige in der Lobby des Gebäudes dar, um zu wissen, welcher Raum belegt ist und wie viel Zeit noch übrig ist. Für jeden Raum sind 2 LEDs vorgeschrieben, eine LED zeigt an, ob der Raum belegt ist und die andere LED spiegelt die Farbe der LEDs des Timers (grün ist mehr Zeit, dann gelb, dann rot für weniger Zeit).
Schritt 4: Liste der Materialien und Werkzeuge
-Klares Acryl
-MicroUSB-Kabel
www.digikey.com/product-detail/de/stewart-…
-Breadboard
www.amazon.com/gp/product/B01EV6LJ7G/ref=o…
-Potentiometer
www.alliedelec.com/honeywell-380c32500/701…
-3 Tasten
www.digikey.com/product-detail/de/te-conne…
-KnotenMCU
www.amazon.com/gp/product/B07CB4P2XY/ref=o…
- 2 Neopixel-Streifen
www.amazon.com/Lighting-Modules-NeoPixel-W…
-Widerstände
www.digikey.com/product-detail/de/te-conne…
- Drähte
www.digikey.com/product-detail/de/sparkfun…
-1 LED
www.mouser.com/ProductDetail/Cree-Inc/C512…
-Heißklebepistole
www.walmart.com/ip/AdTech-Hi-Temp-Mini-Hot…
-Klebbare Klettstreifen
www.amazon.com/VELCRO-Brand-90076-Fastener…
Schritt 5: Beginnen Sie mit dem Bauen mit dem Steckbrett
A0 zum mittleren Pin am Potentiometer
Vin to Power auf Neopixel-Ring
3v3 auf einer Seite des Potentiometers
Alle Gründe zu Ground on NodeMCU
D1 zur Anforderungstaste
D2 zur Anforderungs-LED
D3 zum Startknopf
D4 zum Stopp-Knopf
D5 zum Widerstand zum Neopixel-Eingang am Ring
D6 zum Widerstand zum Neopixel-Eingangsstreifen
Schritt 6: Starten des Codes
Dies ist der Code, um sicherzustellen, dass Ihr Projekt bisher funktioniert. Der Timer sollte nur ein paar Sekunden pro LED auf dem Neopixel-Ring betragen. Sobald Sie wissen, dass es bis zu diesem Punkt funktioniert, müssen Sie nur noch die Zeit-if-Anweisungen unten auf Ihren angegebenen Bereich ändern. Ich werde '#Zeit ändern' auf jede der Zeitangaben setzen, die Sie für Ihr Zeitkontingent ändern müssen.
Code ausprobieren:
utime importieren
Importzeit
aus Maschinenimport ADC
Importmaschine
Neopixel importieren
ADC = ADC(0)
Pin = Maschine. Pin(14, Maschine. Pin. OUT)
np = neopixel. NeoPixel(pin, 12)
Pin2 = Maschine. Pin(12, Maschine. Pin. OUT)
np2 = neopixel. NeoPixel(pin2, 8)
l1 = Maschine. Pin(4, Maschine. Pin. OUT)
b1 = Maschine. Pin(5, Maschine. Pin. IN, Maschine. Pin. PULL_UP)
b3 = Maschine. Pin(2, Maschine. Pin. IN, Maschine. Pin. PULL_UP)
b2 = Maschine. Pin(0, Maschine. Pin. IN, Maschine. Pin. PULL_UP)
l1. Wert(0)
def tglled(): # Toggle 'request' LED-Funktion
if l1.value() == 0:
l1. Wert(1)
anders:
l1. Wert(0)
x = 0
b1temp1 = 0
b1temp2 = 0
t = 0
b2temp1 = 0
b2temp2 = 0
b3temp1 = 0
b3temp2 = 0
s = 0
während Wahr:
# Dies ist die Taste, die die 'Anfrage'-LED umschaltet
b1temp2 = b1.value()
wenn b1temp1 und nicht b1temp2:
tglled()
time.sleep(0.05)
b1temp1 = b1temp2
# Das ist das Gitter
np2[0] = np[11]
if l1.value() == 1:
np2[1] = (30, 0, 0)
anders:
np2[1] = (0, 0, 30)
np2.write()
# Hier wählen wir aus, wie viel Zeit wir brauchen
wenn t == 0:
für i im Bereich (-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)
anders:
np = (0, 0, 30)
np.write()
anders:
np = (0, 0, 0)
np.write()
# Dies ist die Schaltfläche zum Starten des Timers
if (l1.value() == 0) und (t == 0):
b2temp2 = b2.value()
wenn b2temp1 und nicht b2temp2:
x += 1
t += (s * 100)
time.sleep(0.05)
b2temp1 = b2temp2
# Diese Schaltfläche beendet den Timer
if (l1.value() == 0):
b3temp2 = b3.value()
wenn b3temp1 und nicht b3temp2:
x = 0
t = 0
time.sleep(0.05)
b3temp1 = b3temp2
# Das ist der Timer
wenn x > 0:
t += 1
if (t > 0) und (t <= 100): #Zeit ändern
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) und (t <= 200): #Zeit ändern
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) und (t <= 300): #Zeit ändern
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) und (t <= 400): #Zeit ändern
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) und (t <= 500): #Zeit ändern
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) und (t <= 600): #Zeit ändern
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) und (t <= 700): #Zeit ändern
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) und (t <= 800): #Zeit ändern
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) und (t <= 900): #Zeit ändern
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) und (t <= 1000): #Zeit ändern
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) und (t <= 1100): #Zeit ändern
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) und (t <= 1200): #Zeit ändern
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()
wenn t >= 1300: #Zeit ändern
t = 0
x = 0
Schritt 7: Feinschliff
Sobald Sie so weit sind, sollten Sie den Arbeitscode auf die NodeMCU hochgeladen und alle Teile mit dem Steckbrett verdrahtet haben. Nachdem Sie den Code ausprobiert und alle Teile, die Sie für das Äußere haben, z. B. das lasergeschnittene Gehäuse, geschnitten haben, können Sie nun die Drähte an die NodeMCU löten. Das Löten ist optional, kann es aber für Ihr Gehäuse sicherer und kleiner machen. Hier sind einige der lasergeschnittenen Teile, die wir hergestellt haben.
Empfohlen:
Wie man eine professionelle Leiterplatte herstellt (ist es das wert?): 5 Schritte
Wie man eine professionelle Leiterplatte herstellt (ist es das wert?): Ich möchte meine "PCB-Erfahrungen" mit dir
Arduino-Programmierung über das Handy -- Arduinodroid -- Arduino-Ide für Android -- Blinzeln: 4 Schritte
Arduino-Programmierung über das Handy || Arduinodroid || Arduino-Ide für Android || Blink: Bitte abonnieren Sie meinen Youtube-Kanal für weitere Videos…… Arduino ist ein Board, das direkt über USB programmiert werden kann. Es ist sehr einfach und günstig für College- und Schulprojekte oder sogar für Produktprototypen. Viele Produkte bauen zunächst darauf für i
IMovie für das Klassenzimmer: 4 Schritte
IMovie für das Klassenzimmer: In dieser Anleitung erfahren Sie, wie Sie Ihr eigenes iMovie planen, erstellen und bearbeiten, um bei dieser lästigen Videoaufgabe ein A zu bekommen. Um einen iMovie zu erstellen, benötigen Sie diese Materialien: einen Mac-Computer, die iMovie-Anwendung
Wir stellen vor: 'Deodorino' - das Infrarot-gesteuerte Arduino in einem leeren Deodorant-Stick. Klicken Sie auf das 1. Foto: 7 Schritte
Wir stellen vor: 'Deodorino' - das Infrarot-gesteuerte Arduino in einem leeren Deodorant-Stick. Klicken Sie auf das 1. Foto: Jetzt zum Detail
Das Optimierungshandbuch für Windows XP: 7 Schritte
Der Leitfaden zur Optimierung von Windows XP: Der vollständige Leitfaden zur Optimierung von Windows XP. Diese Anleitung hält Ihren Computer reaktionsschnell und bissig