Daftar Isi:

Bilah LED Sinkronisasi WiFi Mesh: 3 Langkah (dengan Gambar)
Bilah LED Sinkronisasi WiFi Mesh: 3 Langkah (dengan Gambar)

Video: Bilah LED Sinkronisasi WiFi Mesh: 3 Langkah (dengan Gambar)

Video: Bilah LED Sinkronisasi WiFi Mesh: 3 Langkah (dengan Gambar)
Video: 3 Bocah Terlindas Truk Saat Selfie Di Atas Motor 2024, Juli
Anonim
Image
Image
Bilah LED Sinkronisasi WiFi Mesh
Bilah LED Sinkronisasi WiFi Mesh
Bilah LED Sinkronisasi WiFi Mesh
Bilah LED Sinkronisasi WiFi Mesh
Bilah LED Sinkronisasi WiFi Mesh
Bilah LED Sinkronisasi WiFi Mesh

Oleh CarlSTeleToylandIkuti Lainnya oleh penulis:

Pemilih Warna Jarak Jauh untuk LED Rumah
Pemilih Warna Jarak Jauh untuk LED Rumah
Pemilih Warna Jarak Jauh untuk LED Rumah
Pemilih Warna Jarak Jauh untuk LED Rumah
LED Tersinkronisasi Luas Lingkungan
LED Tersinkronisasi Luas Lingkungan
LED Tersinkronisasi Lebar Lingkungan
LED Tersinkronisasi Lebar Lingkungan
Pencahayaan Liburan Rumah LED Digital Permanen V2
Pencahayaan Liburan Rumah LED Digital Permanen V2
Pencahayaan Liburan Rumah LED Digital Permanen V2
Pencahayaan Liburan Rumah LED Digital Permanen V2

Tentang: Pembuat sejak kecil dengan semua gejala klasik, pembuat robot, dan Manajer Produk CTO/Teknologi perangkat lunak Internet. Selengkapnya Tentang CarlS »

Proyek ini adalah kumpulan batang LED dengan LED digital yang dapat dikontrol secara individual (WS2812b "Neopixels"). Mereka memungkinkan animasi dilakukan di antara mereka tanpa menghubungkannya bersama-sama. Mereka menggunakan WiFi Mesh untuk terhubung satu sama lain, dan animasi beradaptasi untuk memiliki lebih banyak atau lebih sedikit bilah di mesh.

Inspirasinya adalah untuk sepasang pemain drum untuk menghias gada/pentungan untuk parade Natal. Animasi LED di antara mereka disinkronkan. LED juga bisa berupa untaian, bukan strip.

Penggunaan lainnya adalah untuk instalasi seni LED di mana Anda tidak ingin menjalankan kabel data antara semua LED di sekitar ruangan - yang perlu mereka lakukan hanyalah dicolokkan satu per satu.

Untuk proyek ini, mereka tidak terhubung ke Internet. Mereka mengatur titik akses WiFi pribadi dan server web mereka sendiri. Jadi, proyek ini tidak bergantung pada jaringan eksternal, dan dapat berjalan di lokasi yang jauh. Mereka berjalan pada 5v, sehingga dapat dengan mudah ditenagai oleh baterai ponsel eksternal!

Langkah 1: Bagian

Bagian
Bagian
Bagian
Bagian
Bagian
Bagian

Bagian-bagian berikut digunakan dalam proyek untuk setiap strip:

  • Strip LED WS2812b yang tidak tahan air. Saya menggunakan 30 LED/meter. Yang tidak tahan air biasanya sudah memiliki selotip dua sisi sehingga mudah dipasang. Anda akan membutuhkan 1 meter per saluran karena saluran memiliki panjang satu meter. Lebih banyak LED per meter baik-baik saja - pastikan untuk mendapatkan catu daya yang besar. Setiap (5050) LED di strip ini dapat menggunakan hingga 60mA saat menyala penuh.
  • Kandang proyek elektronik plastik 60x36x25mm - yang ini cukup kecil untuk menampung D1 Mini.
  • Dudukan panel jack DC 5.5mm x 2.1mm
  • Catu daya 5v - 2 amp harus baik-baik saja dengan 30 LED @ 0,06 amp masing-masing saat penuh.
  • Kabel USB ke 5.5mm x 2.1mm jika Anda ingin memberi daya pada proyek ini dari baterai USB
  • Papan D1 Mini ESP8266 - juga tersedia dengan harga lebih murah, tetapi dengan waktu tunggu yang lebih lama.
  • Saluran aluminium dengan penutup dan penutup ujung untuk strip LED. Ada banyak profil untuk dipilih. Yang ini cukup lebar untuk strip LED WS2812b (12mm), dan low profile.
  • Batang aluminium - lebar saluran 17mm, jadi batang aluminium lebar 1/2" adalah ukuran yang baik. Tebalnya harus 1/16" dan panjang 6" untuk setiap batang yang Anda buat.
  • Pita busa dua sisi - lebar 1/2 ".
  • Kapasitor 1000uF - direkomendasikan untuk setiap strip, untuk membantu mencegah lonjakan tegangan merusak LED.
  • Kawat penghubung. Kawat silikon pengukur 26 ini sangat fleksibel dan membantu menjaga kawat agar tidak menarik bantalan solder dari strip LED. Itu juga tidak meleleh ketika Anda menyentuhnya dengan besi solder. Saya juga menggunakan kawat servo yang juga sangat fleksibel, tetapi kawat silikon adalah kawat favorit baru saya. Anda hanya membutuhkan abot 6" untuk setiap warna (merah, hitam, kuning).
  • Kabel jumper - betina merah, hitam, dan kuning digunakan untuk menghubungkan ke CPU. Anda dapat melewati ini dan menyolder kabel pengait langsung ke papan jika Anda adalah tipe orang yang percaya diri.
  • Sebuah resistor 330 ohm untuk mengurangi kebisingan di jalur data strip LED.
  • Dioda Sinyal 1N4448 atau serupa untuk memungkinkan prosesor 3.3v menggerakkan strip LED 5v dengan andal.
  • 3mm heat shrink tubing - Anda hanya membutuhkan sekitar 5" saja.

Langkah 2: Bangun Bar

Bangun Bar
Bangun Bar
Bangun Bar
Bangun Bar
Bangun Bar
Bangun Bar
Bangun Bar
Bangun Bar

Konstruksi untuk palang sama seperti pada Instruksi sebelumnya. Ada gambar langkah-demi-langkah serupa di sini dari build terbaru, dan diskusi dapat ditemukan di Instructable lainnya.

Satu tip baru untuk menempelkan LED ke saluran aluminium: Terkadang pita dua sisi pada strip LED sedikit lebih pendek dari papan sirkuit LED dan Anda akan melihat sedikit gesper di strip LED. Jika Anda hanya memotong pita di lokasi itu, pita itu akan rata.

Saya juga menggunakan beberapa tetes lem UV untuk mengunci kabel listrik dan bagian strip LED yang tidak menempel.

Alih-alih pengontrol Particle Photon, proyek ini menggunakan papan Mini WeMos D1 yang digunakan, berdasarkan set chip ESP8266. Ini bagus dan kecil untuk proyek LED. Saya menggunakan header pria untuk memberikan ruang bagi jumper wanita. Membalikkan konektor tidak akan muat di dalam enklosur. Pendekatan ini juga mudah disolder. Saya juga telah menggunakan 20 gauge kawat inti padat dengan berkerut pada konektor perempuan, dan itu bekerja juga, tetapi lebih banyak usaha.

Batang ini menggunakan pendekatan LED pengorbanan yang sama untuk LED pertama. Dalam prakteknya, itu benar-benar tidak terlihat. Juga, sedikit kesenjangan antara dua yang pertama juga hampir tidak terlihat

Jika Anda bermaksud menggunakan klip untuk memasang saluran aluminium, batang aluminium yang menghubungkan saluran ke kotak proyek dapat menghalangi pemasangan langsung klip ke dinding, jadi Anda mungkin perlu meletakkan beberapa ring atau mur yang longgar di bawahnya. di sana untuk menahan mereka pada 1/16.

Langkah 3: Kode Mesh

Image
Image
Kode Jaring
Kode Jaring

Setiap bilah LED menjalankan kode yang sama. Dasar dari proyek ini adalah Perpustakaan painlessMesh di https://gitlab.com/BlackEdder/painlessMesh. Pustaka itu menangani sebagian besar pekerjaan tingkat rendah dalam membangun Titik Akses, Server Web, dll. Setiap bilah adalah simpul mesh.

Mesh memiliki satu pengontrol, dan pemberitahuan perubahan animasi disiarkan ke semua node/bar LED. Untuk mesh besar, mungkin ada beberapa latensi dalam pengiriman pesan, tetapi untuk skala yang saya gunakan, itu tidak terlihat.

Saat startup, node menganggapnya sebagai controller, tapi kemudian pesan changeNodes memicu evaluasi. # Chip id terendah di mesh menjadi pengontrol. Ini biasanya membutuhkan satu atau dua detik untuk semua node untuk menetap dan mengambil satu pengontrol. Anda dapat melakukan lebih banyak upaya untuk menyinkronkan ulang lebih cepat (pertengahan animasi), tetapi pesan perubahan itu cukup cerewet, jadi tetap perlu sedikit agar jaringan tetap tenang. Dalam praktiknya, begitu mereka disinkronkan kembali, mereka tetap sangat solid.

Untuk animasi yang melintasi bar, kode mendapatkan daftar node, mengurutkannya, lalu hanya menggambar jika node saat ini adalah yang sedang digambar. Mereka mengurutkan dalam urutan chip id, sehingga Anda dapat melakukan animasi yang akan konsisten, tidak peduli kapan mereka memulai. Juga, animasi akan beradaptasi dengan node yang dijatuhkan.

Kode animasi muncul di tiga tempat. Yang pertama adalah fungsi ReceiveCallback, di mana bilah telah menerima perintah animasi baru. Ini cukup sederhana - cukup setel ukuran langkah waktu untuk animasi dan setel ulang penghitung. Tempat kedua ada di fungsi loop. Di sana, kode memeriksa untuk melihat apakah animasi saat ini sudah selesai, dan pindah ke langkah berikutnya. Tempat terakhir untuk kode animasi adalah fungsi stepAnimation, di mana semua gambar sudah selesai.

Sistem menggunakan timer milis untuk memperbarui - menghindari penggunaan fungsi penundaan karena memblokir beberapa perpustakaan. Kode milis harus bergulir dengan benar.

Perhatikan bahwa saya memiliki masalah dengan perpustakaan NeoPixel dan painlessMesh dengan lebih dari satu LED, jadi saya beralih ke FastLED.

Berikut adalah kode di GitHib, dan juga dilampirkan di sini. Anda cukup memuatnya di semua bilah dan Anda siap untuk melakukan pengkodean animasi LED!

Direkomendasikan: