Mục lục:

Hẹn giờ trong phòng học: 7 bước
Hẹn giờ trong phòng học: 7 bước

Video: Hẹn giờ trong phòng học: 7 bước

Video: Hẹn giờ trong phòng học: 7 bước
Video: Những Khung Giờ Học Siêu Hiệu Quả 2024, Tháng bảy
Anonim
Hẹn giờ trong phòng học
Hẹn giờ trong phòng học
Hẹn giờ trong phòng học
Hẹn giờ trong phòng học
Hẹn giờ trong phòng học
Hẹn giờ trong phòng học

Hướng dẫn cách tạo hẹn giờ cho phòng học.

Bước 1: Video tương tác

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

Bước 2: Tuyên bố vấn đề

Hầu hết thời gian, các phòng học luôn được thực hiện. Điều này xảy ra bởi vì mọi người thích ở trong phòng lâu hơn nhiều so với nhu cầu của họ. Chúng tôi đã thiết kế một bộ đếm thời gian cho phép mỗi người có tổng cộng 2 giờ và những người đang chờ có khả năng yêu cầu xếp phòng cho nhóm tiếp theo. Việc sử dụng RGB trên Neopixels sẽ thể hiện lượng thời gian còn lại.

Bước 3: Tổng quan về cách thức hoạt động

Bộ đếm thời gian gồm các bộ phận được cắt bằng máy cắt laze, 3 nút bấm, 1 đèn LED, 1 chiết áp.

Neopixel và chiết áp được nối với NodeMCU. NodeMCU được lập trình để điều chỉnh lại mức độ xoay của chiết áp để thay đổi lượng đèn LED sáng trên dải Neopixel hình tròn. Nút Yêu cầu dừng chức năng của chức năng Bắt đầu, Dừng và Đặt thời gian. Màu của đèn LED trên đồng hồ hẹn giờ trong phòng giống với màu của đèn LED chiếu sáng ở mặt bên của hộp. Neopixel ở mặt bên của hộp tượng trưng cho màn hình hiển thị ở sảnh của tòa nhà để biết phòng nào được lấy và còn lại bao nhiêu thời gian. 2 đèn LED được quy định cho mỗi phòng, một đèn LED biểu thị nếu phòng được lấy và đèn LED còn lại phản chiếu màu của đèn LED trên bộ hẹn giờ (màu xanh lá cây là nhiều thời gian hơn, sau đó màu vàng, sau đó màu đỏ cho ít thời gian hơn).

Bước 4: Danh sách vật liệu và công cụ

- Acrylic rõ ràng

-Cáp MicroUSB

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

-Breadboard

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

-Chiết áp

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

-3 nút

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

-NodeMCU

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

- 2 dải Neopixel

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

-Resistors

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

- Dây điện

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

-1 đèn LED

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

- Súng bắn keo

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

-Dải Velcro dính

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

Bước 5: Bắt đầu xây dựng với Breadboard

Bắt đầu xây dựng với Breadboard
Bắt đầu xây dựng với Breadboard

A0 đến chân giữa trên Potentiometer

Vin để Power on Neopixel ring

3v3 với một bên của Potentiometer

Tất cả các cơ sở để tiếp đất trên NodeMCU

Nút D1 đến Yêu cầu

D2 để yêu cầu đèn LED

D3 đến nút Bắt đầu

D4 đến nút dừng

D5 đến điện trở với Đầu vào Neopixel trên vòng

D6 đến điện trở với dải đầu vào Neopixel

Bước 6: Bắt đầu mã

Đây là mã để đảm bảo dự án của bạn đang hoạt động cho đến nay. Bộ hẹn giờ chỉ nên vài giây cho mỗi đèn LED trên Neopixel Ring. Khi bạn biết nó đang hoạt động cho đến thời điểm này, tất cả những gì bạn cần làm là thay đổi thời gian nếu các câu lệnh bên dưới thành phạm vi được chỉ định của bạn. Tôi sẽ đặt '#Change time' vào mỗi thời điểm nếu các tuyên bố mà bạn cần thay đổi cho phân bổ thời gian của mình.

Đang thử mã:

nhập khẩu utime

thời gian nhập khẩu

từ ADC nhập máy

máy nhập khẩu

nhập khẩu neopixel

adc = ADC (0)

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

np = neopixel. NeoPixel (pin, 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. giá trị (0)

def tglled (): # chức năng đèn LED chuyển đổi 'yêu cầu'

nếu l1.value () == 0:

l1. giá trị (1)

khác:

l1. giá trị (0)

x = 0

b1temp1 = 0

b1temp2 = 0

t = 0

b2temp1 = 0

b2temp2 = 0

b3temp1 = 0

b3temp2 = 0

s = 0

trong khi Đúng:

# Đây là nút bật tắt đèn LED 'yêu cầu'

b1temp2 = b1.value ()

nếu b1temp1 chứ không phải b1temp2:

tglled ()

time.sleep (0,05)

b1temp1 = b1temp2

# Đây là lưới

np2 [0] = np [11]

nếu l1.value () == 1:

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

khác:

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

np2.write ()

# Đây là nơi chúng tôi chọn lượng thời gian chúng tôi cần

nếu t == 0:

cho tôi trong phạm vi (-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)

khác:

np = (0, 0, 30)

np.write ()

khác:

np = (0, 0, 0)

np.write ()

# Đây là nút để bắt đầu hẹn giờ

if (l1.value () == 0) và (t == 0):

b2temp2 = b2.value ()

nếu b2temp1 và không phải b2temp2:

x + = 1

t + = (s * 100)

time.sleep (0,05)

b2temp1 = b2temp2

# Nút này kết thúc bộ hẹn giờ

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

b3temp2 = b3.value ()

nếu b3temp1 và không phải b3temp2:

x = 0

t = 0

time.sleep (0,05)

b3temp1 = b3temp2

# Đây là bộ đếm thời gian

nếu x> 0:

t + = 1

if (t> 0) and (t <= 100): # Thay đổi thời gian

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) and (t <= 200): # Thay đổi thời gian

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) and (t <= 300): # Thay đổi thời gian

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) and (t <= 400): # Thay đổi thời gian

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) và (t <= 500): # Thay đổi thời gian

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) and (t <= 600): # Thay đổi thời gian

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) và (t <= 700): # Thay đổi thời gian

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) và (t <= 800): # Thay đổi thời gian

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) và (t <= 900): # Thay đổi thời gian

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) và (t <= 1000): # Thay đổi thời gian

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) và (t <= 1100): # Thay đổi thời gian

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) và (t <= 1200): # Thay đổi thời gian

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

nếu t> = 1300: # Thay đổi thời gian

t = 0

x = 0

Bước 7: Hoàn thiện các lần chạm

Bây giờ, khi bạn đã đến đây, bạn sẽ có mã làm việc được tải lên NodeMCU và tất cả các bộ phận được kết nối với breadboard. Sau khi bạn đã thử mã và cắt bất kỳ phần nào bạn có cho bên ngoài, tức là vỏ cắt bằng laser, bây giờ bạn có thể hàn dây với NodeMCU. Việc hàn là tùy chọn nhưng có thể làm cho nó an toàn hơn và nhỏ hơn cho vỏ của bạn. Dưới đây là một số bộ phận cắt bằng laser mà chúng tôi đã thực hiện.

Đề xuất: