Talaan ng mga Nilalaman:
- Hakbang 1: Video ng Pakikipag-ugnay
- Hakbang 2: Paglalahad ng Suliranin
- Hakbang 3: Pangkalahatang-ideya ng Paano Ito Gumagawa
- Hakbang 4: Listahan ng Mga Materyales at Mga Tool
- Hakbang 5: Simulang Bumuo Gamit ang Breadboard
- Hakbang 6: Pagsisimula ng Code
- Hakbang 7: Pagtatapos ng Mga Touch
Video: Timer ng Study Room: 7 Mga Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:13
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
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:
Monitor ng Room Room: 4 Mga Hakbang
Server Room Monitor: Ang isa sa mga problema ng isang silid ng server ay ang temperatura. Sa iba't ibang kagamitan na gumagawa ng init, mabilis itong tumataas. At kung nabigo ang aircon, mabilis nitong ititigil ang lahat. Upang mahulaan ang mga sitwasyong ito maaari kaming makakuha ng isa sa maraming mga kapaligiran
DIY LED Strip-Study Table Pag-iilaw: 6 Hakbang
DIY LED Strip-Study Table Illumination: Kamusta Mga Gumagawa, ito ang aking kauna-unahang itinuro na proyekto. Ang pangunahing ideya at inspirasyon sa likod ng paggawa ng proyektong ito ay upang gawin ang aking nakakainip at mapurol na mesa ng pag-aaral ng silid ng hostel sa isang ganap na nag-uudyok at naghihikayat na mesa. Pinagmulan ng InspirasyonMalakas na pagsasalita ko
Bed Room Lamp Ws2812: 6 Mga Hakbang (na may Mga Larawan)
Bed Room Lamp Ws2812: Kumusta kayo, nagpasya akong muling itaguyod ang mayroon nang lampara sa silid ng kama upang makontrol ito mula sa smartphone o anumang aparato sa browser at isama kaysa sa Apple Home. Ang mga target ay: 1. Gumamit ng WS2812b led strip upang makontrol ang liwanag, kulay o animasyon / effects2. Sa amin
Arduino Dust Study: 8 Hakbang
Pag-aaral ng Arduino Dust: Ano ang gusto na mabuhay sa Mars? Humihinga ba ang hangin? Ito ba ay ligtas? Gaano karaming alikabok ang mayroon? Gaano kadalas ang mga bagyo? Naisip mo ba ang sagot sa alinman sa mga katanungang ito?
AVR Microcontroller. Mga LED Flasher Gamit ang Timer. Nakagambala ang Mga timer. Timer CTC Mode: 6 na Hakbang
AVR Microcontroller. Mga LED Flasher Gamit ang Timer. Nakagambala ang Mga timer. Timer CTC Mode: Kamusta sa lahat! Ang timer ay isang mahalagang konsepto sa larangan ng electronics. Ang bawat elektronikong sangkap ay gumagana sa isang batayan sa oras. Nakakatulong ang base ng oras na ito upang mapanatili ang lahat ng trabaho na naka-synchronize. Ang lahat ng mga microcontroller ay gumagana sa ilang paunang natukoy na dalas ng orasan, ang