İçindekiler:

WiFi Mesh Senkronize LED Çubuklar: 3 Adım (Resimlerle)
WiFi Mesh Senkronize LED Çubuklar: 3 Adım (Resimlerle)

Video: WiFi Mesh Senkronize LED Çubuklar: 3 Adım (Resimlerle)

Video: WiFi Mesh Senkronize LED Çubuklar: 3 Adım (Resimlerle)
Video: Monster alma pişman olursun dediler.. ve (pişman değil pişmaniye oldum ) 2024, Temmuz
Anonim
Image
Image
WiFi Mesh Senkronize LED Çubuklar
WiFi Mesh Senkronize LED Çubuklar
WiFi Mesh Senkronize LED Çubuklar
WiFi Mesh Senkronize LED Çubuklar
WiFi Mesh Senkronize LED Çubuklar
WiFi Mesh Senkronize LED Çubuklar

CarlSTeleToyland tarafındanYazarın daha fazlasını izleyin:

Ev LED'leri için Uzaktan Renk Seçici
Ev LED'leri için Uzaktan Renk Seçici
Ev LED'leri için Uzaktan Renk Seçici
Ev LED'leri için Uzaktan Renk Seçici
Mahalle Geniş Senkronize LED'ler
Mahalle Geniş Senkronize LED'ler
Mahalle Geniş Senkronize LED'ler
Mahalle Geniş Senkronize LED'ler
Kalıcı Dijital LED Ev Tatil Aydınlatması V2
Kalıcı Dijital LED Ev Tatil Aydınlatması V2
Kalıcı Dijital LED Ev Tatil Aydınlatması V2
Kalıcı Dijital LED Ev Tatil Aydınlatması V2

Hakkında: Çocukluğundan beri tüm klasik semptomları olan bir Maker, bir robot üreticisi ve bir İnternet yazılımı CTO/Tech Product Manager. CarlS Hakkında Daha Fazla Bilgi »

Bu proje, ayrı ayrı kontrol edilebilen dijital LED'lere (WS2812b "Neopikseller") sahip bir LED çubukları koleksiyonudur. Onları birbirine bağlamadan animasyonların yapılmasına izin verirler. Birbirlerine bağlanmak için bir WiFi Ağı kullanırlar ve animasyon, ağda daha fazla veya daha az çubuk bulunmasına uyum sağlar.

İlham, bir çift davul ustasının bir Noel geçit töreni için süslenmiş topuzları/batonları olmasıydı. Aralarındaki LED animasyonu senkronize edilir. LED'ler şeritler yerine şeritler de olabilir.

Diğer kullanım, bir odadaki tüm LED'ler arasında bir veri kablosu çalıştırmak istemediğiniz bir LED sanat kurulumu içindir - tek yapmaları gereken tek tek takılmaktır.

Bu proje için internete bağlı değiller. Kendi özel WiFi erişim noktalarını ve web sunucularını kurarlar. Dolayısıyla, bu proje harici ağlara bağımlı değildir ve uzak konumlarda çalışabilir. 5v ile çalışırlar, bu nedenle harici cep telefonu pilleriyle kolayca çalıştırılabilirler!

Adım 1: Parçalar

Parçalar
Parçalar
Parçalar
Parçalar
Parçalar
Parçalar

Projede her şerit için aşağıdaki parçalar kullanıldı:

  • Su geçirmez olmayan bir WS2812b LED şerit. 30 LED/metre kullandım. Su geçirmez olmayanlarda genellikle çift taraflı bant takılıdır, bu nedenle montajı kolaydır. Kanallar bir metre uzunluğunda olduğu için kanal başına 1 metreye ihtiyacınız olacaktır. Metre başına daha fazla LED iyidir - sadece buna uygun büyük bir güç kaynağı aldığınızdan emin olun. Bu şeritlerdeki her (5050) LED, tamamen açıkken 60ma'ya kadar kullanabilir.
  • Plastik elektronik proje muhafazası 60x36x25mm - bu, bir D1 Mini'yi tutacak kadar küçüktür.
  • Panel montajlı 5,5 mm x 2,1 mm DC jak
  • 5v'lik bir güç kaynağı - 2 amperlik, her biri dolu olduğunda 30 LED @ 0,06 amp ile iyi olmalıdır.
  • Bu projeye bir USB pilden güç sağlamak istiyorsanız, bir USB - 5.5mm x 2.1mm kablosu
  • Bir D1 Mini ESP8266 anakartı - ayrıca daha ucuza, ancak daha uzun bir bekleme süresine sahip.
  • LED şeritler için kapaklı ve uç kapaklı alüminyum kanal. Aralarından seçim yapabileceğiniz birçok profil var. Bu, WS2812b LED şeritleri (12mm) ve düşük profil için yeterince geniştir.
  • Alüminyum çubuk - kanal 17 mm genişliğindedir, bu nedenle 1/2" genişliğinde bir alüminyum çubuk iyi bir boyuttur. Yaptığınız her çubuk için 1/16" kalınlığında ve 6" uzunluğunda olmalıdır.
  • Çift taraflı köpük bant - 1/2" genişliğinde.
  • 1000 uF kapasitör - voltaj yükselmelerinin LED'lere zarar vermesini önlemeye yardımcı olmak için her şerit için önerilir.
  • Bağlantı teli. Bu 26 gauge silikon tel çok esnektir ve telin lehim pedlerini LED şeritten çekmesini önlemeye yardımcı olur. Ayrıca havya ile dokunduğunuzda erimez. Ben de çok esnek olan servo tel kullandım ama silikon tel benim yeni favori telim. Her rengin (kırmızı, siyah, sarı) sadece 6" boyutuna ihtiyacınız olacak.
  • Atlama telleri - dişi kırmızı, siyah ve sarı, CPU'ya bağlanmak için kullanılır. Bunları atlayabilir ve kendinize güvenen biriyseniz, bağlantı telini doğrudan tahtaya lehimleyebilirsiniz.
  • LED şerit veri hattındaki gürültüyü azaltmak için 330 ohm'luk bir direnç.
  • 3.3v işlemcinin 5v LED şeridini güvenilir bir şekilde sürmesini sağlamak için 1N4448 Sinyal Diyodu veya benzeri.
  • 3 mm ısıyla daralan makaron - bunun yalnızca yaklaşık 5" boyutuna ihtiyacınız olacak.

2. Adım: Barları Oluşturun

Barları İnşa Et
Barları İnşa Et
Barları İnşa Et
Barları İnşa Et
Barları İnşa Et
Barları İnşa Et
Barları İnşa Et
Barları İnşa Et

Çubukların yapısı, bu önceki Eğitilebilir Tablodakiyle aynıdır. Burada yakın tarihli bir yapıdan benzer adım adım resimler var ve tartışma bu diğer Eğitilebilir Dosyada bulunabilir.

LED'leri alüminyum kanala yapıştırmak için yeni bir ipucu: Bazen LED şeritlerindeki çift taraflı bant, LED devre kartından biraz daha kısadır ve LED şeridinde hafif bir toka görürsünüz. Bandı o konumda keserseniz, düz bir şekilde uzanacaktır.

Ayrıca güç kablosunu ve LED şeridin aşağıda kalmayan kısımlarını kilitlemek için birkaç damla UV tutkalı kullandım.

Bu projede Parçacık Foton kontrolörleri yerine ESP8266 yonga setine dayalı WeMos D1 Mini kartları kullanıldı. Bunlar bir LED projesi için güzel ve küçük. Kadın jumperlara yer açmak için erkek başlıklar kullandım. Konektörleri ters çevirmek kasaya sığmaz. Bu yaklaşımın lehimlenmesi de kolaydır. Ayrıca dişi konektörlerde kıvrılmış 20 gauge tek damarlı tel kullandım ve bu da işe yarıyor, ancak daha fazla çaba gerektiriyor.

Bu çubuklar, ilk LED için aynı fedakar LED yaklaşımını kullanır. Pratikte, gerçekten fark edilmiyor. Ayrıca, ilk ikisi arasındaki hafif boşluk da neredeyse farkedilemez.

Alüminyum kanalı monte etmek için klips kullanmayı düşünüyorsanız, kanalı proje kutusuna bağlayan alüminyum çubuk, klipsleri doğrudan duvara monte etmenize engel olabilir, bu nedenle altına rondela veya gevşek bir somun koymanız gerekebilir. onları 1/16 ile durdurmak için orada.

3. Adım: Mesh Kodu

Image
Image
Kafes Kodu
Kafes Kodu

LED çubuklarının her biri aynı kodu çalıştırıyor. Bu projenin temeli https://gitlab.com/BlackEdder/painlessMesh adresindeki ağrısızMesh Kütüphanesidir. Bu kitaplık, Erişim Noktaları, Web Sunucuları vb. oluşturmanın alt düzey çalışmalarının çoğunu gerçekleştirir. Her çubuk bir ağ düğümüdür.

Ağın bir denetleyicisi vardır ve animasyon değişikliği bildirimleri tüm düğümlere/LED çubuklarına yayınlanır. Büyük bir ağ için mesajlaşmada biraz gecikme olabilir, ancak çalıştığım ölçek için farkedilmedi.

Başlangıçta, düğüm denetleyici olduğunu varsayar, ancak daha sonra değiştirilenNodes mesajı bir değerlendirmeyi tetikler. Ağdaki en düşük # çip kimliği denetleyici olur. Bu, genellikle tüm düğümlerin oturması ve tek bir denetleyici varsayması için bir veya iki saniye sürer. Daha hızlı yeniden senkronizasyon için daha fazla çaba harcayabilirsiniz (animasyon ortasında), ancak bu değişiklik mesajları oldukça konuşkandır, bu nedenle ağın yine de oturması biraz zaman alır. Pratikte, yeniden senkronize olduklarında çok sağlam kalırlar.

Çubukların üzerinden geçen animasyonlar için kod, düğümlerin bir listesini alır, sıralar ve ardından yalnızca o anki düğüm çizilen düğümse çizer. Çip kimliği sırasına göre sıralanırlar, böylece ne zaman başlarlarsa başlasınlar tutarlı olacak animasyonlar yapabilirsiniz. Ayrıca, animasyonlar bırakılan düğümlere uyum sağlayacaktır.

Animasyon kodu üç yerde görünür. İlki, çubuğun yeni bir animasyon komutu aldığı alınan Geri Çağırma işlevidir. Bu oldukça basittir - sadece animasyon için zamanlama adımı boyutunu ayarlar ve sayaçları sıfırlar. İkinci yer döngü işlevindedir. Orada, kod mevcut animasyonun yapılıp yapılmadığını kontrol eder ve bir sonraki adıma geçer. Animasyon kodu için son yer, tüm çizimin yapıldığı stepAnimation işlevidir.

Sistem güncelleme için millis zamanlayıcıyı kullanır - bazı kitaplıkları engellediğinden gecikme işlevinin kullanılmasından kaçınır. Millis kodu doğru şekilde yuvarlanmalıdır.

NeoPixel kitaplığı ve birden fazla LED ile ağrısızMesh ile ilgili sorunlar yaşadığımı unutmayın, bu yüzden FastLED'e geçtim.

İşte GitHib'deki kod ve buraya da eklenmiştir. Hemen hemen tüm çubuklara yüklediniz ve LED animasyon kodlamasına geçmeye hazırsınız!

Önerilen: