תוכן עניינים:

טיימר חדר לימוד: 7 שלבים
טיימר חדר לימוד: 7 שלבים

וִידֵאוֹ: טיימר חדר לימוד: 7 שלבים

וִידֵאוֹ: טיימר חדר לימוד: 7 שלבים
וִידֵאוֹ: ✔ האם אתה מטומטם? במבחן הזה תגלה ! ( רק 12% מצליחים ) 2024, יולי
Anonim
טיימר לחדר לימוד
טיימר לחדר לימוד
טיימר לחדר לימוד
טיימר לחדר לימוד
טיימר חדר לימוד
טיימר חדר לימוד

הוראות כיצד ליצור טיימר לחדר עבודה.

שלב 1: סרטון אינטראקציה

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

שלב 2: הצהרת בעיות

לרוב, חדרי לימוד תמיד נלקחים. זה קורה כי אנשים אוהבים להישאר בחדר הרבה יותר ממה שהם צריכים. עיצבנו טיימר המאפשר לכל אדם בסך הכל שעתיים ואנשים שמחכים ליכולת לבקש מהחדר להיות הקבוצה הבאה. השימוש ב- RGB ב- Neopixels יבטא את משך הזמן שנותר.

שלב 3: סקירה כללית של אופן הפעולה

הטיימר מורכב מחלקים שנחתכו על ידי חותך הלייזר, 3 כפתורים, 1 LED, פוטנציומטר אחד.

ה- Neopixels והפוטנציומטר מחוברים ל- NodeMCU. ה- NodeMCU מתוכנת לתאר מחדש את המרחק של הפוטנציומטר כדי לשנות את כמות נוריות ה- LED המוארות ברצועת ה- Neopixel העגולה. הלחצן בקשה מפסיק את הפונקציה של הפונקציה התחלה, עצירה והגדרת זמן. צבע הלדים על הטיימר בתוך החדר הוא באותו צבע של הנורית המוארת בצד הקופסה. ה- neopixel בצד הקופסה מייצג את התצוגה בלובי הבניין כדי לדעת איזה חדר נלקח וכמה זמן נותר. לכל חדר נקבעו 2 נוריות LED, נורית LED אחת מייצגת אם החדר נלקח וה LED השני משקף את צבע הנורות על הטיימר (ירוק הוא יותר זמן, אחר כך צהוב ואז אדום בפחות זמן).

שלב 4: רשימת חומרים וכלים

-אקריליק נקי

-כבל MicroUSB

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

-קרש

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

-פוטנציומטר

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

-3 כפתורים

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

-NodeMCU

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

- 2 רצועות Neopixel

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

-מתנגדים

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

- חוטים

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

-1 LED

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

-אקדח דבק חם

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

רצועות סקוטש מקומקות

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

שלב 5: התחל לבנות עם לוח הלחם

התחל לבנות עם לוח הלחם
התחל לבנות עם לוח הלחם

A0 לסיכה האמצעית על הפוטנציומטר

טבעת Vin to Power on Neopixel

3v3 לצד אחד של הפוטנציומטר

כל העילה לקרקע ב- NodeMCU

לחצן בקשה D1

D2 לבקשת LED

D3 לחצן ההתחלה

D4 ללחצן עצירה

D5 לנגד לכניסת Neopixel על הטבעת

D6 לנגד לרצועת קלט Neopixel

שלב 6: הפעלת הקוד

זהו הקוד לוודא שהפרויקט שלך עובד עד כה. הטיימר צריך להיות רק כמה שניות לכל נורית על טבעת Neopixel. ברגע שאתה יודע שזה עובד עד לנקודה זו, כל שעליך לעשות הוא לשנות את הזמן אם הצהרות למטה לטווח שצוין. אשים '#שנה זמן' על כל פעם אם אמירות שעליך לשנות לצורך הקצאת הזמן שלך.

מנסה את הקוד:

זמן ייבוא

זמן יבוא

מ ADC יבוא מכונה

מכונת יבוא

ייבא neopixel

adc = ADC (0)

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

np = neopixel. NeoPixel (סיכה, 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.value (0)

def tglled (): # החלפת פונקציית LED 'בקשה'

אם l1.value () == 0:

l1.value (1)

אַחֵר:

ערך l1.value (0)

x = 0

b1temp1 = 0

b1temp2 = 0

t = 0

b2temp1 = 0

b2temp2 = 0

b3temp1 = 0

b3temp2 = 0

s = 0

בעוד שזה נכון:

# זהו הכפתור המחליף את נורית ה'בקשה '

b1temp2 = b1.value ()

אם b1temp1 ולא b1temp2:

tglled ()

time.sleep (0.05)

b1temp1 = b1temp2

# זהו הרשת

np2 [0] = np [11]

אם l1.value () == 1:

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

אַחֵר:

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

np2.write ()

# כאן אנו בוחרים כמה זמן אנו זקוקים

אם t == 0:

עבור i בטווח (-1, 12):

אם (l1.value () == 0):

אם (adc.read ()> = (85.34 * (i+1))):

np = (0, 0, 0)

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

s = (i + 1)

אַחֵר:

np = (0, 0, 30)

np.write ()

אַחֵר:

np = (0, 0, 0)

np.write ()

# זהו הכפתור להפעלת הטיימר

אם (l1.value () == 0) ו- (t == 0):

b2temp2 = b2.value ()

אם b2temp1 ולא b2temp2:

x += 1

t += (s * 100)

time.sleep (0.05)

b2temp1 = b2temp2

# לחצן זה מסיים את הטיימר

אם (l1.value () == 0):

b3temp2 = b3.value ()

אם b3temp1 ולא b3temp2:

x = 0

t = 0

time.sleep (0.05)

b3temp1 = b3temp2

# זהו הטיימר

אם x> 0:

t += 1

אם (t> 0) ו- (t <= 100): #שנה זמן

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

אם (t> 100) ו- (t <= 200): #שנה זמן

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

אם (t> 200) ו- (t <= 300): #שנה זמן

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

אם (t> 300) ו- (t <= 400): #שנה זמן

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

אם (t> 400) ו- (t <= 500): #שנה זמן

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

אם (t> 500) ו- (t <= 600): #שנה זמן

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

אם (t> 600) ו- (t <= 700): #שנה זמן

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

אם (t> 700) ו- (t <= 800): #שנה זמן

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

אם (t> 800) ו- (t <= 900): #שנה זמן

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

אם (t> 900) ו- (t <= 1000): #שנה זמן

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

אם (t> 1000) ו- (t <= 1100): #שנה זמן

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

אם (t> 1100) ו- (t <= 1200): #שנה זמן

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

אם t> = 1300: #שנה זמן

t = 0

x = 0

שלב 7: גימור נגיעות

עכשיו, ברגע שאתה עד כאן, עליך להעלות את קוד העבודה ל- NodeMCU ואת כל החלקים מחוברים ללוח הלחם. לאחר שניסית את הקוד וחתך את כל החלקים שיש לך כלפי חוץ, כלומר מעטפת בחיתוך לייזר, כעת תוכל להלחם את החוטים ל- NodeMCU. ההלחמה היא אופציונלית אך עשויה להפוך אותה לאבטחה וקטנה יותר למעטפת שלך. להלן חלק מהחלקים לחיתוך הלייזר שיצרנו.

מוּמלָץ: