İçindekiler:
- 1. Adım: Etkileşim Videosu
- 2. Adım: Sorun Bildirimi
- Adım 3: Nasıl Çalıştığına Genel Bakış
- Adım 4: Malzeme ve Araç Listesi
- Adım 5: Breadboard ile İnşa Etmeye Başlayın
- Adım 6: Kodu Başlatma
- Adım 7: Son Dokunuşlar
Video: Çalışma Odası Zamanlayıcısı: 7 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
Bir çalışma odası için bir zamanlayıcının nasıl oluşturulacağına ilişkin talimatlar.
1. Adım: Etkileşim Videosu
drive.google.com/file/d/12z5zQR52AXILX2AGb3EplfbmZWANZiCl/view?usp=drivesdk
2. Adım: Sorun Bildirimi
Çoğu zaman, çalışma odaları her zaman alınır. Bunun nedeni, insanların odada ihtiyaç duyduklarından çok daha uzun süre kalmayı sevmeleridir. Her kişiye toplam 2 saat ve bekleyenlere odayı bir sonraki grup olarak talep etme olanağı tanıyan bir zamanlayıcı tasarladık. Neopiksellerde RGB kullanımı, kalan süreyi ifade edecektir.
Adım 3: Nasıl Çalıştığına Genel Bakış
Zamanlayıcı lazer kesici, 3 buton, 1 LED, 1 potansiyometre ile kesilen parçalardan oluşmaktadır.
Neopikseller ve potansiyometre, NodeMCU'ya bağlanmıştır. NodeMCU, dairesel Neopiksel şeridinde yanan LED'lerin miktarını değiştirmek için potansiyometrenin ne kadar döndürüldüğünü yeniden ayarlayacak şekilde programlanmıştır. İstek düğmesi Başlat, Durdur ve Saati ayarla işlevinin işlevini durdurur. Oda içindeki zamanlayıcıdaki LED'lerin rengi, kutunun yan tarafında yanan LED'in rengiyle aynıdır. Kutunun yan tarafındaki neopiksel, binanın lobisindeki hangi odanın tutulduğunu ve ne kadar zaman kaldığını gösteren ekranı temsil eder. Her oda için 2 LED reçete edilir, bir LED odanın alındığını gösterir ve diğer led zamanlayıcıdaki LED'lerin rengini yansıtır (yeşil daha fazla zaman, sonra sarı, sonra kırmızı daha kısa süre).
Adım 4: Malzeme ve Araç Listesi
-Temiz akrilik
-MicroUSB Kablosu
www.digikey.com/product-detail/en/stewart-…
-Breadboard
www.amazon.com/gp/product/B01EV6LJ7G/ref=o…
-Potansiyometre
www.alliedelec.com/honeywell-380c32500/701…
-3 düğme
www.digikey.com/product-detail/en/te-conne…
-DüğümMCU
www.amazon.com/gp/product/B07CB4P2XY/ref=o…
- 2 Neopiksel Şerit
www.amazon.com/Lighting-Modules-NeoPixel-W…
-dirençler
www.digikey.com/product-detail/en/te-conne…
- Teller
www.digikey.com/product-detail/en/sparkfun…
-1 LED
www.mouser.com/ProductDetail/Cree-Inc/C512…
-Sıcak yapıştırıcı tabancası
www.walmart.com/ip/AdTech-Hi-Temp-Mini-Hot…
-Yapışkan Velcro Şeritler
www.amazon.com/VELCRO-Brand-90076-Fastener…
Adım 5: Breadboard ile İnşa Etmeye Başlayın
Potansiyometrede A0 ila orta pim
Neopiksel halkasını Vin'den Güçlendirmek
Potansiyometrenin bir tarafına 3v3
Tüm gerekçeler NodeMCU'da Topraklanacak
D1 Talep Düğmesi
LED Talep Etmek için D2
Başlat Düğmesine D3
D4 Durdurma Düğmesi
D5, halkada Neopiksel Girişine direnç
D6'dan Neopiksel Giriş şeridine direnç
Adım 6: Kodu Başlatma
Bu, projenizin şu ana kadar çalıştığından emin olmak için kullanılan koddur. Zamanlayıcı, Neopixel Ring'deki LED başına yalnızca birkaç saniye olmalıdır. Bu noktaya kadar çalıştığını öğrendikten sonra, yapmanız gereken tek şey, aşağıdaki ifadeleri belirtilen aralığa göre değiştirmektir. Zaman tahsisiniz için değiştirmeniz gereken if ifadelerinin her birine '#Zamanı değiştir' koyacağım.
Kodu Denemek:
utime'ı içe aktar
ithalat zamanı
makine ithalat ADC'sinden
ithalat makinesi
neopiksel içe aktar
adc = ADC(0)
pin = makine. Pin(14, makine. Pin. OUT)
np = neopixel. NeoPixel(pin, 12)
pin2 = makine. Pin(12, makine. Pin. OUT)
np2 = neopiksel. NeoPixel(pin2, 8)
l1 = makine. Pin(4, makine. Pin. OUT)
b1 = makine. Pin(5, makine. Pin. IN, makine. Pin. PULL_UP)
b3 = makine. Pin(2, makine. Pin. IN, makine. Pin. PULL_UP)
b2 = makine. Pin(0, makine. Pin. IN, makine. Pin. PULL_UP)
l1.değer(0)
def tglled(): # 'istek' LED işlevini değiştir
if l1.value() == 0:
l1.değer(1)
Başka:
l1.değer(0)
x = 0
b1temp1 = 0
b1temp2 = 0
t = 0
b2temp1 = 0
b2temp2 = 0
b3temp1 = 0
b3temp2 = 0
s = 0
Doğru iken:
# Bu, 'istek' LED'ini değiştiren düğmedir.
b1temp2 = b1.değer()
b1temp1 ve b1temp2 değilse:
tglled()
zaman.uyku(0.05)
b1temp1 = b1temp2
# Bu ızgara
np2[0] = np[11]
if l1.value() == 1:
np2[1] = (30, 0, 0)
Başka:
np2[1] = (0, 0, 30)
np2.write()
# Ne kadar zamana ihtiyacımız olduğunu burada seçiyoruz
t == 0 ise:
i aralığında (-1, 12):
if (l1.value() == 0):
if (adc.read() >= (85.34 * (i+1))):
np = (0, 0, 0)
np[11] = (0, 0, 30)
s = (i + 1)
Başka:
np = (0, 0, 30)
np.yaz()
Başka:
np = (0, 0, 0)
np.yaz()
# Bu, zamanlayıcıyı başlatmak için kullanılan düğmedir.
if (l1.value() == 0) ve (t == 0):
b2temp2 = b2.değer()
b2temp1 ve b2temp2 değilse:
x += 1
t += (s * 100)
zaman.uyku(0.05)
b2temp1 = b2temp2
# Bu düğme zamanlayıcıyı sonlandırır
if (l1.value() == 0):
b3temp2 = b3.değer()
b3temp1 ve b3temp2 değilse:
x = 0
t = 0
zaman.uyku(0.05)
b3temp1 = b3temp2
# Bu zamanlayıcı
x > 0 ise:
t += 1
if (t > 0) ve (t <= 100): #Değiştirme zamanı
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.yaz()
if (t > 100) ve (t <= 200): #Değiştirme zamanı
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.yaz()
if (t > 200) ve (t <= 300): #Değiştirme zamanı
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.yaz()
if (t > 300) ve (t <= 400): #Değiştirme zamanı
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.yaz()
if (t > 400) ve (t <= 500): #Değiştirme zamanı
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.yaz()
if (t > 500) ve (t <= 600): #Değiştirme zamanı
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.yaz()
if (t > 600) ve (t <= 700): #Değiştirme zamanı
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.yaz()
if (t > 700) ve (t <= 800): #Değiştirme zamanı
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.yaz()
if (t > 800) ve (t <= 900): #Değiştirme zamanı
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.yaz()
if (t > 900) ve (t <= 1000): #Değiştirme zamanı
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.yaz()
if (t > 1000) ve (t <= 1100): #Değiştirme zamanı
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.yaz()
if (t > 1100) ve (t <= 1200): #Değiştirme zamanı
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.yaz()
if t >= 1300: #Zamanı değiştir
t = 0
x = 0
Adım 7: Son Dokunuşlar
Şimdi, buraya kadar geldiğinizde, çalışma kodunun NodeMCU'ya yüklenmesini ve tüm parçaların devre tahtasına bağlanmasını sağlamalısınız. Kodu denedikten ve dış kısım için, yani lazer kesim kasa için sahip olduğunuz tüm parçaları kestikten sonra, artık kabloları NodeMCU'ya lehimleyebilirsiniz. Lehimleme isteğe bağlıdır, ancak kasanız için daha güvenli ve daha küçük hale getirebilir. İşte yaptığımız lazer kesim parçalardan bazıları.
Önerilen:
El Yıkama Zamanlayıcısı; Daha Temiz Sürüm: 6 Adım
El Yıkama Zamanlayıcısı; Daha Temiz Versiyon: Sadece Corona Virüsü değil, tüm hastalıkların önlenmesi gerekiyor. Hastalık ve Önleme Merkezlerine göre, bakteri ve mantarlar nedeniyle 2,8 milyon enfeksiyon ve 35000 ölüm var. Bu da insanların ellerini birlikte yıkaması gerektiğini gösteriyor
Kendin Yap Arduino 30 Saniyelik Yıkama Zamanlayıcısı Nasıl Yapılır, COVİD YAYILMASINI DURDUR: 8 Adım
DIY Arduino 30 Saniyelik Yıkama Zamanlayıcı Nasıl Yapılır, COVID YAYILMASINI DURDURUN: merhaba
Mutfak Zamanlayıcısı: 4 Adım
Mutfak Zamanlayıcısı: Bu, bir Raspberry Pi projesi olan Mutfak Zamanlayıcısı için ikincil bir ekran olarak kullanılacak gen4-uLCD-35DT'ye sahiptir. Dışarıdaki annelerin ve yemek pişirme meraklılarının çoğu için faydalı bir uygulamadır. Bu, yemek pişirirken zamanı izlemek için kullanılabilir
Coronavirus ile Mücadele: Basit El Yıkama Zamanlayıcısı: 8 Adım (Resimlerle)
Coronavirus ile Mücadele: Basit El Yıkama Zamanlayıcısı: Dünyadaki mevcut pandemi ile durum oldukça korkutucu görünüyor. Corona virüsü her yerde olabilir. Bildiğimiz kadarıyla, kişi herhangi bir semptom göstermeden virüsü birkaç gün taşıyabilir. Gerçekten korkutucu. Ama hey, çok korkma.
COVID-19 için 20 İkinci El Yıkama Zamanlayıcısı: 6 Adım (Resimlerle)
COVID-19 için 20 İkinci El Yıkama Zamanlayıcısı: Küresel COVID-19 yayıldıkça, sadece daha az toplanıp yüz maskesi takarak değil, aynı zamanda daha sık el yıkayarak kendimizi korumalıyız. Yapmazsan virüslere karşı etkili olmaz' ellerinizi doğru şekilde yıkayın. Ellerimizi doğru şekilde nasıl yıkayabiliriz?