Isi kandungan:

Pemasa Bilik Belajar: 7 Langkah
Pemasa Bilik Belajar: 7 Langkah

Video: Pemasa Bilik Belajar: 7 Langkah

Video: Pemasa Bilik Belajar: 7 Langkah
Video: Insinyur wajib tau..!! Metode pemasangan bondek dan pembesian balok lantai untuk rumah tingkat ... 2024, Julai
Anonim
Pemasa Bilik Belajar
Pemasa Bilik Belajar
Pemasa Bilik Belajar
Pemasa Bilik Belajar
Pemasa Bilik Belajar
Pemasa Bilik Belajar

Petunjuk mengenai cara membuat pemasa untuk bilik belajar.

Langkah 1: Video Interaksi

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

Langkah 2: Penyataan Masalah

Selalunya, bilik belajar selalu diambil. Ini berlaku kerana orang suka tinggal di bilik lebih lama daripada yang mereka perlukan. Kami telah merancang pemasa yang membolehkan setiap orang berjumlah 2 jam dan orang yang menunggu kemampuan untuk meminta bilik menjadi kumpulan berikutnya. Penggunaan RGB pada Neopixels akan menyatakan jumlah masa yang tersisa.

Langkah 3: Gambaran Keseluruhan Cara Berfungsi

Pemasa terdiri daripada bahagian yang dipotong oleh pemotong laser, 3 butang, 1 LED, 1 potensiometer.

Neopixels dan potensiometer disambungkan ke NodeMCU. NodeMCU diprogramkan untuk mengatur kembali sejauh mana potensiometer dipusingkan untuk mengubah jumlah LED yang menyala pada jalur Neopixel bulat. Butang Permintaan menghentikan fungsi fungsi Mula, Berhenti, dan Tetapkan waktu. Warna LED pada pemasa di dalam bilik adalah warna yang sama dengan LED yang menyala di sisi kotak. Neopixel di sebelah kotak mewakili paparan di lobi bangunan untuk mengetahui ruangan mana yang diambil dan berapa banyak masa yang tersisa. 2 LED ditentukan untuk setiap bilik, satu LED menunjukkan jika ruangan diambil dan lampu LED lain mencerminkan warna LED pada pemasa (hijau lebih banyak masa, kemudian kuning, kemudian merah untuk waktu yang lebih sedikit).

Langkah 4: Senarai Bahan dan Alatan

-Akrilik Bersih

-Kabel MicroUSB

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

- Papan roti

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

-Potentiometer

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

-3 butang

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

-NodeMCU

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

- 2 Jalur Neopixel

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

-Penyokong

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

- Wayar

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

-1 LED

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

-Got Gun Lekap

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

- Jalur Velcro yang Lekas

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

Langkah 5: Mula Membangun Dengan Breadboard

Mula Membangun Dengan Papan Roti
Mula Membangun Dengan Papan Roti

Pin A0 hingga tengah pada Potensiometer

Vin to Power pada cincin Neopixel

3v3 ke satu sisi Potentiometer

Semua alasan untuk mendarat di NodeMCU

D1 untuk Meminta Butang

D2 untuk Meminta LED

D3 untuk Mula Butang

D4 untuk Menghentikan Butang

D5 ke perintang ke Input Neopixel pada cincin

D6 ke perintang ke jalur Input Neopixel

Langkah 6: Memulakan Kod

Ini adalah kod untuk memastikan projek anda berfungsi setakat ini. Pemasa hanya boleh beberapa saat setiap LED pada Neopixel Ring. Sebaik sahaja anda tahu ia berfungsi sehingga tahap ini, yang perlu anda lakukan adalah menukar masa jika pernyataan di bawah ke julat yang anda tentukan. Saya akan meletakkan '#Change time' pada setiap masa jika pernyataan yang anda perlu ubah untuk peruntukan masa anda.

Mencuba Kod:

import utime

masa import

dari mesin import ADC

mesin import

import neopixel

adc = ADC (0)

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

np = neopixel. NeoPixel (pin, 12)

pin2 = mesin. Pin (12, mesin. Pin. OUT)

np2 = neopixel. NeoPixel (pin2, 8)

l1 = mesin. Pin (4, mesin. Pin. OUT)

b1 = mesin. Pin (5, mesin. Pin. IN, mesin. Pin. PULL_UP)

b3 = mesin. Pin (2, mesin. Pin. IN, mesin. Pin. PULL_UP)

b2 = mesin. Pin (0, mesin. Pin. IN, mesin. Pin. PULL_UP)

nilai1 (0)

def tglled (): # toggle 'permintaan' fungsi LED

jika l1.value () == 0:

nilai1 (1)

lain:

nilai1 (0)

x = 0

b1temp1 = 0

b1temp2 = 0

t = 0

b2temp1 = 0

b2temp2 = 0

b3temp1 = 0

b3temp2 = 0

s = 0

Walaupun Betul:

# Ini adalah butang yang menukar LED 'permintaan'

b1temp2 = b1. nilai ()

jika b1temp1 dan bukan b1temp2:

tergelincir ()

masa. tidur (0.05)

b1temp1 = b1temp2

# Ini adalah grid

np2 [0] = np [11]

jika l1.value () == 1:

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

lain:

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

np2.write ()

# Di sinilah kita memilih berapa banyak masa yang kita perlukan

jika t == 0:

untuk i dalam jarak (-1, 12):

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

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

np = (0, 0, 0)

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

s = (i + 1)

lain:

np = (0, 0, 30)

np.write ()

lain:

np = (0, 0, 0)

np.write ()

# Ini adalah butang untuk memulakan pemasa

jika (l1.value () == 0) dan (t == 0):

b2temp2 = b2.nilai ()

jika b2temp1 dan bukan b2temp2:

x + = 1

t + = (s * 100)

masa. tidur (0.05)

b2temp1 = b2temp2

# Butang ini menamatkan pemasa

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

b3temp2 = b3. nilai ()

jika b3temp1 dan bukan b3temp2:

x = 0

t = 0

masa. tidur (0.05)

b3temp1 = b3temp2

# Ini adalah pemasa

jika x> 0:

t + = 1

jika (t> 0) dan (t <= 100): #Tukar masa

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

jika (t> 100) dan (t <= 200): #Tukar masa

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

jika (t> 200) dan (t <= 300): #Tukar masa

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

jika (t> 300) dan (t <= 400): #Tukar masa

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

jika (t> 400) dan (t <= 500): #Tukar masa

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

jika (t> 500) dan (t <= 600): #Tukar masa

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

jika (t> 600) dan (t <= 700): #Tukar masa

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

jika (t> 700) dan (t <= 800): #Tukar masa

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

jika (t> 800) dan (t <= 900): #Tukar masa

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

jika (t> 900) dan (t <= 1000): #Tukar masa

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

jika (t> 1000) dan (t <= 1100): #Tukar masa

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

jika (t> 1100) dan (t <= 1200): #Tukar masa

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

jika t> = 1300: #Tukar masa

t = 0

x = 0

Langkah 7: Menyentuh Sentuhan

Sekarang, setelah anda berada sejauh ini, anda harus memuat naik kod kerja ke NodeMCU dan semua bahagiannya disambungkan ke papan roti. Sebaik sahaja anda mencuba kod tersebut dan memotong kepingan yang anda ada untuk bahagian luar, iaitu selongsong potong laser, kini anda boleh menyisipkan wayar ke NodeMCU. Pematerian adalah pilihan tetapi mungkin menjadikannya lebih selamat dan lebih kecil untuk selongsong anda. Berikut adalah beberapa bahagian potongan laser yang kami buat.

Disyorkan: