Talaan ng mga Nilalaman:

Timer ng Study Room: 7 Mga Hakbang
Timer ng Study Room: 7 Mga Hakbang

Video: Timer ng Study Room: 7 Mga Hakbang

Video: Timer ng Study Room: 7 Mga Hakbang
Video: HUWAG MO ITONG GAGAWIN SA ARAW NG BOARD EXAM PARA PUMASA KA ! BOARD EXAM DAY TIPS | SELF REVIEW 2024, Hulyo
Anonim
Pag-aaral ng Timer ng Silid
Pag-aaral ng Timer ng Silid
Study Room Timer
Study Room Timer
Pag-aaral ng Timer ng Silid
Pag-aaral ng Timer ng Silid

Mga tagubilin sa kung paano lumikha ng isang timer para sa isang silid ng pag-aaral.

Hakbang 1: Video ng Pakikipag-ugnay

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

Hakbang 2: Paglalahad ng Suliranin

Kadalasan, ang mga silid sa pag-aaral ay palaging kinukuha. Nangyayari ito dahil nais ng mga tao na manatili sa silid nang mas matagal kaysa sa kailangan nila. Dinisenyo namin ang isang timer na nagbibigay-daan sa bawat tao ng isang kabuuang 2 oras at mga taong naghihintay ng kakayahang humiling ng silid na maging susunod na pangkat. Ang paggamit ng RGB sa Neopixels ay magpapahayag ng dami ng natitirang oras.

Hakbang 3: Pangkalahatang-ideya ng Paano Ito Gumagawa

Ang timer ay binubuo ng mga bahagi na hiwa ng laser cutter, 3 mga pindutan, 1 LED, 1 potentiometer.

Ang Neopixels at potentiometer ay naka-wire sa NodeMCU. Ang NodeMCU ay naka-program upang muling mabuhay kung gaano kalayo ang potensyomiter ay nabago upang baguhin ang dami ng mga LED na naiilawan sa paikot na Neopixel strip. Ititigil ng pindutan ng Kahilingan ang pagpapaandar ng pagpapaandar ng Start, Stop, at Itakda ang oras. Ang kulay ng mga LED sa timer sa loob ng silid ay ang parehong kulay ng LED na naiilawan sa gilid ng kahon. Ang neopixel sa gilid ng kahon ay kumakatawan sa pagpapakita sa lobby ng gusali upang malaman kung aling silid ang kukunin at kung gaano karaming oras ang natitira. Ang 2 LED ay inireseta para sa bawat silid, ang isang LED ay kumakatawan kung ang silid ay kinuha at ang iba pang pinangunahan ay salamin ang kulay ng mga LED sa timer (ang berde ay mas maraming oras, pagkatapos ay dilaw, pagkatapos ay pula para sa mas kaunting oras).

Hakbang 4: Listahan ng Mga Materyales at Mga Tool

-Clear Acrylic

-MicroUSB Cable

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

-Breadboard

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

-Potentiometer

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

-3 mga pindutan

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

-NodeMCU

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

- 2 Neopixel Strips

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

-Mga Resistor

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

- Mga wire

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

-1 LED

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

-Mainit na glue GUN

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

-Malakas na Velcro Strips

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

Hakbang 5: Simulang Bumuo Gamit ang Breadboard

Simulang Bumuo Sa Breadboard
Simulang Bumuo Sa Breadboard

A0 hanggang gitnang pin sa Potentiometer

Vin to Power sa singsing ng Neopixel

3v3 sa isang bahagi ng Potentiometer

Lahat ng mga bakuran sa Ground sa NodeMCU

D1 sa Humiling ng Button

D2 sa Humiling ng LED

D3 upang Simulan ang Button

D4 upang Itigil ang Button

D5 na resistor sa Neopixel Input on ring

D6 upang labanan ang Neopixel Input strip

Hakbang 6: Pagsisimula ng Code

Ito ang code para matiyak na ang iyong proyekto ay gumagana hanggang ngayon. Ang timer ay dapat na isang segundo lamang bawat LED sa Neopixel Ring. Kapag alam mong gumagana ito hanggang sa puntong ito, ang kailangan mo lang gawin ay baguhin ang oras kung ang mga pahayag sa ibaba sa iyong tinukoy na saklaw. Ilalagay ko ang '#Change time' sa bawat oras kung ang mga pahayag na kailangan mong baguhin para sa iyong pag-aayos ng oras.

Sinusubukan ang Code:

import utime

oras ng pag-import

mula sa machine import ADC

import machine

i-import ang 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 = makina. Pin (4, makina. 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 (): # i-toggle ang 'pag-andar' na pag-andar ng LED

kung l1.value () == 0:

l1.value (1)

iba pa:

l1.value (0)

x = 0

b1temp1 = 0

b1temp2 = 0

t = 0

b2temp1 = 0

b2temp2 = 0

b3temp1 = 0

b3temp2 = 0

s = 0

habang Totoo:

# Ito ang pindutan na nagpapalipat-lipat sa 'hiling' na LED

b1temp2 = b1.value ()

kung b1temp1 at hindi b1temp2:

tglled ()

oras. tulog (0.05)

b1temp1 = b1temp2

# Ito ang grid

np2 [0] = np [11]

kung l1.value () == 1:

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

iba pa:

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

np2.write ()

# Dito natin pipiliin kung gaano karaming oras ang kailangan natin

kung t == 0:

para sa saklaw ko (-1, 12):

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

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

np = (0, 0, 0)

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

s = (i + 1)

iba pa:

np = (0, 0, 30)

np.write ()

iba pa:

np = (0, 0, 0)

np.write ()

# Ito ang pindutan upang simulan ang timer

kung (l1.value () == 0) at (t == 0):

b2temp2 = b2.value ()

kung b2temp1 at hindi b2temp2:

x + = 1

t + = (s * 100)

oras. tulog (0.05)

b2temp1 = b2temp2

# Ang pindutan na ito ay nagtatapos sa timer

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

b3temp2 = b3.value ()

kung b3temp1 at hindi b3temp2:

x = 0

t = 0

oras. tulog (0.05)

b3temp1 = b3temp2

# Ito ang timer

kung x> 0:

t + = 1

kung (t> 0) at (t <= 100): # Pagbabago ng oras

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

kung (t> 100) at (t <= 200): # Pagbabago ng oras

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

kung (t> 200) at (t <= 300): # Pagbabago ng oras

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

kung (t> 300) at (t <= 400): # Pagbabago ng oras

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

kung (t> 400) at (t <= 500): # Pagbabago ng oras

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

kung (t> 500) at (t <= 600): # Pagbabago ng oras

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

kung (t> 600) at (t <= 700): # Pagbabago ng oras

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

kung (t> 700) at (t <= 800): # Pagbabago ng oras

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

kung (t> 800) at (t <= 900): # Pagbabago ng oras

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

kung (t> 900) at (t <= 1000): # Pagbabago ng oras

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

kung (t> 1000) at (t <= 1100): # Pagbabago ng oras

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

kung (t> 1100) at (t <= 1200): # Pagbabago ng oras

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

kung t> = 1300: # Pagbabago ng oras

t = 0

x = 0

Hakbang 7: Pagtatapos ng Mga Touch

Ngayon, sa sandaling malayo ka na, dapat ay na-upload mo ang gumaganang code sa NodeMCU at lahat ng mga bahagi na na-wire sa breadboard. Kapag nasubukan mo na ang code at gupitin ang anumang mga piraso mo para sa panlabas, ibig sabihin, laser cut casing, maaari mo na ngayong maghinang ng mga wire sa NodeMCU. Ang paghihinang ay opsyonal ngunit maaaring gawin itong mas ligtas at mas maliit para sa iyong pambalot. Narito ang ilan sa mga bahagi ng laser cut na ginawa namin.

Inirerekumendang: