Mündəricat:

İş otağı sayğacı: 7 addım
İş otağı sayğacı: 7 addım

Video: İş otağı sayğacı: 7 addım

Video: İş otağı sayğacı: 7 addım
Video: Kim nə başa düşdü ❓ 2024, Iyul
Anonim
İş otağı sayğacı
İş otağı sayğacı
İş otağı sayğacı
İş otağı sayğacı
İş otağı sayğacı
İş otağı sayğacı

Bir iş otağı üçün bir taymer yaratmaq üçün təlimatlar.

Addım 1: Qarşılıqlı Video

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

Addım 2: Problem Bildirimi

Çox vaxt iş otaqları həmişə alınır. Bu, insanların ehtiyac duyduqlarından daha uzun müddət otaqda qalmağı sevdikləri üçün baş verir. Hər bir insana cəmi 2 saat və otaqdan növbəti qrup olmaq istəyini gözləyən insanlara imkan verən bir taymer hazırladıq. Neopikseldə RGB istifadəsi qalan vaxtın miqdarını ifadə edəcək.

Addım 3: Bunun necə işlədiyinə ümumi baxış

Taymer lazer kəsici ilə kəsilmiş hissələrdən, 3 düymədən, 1 LEDdən, 1 potansiyometrdən ibarətdir.

Neopixels və potensiometr NodeMCU -ya bağlanır. NodeMCU, dairəvi Neopixel şeridində yanan LED -lərin miqdarını dəyişdirmək üçün potensiometrin nə qədər döndüyünü yenidən tənzimləmək üçün proqramlaşdırılmışdır. İstək düyməsi Başlat, Durdur və Vaxtı təyin et funksiyasını dayandırır. Otaqdakı taymerdəki LED -lərin rəngi, qutunun yan tərəfində yanan LED -lərin rəngidir. Qutunun yan tərəfindəki neopiksel, hansı otağın alındığını və nə qədər vaxt qaldığını bilmək üçün binanın foyesindəki ekranı təmsil edir. Hər bir otaq üçün 2 LED təyin olunur, bir LED otaq alındıqda, digər LED isə LED -lərin rəngini timerdə əks etdirir (yaşıl daha çox vaxt, sonra sarı, sonra qırmızı daha az vaxt).

Addım 4: Materialların və Alətlərin siyahısı

-Təmiz akril

-MicroUSB Kabel

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

-Çörək lövhəsi

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

-Potansiyometr

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

-3 düymə

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

-NodeMCU

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

- 2 Neopixel Şeridi

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

-Rezistorlar

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

- Tellər

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

-1 LED

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

-İsti Yapışqan Tabancası

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

-Yapışqan cırtdan zolaqlar

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

Addım 5: Breadboard ilə qurmağa başlayın

Breadboard ilə tikintiyə başlayın
Breadboard ilə tikintiyə başlayın

A0 - Potensiometrdəki orta pin

Vin to Neopixel üzük açır

Potensiometrin bir tərəfinə 3v3

NodeMCU -da Zəmin üçün bütün əsaslar

D1 düyməsini tələb edin

LED tələb etmək üçün D2

Başlat Düyməsinə D3

D4 düyməsini dayandırın

Üzükdəki Neopixel Girişinə D5 rezistoru

D6 Neopixel Giriş zolağına müqavimət göstərir

Addım 6: Kodun işə salınması

Bu, layihənizin indiyə qədər işlədiyinə əmin olmaq üçün koddur. Taymer Neopixel Halqasındakı LED başına cəmi bir neçə saniyə olmalıdır. Bu nöqtəyə qədər işlədiyini bildikdən sonra, aşağıda göstərilən ifadələrin göstərilən aralığa keçmə müddətini dəyişdirmək kifayətdir. Vaxt ayırmanız üçün dəyişdirməyiniz lazım olan ifadələr olarsa, hər dəfə '#Zaman dəyişdir' yazacam.

Kodu sınamaq:

utime idxal edin

idxal vaxtı

maşın idxal ADC -dən

idxal maşını

idxal neopixel

adc = ADC (0)

pin = maşın. Pin (14, maşın. Pin. Çıxdı)

np = neopixel. NeoPixel (pin, 12)

pin2 = maşın. Pin (12, maşın. Pin. Çıxdı)

np2 = neopixel. NeoPixel (pin2, 8)

l1 = maşın. Pin (4, dəzgah

b1 = maşın. Pin (5, maşın. Pin. IN, maşın. Pin.

b3 = maşın. Pin (2, maşın. Pin. IN, maşın. Pin.

b2 = maşın. Pin (0, maşın. Pin. IN, maşın. Pin.

l1.dəyər (0)

def tglled (): # istək 'LED funksiyasını dəyişdirin

əgər l1.value () == 0:

l1.dəyər (1)

başqa:

l1.dəyər (0)

x = 0

b1temp1 = 0

b1temp2 = 0

t = 0

b2temp1 = 0

b2temp2 = 0

b3temp1 = 0

b3temp2 = 0

s = 0

Doğru halda:

# Bu 'istək' LEDini dəyişən düymədir

b1temp2 = b1.value ()

b1temp1 və b1temp2 deyilsə:

tglled ()

vaxt.yuxu (0.05)

b1temp1 = b1temp2

# Bu şəbəkə

np2 [0] = np [11]

əgər l1.value () == 1:

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

başqa:

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

np2.write ()

# Bura nə qədər vaxt lazım olduğunu seçirik

t == 0 olarsa:

i aralığında (-1, 12):

əgər (l1.value () == 0):

əgər (adc.read ()> = (85.34 * (i+1))):

np = (0, 0, 0)

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

s = (i + 1)

başqa:

np = (0, 0, 30)

np.write ()

başqa:

np = (0, 0, 0)

np.write ()

# Taymeri işə salmaq üçün düymə budur

əgər (l1.value () == 0) və (t == 0):

b2temp2 = b2. dəyər ()

b2temp2 və b2temp2 deyilsə:

x += 1

t += (s * 100)

vaxt.yuxu (0.05)

b2temp1 = b2temp2

# Bu düymə taymeri bitir

əgər (l1.value () == 0):

b3temp2 = b3.value ()

b3temp1 və b3temp2 deyilsə:

x = 0

t = 0

vaxt.yuxu (0.05)

b3temp1 = b3temp2

# Bu zamanlayıcıdır

x> 0 olarsa:

t += 1

əgər (t> 0) və (t <= 100): #Zamanı dəyişdir

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

əgər (t> 100) və (t <= 200): #Zamanı dəyişdir

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

əgər (t> 200) və (t <= 300): #Zamanı dəyişdir

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

əgər (t> 300) və (t <= 400): #Zamanı dəyişdir

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

əgər (t> 400) və (t <= 500): #Zamanı dəyişdir

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

əgər (t> 500) və (t <= 600): #Zamanı dəyişdir

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

əgər (t> 600) və (t <= 700): #Zaman dəyişdir

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

əgər (t> 700) və (t <= 800): #Zamanı dəyişdir

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

əgər (t> 800) və (t <= 900): #Zamanı dəyişdir

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

əgər (t> 900) və (t <= 1000): #Zamanı dəyişdir

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

əgər (t> 1000) və (t <= 1100): #Zamanı dəyişdir

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

əgər (t> 1100) və (t <= 1200): #Zamanı dəyişdir

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

əgər t> = 1300: #Vaxtı dəyiş

t = 0

x = 0

Addım 7: Toxunuşları bitirmək

İndi bu yerə çatdıqdan sonra iş kodunu NodeMCU -ya yükləməli və bütün hissələri çörək taxtasına bağlamalısınız. Kodu sınadıqdan sonra xarici hissənizdə olan hər hansı bir hissəni, yəni lazer kəsmə korpusunu kəsdikdən sonra, telləri NodeMCU -ya lehimləyə bilərsiniz. Lehimləmə isteğe bağlıdır, ancaq korpusunuz üçün daha etibarlı və kiçik edə bilər. İşdə hazırladığımız lazer kəsmə hissələrindən bəziləri.

Tövsiyə: