Mündəricat:
- Addım 1: Qarşılıqlı Video
- Addım 2: Problem Bildirimi
- Addım 3: Bunun necə işlədiyinə ümumi baxış
- Addım 4: Materialların və Alətlərin siyahısı
- Addım 5: Breadboard ilə qurmağa başlayın
- Addım 6: Kodun işə salınması
- Addım 7: Toxunuşları bitirmək
Video: İş otağı sayğacı: 7 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
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
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ə:
İşıqlı və Səsli Yataq otağı üçün Siqnal! 6 Addım
İşıq və Səsli Yataq otağı üçün Siqnal!: Salam, bu gün sizə Arduino UNO ilə yataq otağınızın qapısı üçün necə həyəcan siqnalı edəcəyinizi göstərəcəyəm
Shelly ilə Film üçün Otaq otağı: 4 addım
Shelly ilə Film üçün Otaq otağı: Layihə İcraçı xülasəsi Otağımın oturma otağımı film izləmək üçün rahat etmək üçün google ev prosedurlarından istifadə edərək çox sadə bir avtomatlaşdırma necə yaradılır
Space Marul Otağı Təlimatlandırılır- Aviaşirkət Liseyi Robototexnika: 8 Addım
Space Marul Otağı Təlimatlandırılır- Havayolu Liseyi Robototexnika: Bu, robototexnika sinfinə yazılan üç lisey şagirdi tərəfindən hazırlanan bir təlimatdır. NASA tərəfindən yer üzündə böyüyən yarışma üçün kosmosda kahı yetişdirmək üçün bir otaq yaradacağıq. Konteynerin necə yaradılacağını sizə göstərəcəyik. Gəlin
DIY Soket Test Cihazı, Qəbul Otağı Mütləq: 12 Addım
DIY Socket Tester, Qəbul Otağında olmalıdır: Evi bəzədikdən sonra bəlkə də narahat olursan, priz işçisi məni doldurmaq üçün səhv xətti bağlamayacaq və ya sızma qorunmayacaq. Narahat olmayın, indi xüsusi olaraq corabın tel sırasını təyin edən bir priz test cihazı hazırlayaq
Yataq otağı lampası Ws2812: 6 addım (şəkillərlə birlikdə)
Yataq Otağı Lampası Ws2812: Hamıya salam, mövcud yataq otağı lampasını ağıllı telefondan və ya brauzeri olan hər hansı bir cihazdan idarə etmək və Apple Home -dan daha çox inteqrasiya etmək üçün yenidən qurmağa qərar verdim. Hədəflər bunlardır: 1. Parlaqlığı, rəngi və ya animasiyanı/effektləri idarə etmək üçün WS2812b led şeridi istifadə edin2. Bizə