สารบัญ:

Study Room Timer: 7 ขั้นตอน
Study Room Timer: 7 ขั้นตอน

วีดีโอ: Study Room Timer: 7 ขั้นตอน

วีดีโอ: Study Room Timer: 7 ขั้นตอน
วีดีโอ: skibidi toilet พากย์ไทย เบื้องหลังการถ่ายทำ clock Man Ep 13 ( 1-2 ) 2024, พฤศจิกายน
Anonim
ตัวจับเวลาห้องทำงาน
ตัวจับเวลาห้องทำงาน
ตัวจับเวลาห้องทำงาน
ตัวจับเวลาห้องทำงาน
ตัวจับเวลาห้องทำงาน
ตัวจับเวลาห้องทำงาน

คำแนะนำในการสร้างนาฬิกาจับเวลาสำหรับห้องอ่านหนังสือ

ขั้นตอนที่ 1: วิดีโอโต้ตอบ

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

ขั้นตอนที่ 2: คำชี้แจงปัญหา

ส่วนใหญ่แล้ว ห้องอ่านหนังสือมักจะถูกยึดไว้เสมอ สิ่งนี้เกิดขึ้นเพราะคนชอบอยู่ในห้องนานเกินความจำเป็น เราได้ออกแบบตัวจับเวลาที่ช่วยให้แต่ละคนมีเวลารวม 2 ชั่วโมงและคนที่รอความสามารถในการขอห้องเป็นกลุ่มต่อไปได้ การใช้ RGB บน Neopixels จะแสดงจำนวนเวลาที่เหลือ

ขั้นตอนที่ 3: ภาพรวมวิธีการทำงาน

ตัวจับเวลาประกอบด้วยชิ้นส่วนที่ตัดด้วยเครื่องตัดเลเซอร์, ปุ่ม 3 ปุ่ม, ไฟ LED 1 ดวง, โพเทนชิออมิเตอร์ 1 อัน

Neopixels และโพเทนชิออมิเตอร์เชื่อมต่อกับ NodeMCU NodeMCU ได้รับการตั้งโปรแกรมให้ปรับระยะโพเทนชิออมิเตอร์ที่หมุนใหม่เพื่อเปลี่ยนปริมาณของ LED ที่ติดสว่างบนแถบนีโอพิกเซลแบบวงกลม ปุ่มขอหยุดการทำงานของฟังก์ชัน Start, Stop และ Set time สีของ LED บนตัวจับเวลาภายในห้องเป็นสีเดียวกับ LED ที่ติดสว่างที่ด้านข้างของกล่อง นีโอพิกเซลที่ด้านข้างกล่องแสดงถึงการแสดงผลในล็อบบี้ของอาคารเพื่อให้ทราบว่ามีคนไปห้องไหนและเหลือเวลาอีกเท่าใด แต่ละห้องมีไฟ LED กำหนดไว้ 2 ดวง ไฟ LED ดวงหนึ่งแสดงว่ามีคนถ่ายในห้องหรือไม่ และไฟ LED อีกดวงจะสะท้อนสีของ LED บนตัวจับเวลา (สีเขียวเป็นเวลามากกว่า สีเหลือง และสีแดงในเวลาที่น้อยลง)

ขั้นตอนที่ 4: รายการวัสดุและเครื่องมือ

-อะคริลิคใส

- สายไมโครยูเอสบี

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

-เขียงหั่นขนม

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

-โพเทนชิออมิเตอร์

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

-3 ปุ่ม

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

-NodeMCU

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

- แถบนีโอพิกเซล 2 แถบ

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

-ตัวต้านทาน

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

- สายไฟ

www.digigiy.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 เปิดเครื่องบนวงแหวน Neopixel

3v3 ไปด้านหนึ่งของโพเทนชิออมิเตอร์

กราวด์ทั้งหมดบน NodeMCU

D1 เพื่อขอปุ่ม

D2 เพื่อขอ LED

D3 เพื่อเริ่มปุ่ม

D4 เพื่อหยุดปุ่ม

D5 เพื่อต้านทานต่ออินพุต Neopixel บนวงแหวน

D6 ถึงตัวต้านทานต่อแถบอินพุต Neopixel

ขั้นตอนที่ 6: การเริ่มรหัส

นี่คือรหัสเพื่อให้แน่ใจว่าโปรเจ็กต์ของคุณใช้งานได้จนถึงตอนนี้ ตัวจับเวลาควรใช้เวลาเพียงไม่กี่วินาทีต่อ LED บนวงแหวน Neopixel เมื่อคุณรู้ว่ามันทำงานจนถึงจุดนี้ สิ่งที่คุณต้องทำคือเปลี่ยนเวลาหากข้อความด้านล่างเป็นช่วงที่คุณระบุ ฉันจะใส่ '#Change time' ในแต่ละครั้งหากข้อความที่คุณต้องการเปลี่ยนสำหรับการจัดสรรเวลาของคุณ

ลองใช้รหัส:

นำเข้ายูทิลิตี้

เวลานำเข้า

จากการนำเข้าเครื่อง ADC

เครื่องนำเข้า

นำเข้า neopixel

เอดีซี = เอดีซี(0)

พิน = 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

เสื้อ = 0

b2temp1 = 0

b2temp2 = 0

b3temp1 = 0

b3temp2 = 0

s = 0

ในขณะที่จริง:

# นี่คือปุ่มที่สลับ 'คำขอ' LED

b1temp2 = b1.value()

ถ้า b1temp1 และไม่ใช่ b1temp2:

tglled()

เวลานอน (0.05)

b1temp1 = b1temp2

#นี่คือตาราง

np2[0] = np[11]

ถ้า l1.value() == 1:

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

อื่น:

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

np2.write()

#นี่คือที่ที่เราเลือกเวลาที่ต้องการ

ถ้าเสื้อ == 0:

สำหรับฉันอยู่ในช่วง (-1, 12):

ถ้า (l1.value() == 0):

ถ้า (adc.read() >= (85.34 * (i+1))):

np = (0, 0, 0)

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

s = (ผม + 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

เสื้อ += (s * 100)

เวลานอน (0.05)

b2temp1 = b2temp2

# ปุ่มนี้สิ้นสุดตัวจับเวลา

ถ้า (l1.value() == 0):

b3temp2 = b3.value()

ถ้า b3temp1 และไม่ใช่ b3temp2:

x = 0

เสื้อ = 0

เวลานอน (0.05)

b3temp1 = b3temp2

#นี่คือตัวจับเวลา

ถ้า x > 0:

เสื้อ += 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: #เปลี่ยนเวลา

เสื้อ = 0

x = 0

ขั้นตอนที่ 7: เสร็จสิ้นการสัมผัส

เมื่อคุณมาไกลถึงขนาดนี้แล้ว คุณควรอัปโหลดรหัสการทำงานไปที่ NodeMCU และทุกชิ้นส่วนเชื่อมต่อกับเขียงหั่นขนม เมื่อคุณได้ลองใช้โค้ดและตัดชิ้นส่วนใดๆ ที่คุณมีสำหรับภายนอก เช่น ปลอกตัดด้วยเลเซอร์ ตอนนี้คุณสามารถบัดกรีสายไฟเข้ากับ NodeMCU ได้แล้ว การบัดกรีเป็นทางเลือก แต่อาจทำให้ปลอกของคุณปลอดภัยและเล็กลง นี่คือบางส่วนของชิ้นส่วนตัดด้วยเลเซอร์ที่เราผลิตขึ้น

แนะนำ: