Daftar Isi:

MQTT Mood Lights Dengan ESP32: 4 Langkah (dengan Gambar)
MQTT Mood Lights Dengan ESP32: 4 Langkah (dengan Gambar)

Video: MQTT Mood Lights Dengan ESP32: 4 Langkah (dengan Gambar)

Video: MQTT Mood Lights Dengan ESP32: 4 Langkah (dengan Gambar)
Video: ESP32 + RasPi Zero W - MQTT test 2024, Juli
Anonim
Lampu Suasana MQTT Dengan ESP32
Lampu Suasana MQTT Dengan ESP32

Saya telah tergoda untuk beberapa waktu untuk naik kereta musik LED, jadi saya berlari keluar dan mengambil strip LED untuk mainan. Saya akhirnya membuat lampu suasana hati ini. Mereka dapat dikontrol dengan MQTT, memungkinkan untuk menambahkan segala macam kecerdasan.

Ini adalah proyek akhir pekan yang bagus jika Anda tidak sedang melakukan apa-apa, dan ingin mengotori tangan Anda dengan membuat sesuatu.

Perhatikan bahwa tujuan dari Instructable ini adalah untuk mendokumentasikan proyek saya dan berbagi ide dengan orang lain, dan tidak harus memberikan instruksi dan metode yang solid. Dengan itu, baca terus!

Perlengkapan

Elektronik:

  • 1x papan pengembangan ESP32
  • 1x 0.96" layar OLED I2C
  • 1x Buzzer
  • 1x Barel jack
  • Catu daya 1x 12V (arus tergantung pada panjang strip Anda)
  • 1x LM2596 konverter uang
  • 1x Strip LED RGB anoda umum
  • 3x MOSFET IRFZ44N
  • 3x BC547 transistor
  • 3x 10kΩ resistor
  • 4x 100Ω resistor
  • 1x papan prototipe
  • 4x terminal sekrup
  • Header pria dan wanita
  • Kawat (saya menggunakan untai tunggal)

Perangkat keras dan alat lainnya:

  • Bahan yang Anda inginkan untuk enklosur (saya menggunakan MDF)
  • Bahan datar dan konduktif untuk kontak sentuh (saya menggunakan lembaran aluminium tipis)
  • Gergaji, bor, amplas, dll.
  • Solder besi dan teman-teman
  • Lem panas

Saya sangat menyarankan untuk tidak menggunakan ESP32 dengan layar OLED built-in, karena menjadi sangat sulit untuk membuat potongan yang selaras di enklosur Anda untuk itu.

Langkah 1: Elektronik

Elektronik
Elektronik
Elektronik
Elektronik

Skema terlampir menunjukkan semua koneksi yang diperlukan, kecuali untuk input sentuh. Ada juga diagram papan tempat memotong roti yang relatif samar yang menunjukkan cara memasang satu MOSFET, jika skema tidak memadai.

Kekuasaan

Konverter uang LM2596 menurunkan 12V dari catu daya ke 5V untuk VIN ESP. Pastikan catu daya Anda dinilai dengan benar untuk panjang strip LED yang Anda gunakan. Strip panjang 2 meter saya menarik sedikit lebih dari 2 amp.

Pin dan periferal

Empat pin sentuh digunakan untuk input sentuh. Papan ESP32 saya dilengkapi dengan layar OLED yang terpasang, yang pin I2C-nya sudah terpasang. Ini menggunakan empat pin PWM, satu untuk setiap komponen warna (merah, hijau, dan biru), dan satu untuk buzzer.

kekacauan MOSFET

MOSFET dipilih untuk menangani waktu switching yang cepat untuk PWM dan arus yang relatif tinggi. Ada satu MOSFET untuk setiap komponen warna. Saya menggunakan NPN BJT (BC547) terpisah bersama dengan resistor pull-up untuk menggerakkan IRFZ44Ns, karena sinyal digital 3.3V dari ESP32 mungkin tidak cukup bagi MOSFET untuk mengalirkan arus sebanyak yang diperlukan. MOSFET tingkat logika seperti IRLZ44N ada, tetapi saya mengetahuinya hanya setelah saya selesai menyolder semuanya. Either way, strip saya yang menarik ~ 2A berfungsi dengan baik.

Pematerian

Terminal sekrup digunakan untuk menghubungkan ke strip LED, dan header perempuan untuk menyambungkan ESP32, jika saya ingin mengganti salah satu dari mereka tanpa pematrian barang. Solder memakan waktu sekitar dua jam, dan sangat mudah. Saya juga memberi strip LED saya beberapa kabel yang lebih panjang.

Mengapa saya memilih ESP32

Ini memiliki WiFi dan Bluetooth di papan (meskipun saya hanya menggunakan WiFi sekarang), dan saya punya satu tergeletak di sekitar yang saya gatal untuk digunakan. Input sentuh juga berguna untuk antarmuka pada pengontrol, karena hanya membutuhkan satu kabel untuk masuk ke kontak. Namun, jika Anda mau, ESP32 dapat dengan mudah diganti dengan mikrokontroler seperti ESP8266.

Langkah 2: Kode

Saya menggunakan toolset Arduino (sebenarnya ekstensi Arduino untuk VS Code:)) untuk memprogram ini. Ada tutorial bagus seperti ini tentang cara memulai dengan ESP32 dan Arduino IDE, jika Anda belum melakukannya.

Ada empat mode berbeda untuk ditangani: warna statis, warna acak, Peringatan Merah, dan Peringatan Biru. Ada empat input sentuh untuk up, down, next, dan Red Alert. Sentuhan menggunakan interupsi.

Saya menambahkan MQTT ke karya juga, sehingga saya bisa mengontrolnya melalui WiFi. Saya mencoba untuk merasakan tiga besar aplikasi web (HTML, CSS, JS), jadi saya merancang halaman web bertema Star Trek (tapi agak jelek) yang berkomunikasi dengan broker MQTT untuk mengontrol lampu suasana hati.

Semua kode saya dapat ditemukan terlampir, bersama dengan lembar referensi cepat, yang nama filenya mungkin ingin Anda ubah untuk menjadikannya penurunan harga. Pindahkan semua file ke folder dengan nama "ESP32MQTTMoodLighting" sebelum dibuka dengan Arduino.

Perhatikan bahwa kode saya berfungsi, tetapi mungkin bukan yang terbaik. Tapi itu tidak masalah, karena Anda akan tetap menulis sendiri, bukan?:)

Langkah 3: Kandang dan Perakitan

Kandang dan Perakitan
Kandang dan Perakitan
Kandang dan Perakitan
Kandang dan Perakitan
Kandang dan Perakitan
Kandang dan Perakitan
Kandang dan Perakitan
Kandang dan Perakitan

Selama penguncian, satu-satunya bahan yang bisa saya dapatkan adalah selembar MDF 5mm. Saya membuat potongan besar dengan gergaji besi biasa, dan memberikan pasir yang bagus untuk semuanya. Lapisan ganda cat enamel menyelesaikan persiapan utama.

Panel belakang

Saya ingin kotak saya mudah dibuka, jadi saya memasang semua elektronik saya ke panel belakang dengan empat M2 PCB standoffs. Perfboard saya sudah memiliki lubang M2 yang dibor ke dalamnya. Kebuntuan saya memiliki rintisan berulir kecil di bagian bawah, yang saya maksudkan untuk diperbaiki ke MDF. Tapi, saya tidak punya mata bor M2. Jadi, menandai posisi setiap lubang, saya menggunakan obeng pipih kecil untuk mencungkil lubang secara manual. Kasar tapi efektif. Diameter lubang hanya sedikit lebih kecil dari bagian berulir dari kebuntuan. Saya memutar kebuntuan masuk dan keluar dari lubang beberapa kali, yang melebar dan hampir memasangnya.

Akhirnya, kebuntuan duduk dengan kuat di lubang mereka dan menahan papan perf di tempatnya. Karena MDF saya sangat tebal, tidak ada yang tembus ke sisi lain.

Saya mengebor lubang untuk colokan listrik, dan membuat slot untuk dilewati kabel strip LED, tepat di bawah tempat terminal sekrup saya berada.

Panel depan

Potongan Layar OLED

Saya memulai potongan saya untuk OLED dengan beberapa lubang starter, dan menyusunnya sesuai ukuran. Itu akhirnya menjadi sangat miring dan tidak selaras. Tidak memeriksa ulang pengukuran mungkin berperan dalam hal itu, tetapi selamatkan diri Anda dari masalah dengan tidak menggunakan papan pengembangan dengan OLED bawaan. Jauh lebih mudah untuk hanya memasang layar ke lubang Anda.

Penyambung

Saya membuat konektor dari beberapa header pria dan wanita. Salah satu ujungnya terpasang ke kabel yang terhubung ke kontak sentuh di panel depan, sementara sisi lainnya memiliki kabel yang terhubung ke input sentuh ESP. Ini agar panel depan dapat dilepas seluruhnya dari belakang jika perlu, tanpa mengganggu sambungan solder. Jika Anda memasang apa pun ke panel depan Anda, Anda mungkin ingin membuat konektor untuk itu juga.

Bantalan Sentuh

Kontak sentuh terbuat dari beberapa lembaran aluminium. Saya memotongnya untuk mendapatkan empat bantalan yang dibutuhkan, dan memverifikasi bahwa tidak ada tepi yang bergerigi. Saya kemudian mengebor lubang ke panel depan, cukup besar untuk kawat. Untuk membiarkan solder menempel pada bantalan, saya menggosok sebagian kecil dari satu sisi dengan amplas untuk menghilangkan lapisan yang teroksidasi, dan kemudian menyekanya dengan cepat untuk menghilangkan partikel apa pun. Menjalankan setiap kawat melalui lubang yang sesuai di panel depan, saya menyolder masing-masing ke padnya. Pastikan solder Anda tidak membuat tonjolan yang terlalu besar di bagian belakang, karena ini tidak akan membuat bantalan menempel rata dengan panel.

Terakhir, tambahkan lem panas ke bagian belakang setiap bantalan dan dorong ke panel depan. Menambahkan terlalu banyak akan membuat bantalan terangkat dari panel. Bersihkan lem berlebih yang mungkin terdorong keluar dari bawah bantalan.

Sisanya

Panel samping cukup sederhana. Lubang akses cepat ke terminal sekrup lebih merepotkan daripada nilainya. Saya menempelkan panel samping ke panel depan dengan panas.

Velcro di dua sisi menahan bagian depan ke panel belakang. Kesenjangan memungkinkan suara bel untuk melarikan diri. Jika Anda melakukan pekerjaan yang lebih baik dari saya, Anda tidak harus berakhir dengan sesuatu yang terlihat seperti kerajinan prasekolah berusia 5 tahun:)

Strip LED saya memiliki bagian belakang yang lengket (saya yakin milik Anda juga). Saya memasang milik saya sedemikian rupa sehingga cahaya berdifusi dari dinding.

Langkah 4: Pasang

Pasang!
Pasang!

Anda sekarang harus memiliki lampu suasana hati yang dikendalikan MQTT lengkap. Saya telah memasang milik saya ke meja saya, di mana itu menambahkan percikan warna pada pekerjaan yang terkadang monoton. Malam adalah waktu yang ideal untuk membuat orang terkesan dengannya.

Saya harap Anda menikmati membaca Instructable ini, dan mendapat beberapa ide untuk proyek Anda sendiri. Seperti yang saya sebutkan sebelumnya, saya seorang pemula, dan ini adalah Instructable pertama saya. Saya akan menghargai setiap tips dan komentar.

Direkomendasikan: