İçindekiler:

ESP32 ile MQTT Mood Lights: 4 Adım (Resimlerle)
ESP32 ile MQTT Mood Lights: 4 Adım (Resimlerle)

Video: ESP32 ile MQTT Mood Lights: 4 Adım (Resimlerle)

Video: ESP32 ile MQTT Mood Lights: 4 Adım (Resimlerle)
Video: Senior Programmers vs Junior Developers #shorts 2024, Kasım
Anonim
ESP32 ile MQTT Mood Işıkları
ESP32 ile MQTT Mood Işıkları

Bir süredir LED vagonuna atlamak için cazip gelmiştim, bu yüzden koştum ve oynamak için bir LED şerit aldım. Sonunda bu ruh hali ışıklarını yaptım. MQTT ile kontrol edilebilirler, bu da her türlü akıllıyı eklemeyi mümkün kılar.

Başka bir şeyiniz yoksa ve bir şeyler yapmak için ellerinizi kirletmek istiyorsanız, bu iyi bir hafta sonu projesidir.

Bu Eğitilebilir Yazının amacının projemi belgelemek ve fikirleri başkalarıyla paylaşmak olduğunu ve mutlaka sağlam talimatlar ve yöntemler sağlamak olmadığını unutmayın. Bununla birlikte, okumaya devam edin!

Gereçler

Elektronik:

  • 1x ESP32 geliştirme kartı
  • 1x 0.96" I2C OLED ekran
  • 1x Zil
  • 1x Varil jakı
  • 1x 12V güç kaynağı (akım şeridinizin uzunluğuna bağlıdır)
  • 1x LM2596 buck dönüştürücü
  • 1x Ortak anotlu RGB LED şerit
  • 3 adet IRFZ44N MOSFET
  • 3 adet BC547 transistör
  • 3x 10kΩ dirençler
  • 4x 100Ω dirençler
  • 1x prototipleme kurulu
  • 4x vidalı terminaller
  • Erkek ve dişi başlıklar
  • Tel (tek telli kullandım)

Diğer donanım ve araçlar:

  • Bir muhafaza için istediğiniz malzeme (MDF kullandım)
  • Dokunmatik kontaklar için düz, iletken malzeme (ince bir alüminyum levha kullandım)
  • Testereler, matkaplar, zımpara kağıdı vb.
  • havya ve arkadaşlar
  • Sıcak tutkal

Yerleşik bir OLED ekranlı bir ESP32'ye gitmemenizi şiddetle tavsiye ederim, çünkü bunun için kasanızda iyi hizalanmış bir kesim yapmak çok zorlaşıyor.

Adım 1: Elektronik

Elektronik
Elektronik
Elektronik
Elektronik

Ekli şema, dokunmatik girişler hariç tüm gerekli bağlantıları gösterir. Şemanın yetersiz olması durumunda bir MOSFET'in nasıl bağlanacağını gösteren nispeten belirsiz bir devre tahtası şeması da vardır.

Güç

Bir LM2596 buck dönüştürücü, ESP'nin VIN'i için güç kaynağından 12V'yi 5V'a düşürür. Güç kaynağınızın, kullandığınız LED şeridin uzunluğu için uygun şekilde derecelendirildiğinden emin olun. 2 metre uzunluğundaki şeridim 2 amperden biraz fazla çekiyor.

Pimler ve çevre birimleri

Dokunma girişleri için dört dokunmatik pim kullanılır. ESP32 kartım, I2C pinleri kablolu olan bir OLED ekran takılı olarak geldi. Bu, her bir renk bileşeni (kırmızı, yeşil ve mavi) için bir tane ve zil için bir tane olmak üzere dört PWM pini kullanır.

MOSFET karışıklıkları

MOSFET'ler, PWM ve nispeten yüksek akım için hızlı anahtarlama sürelerini idare etmek için seçildi. Her renk bileşeni için bir MOSFET vardır. ESP32'den gelen 3,3V dijital sinyaller MOSFET'lerin gerektiği kadar akım iletmesi için yeterli olmayabileceğinden, IRFZ44N'leri sürmek için bir çekme direnci ile birlikte ayrı NPN BJT'ler (BC547) kullandım. IRLZ44N gibi mantık düzeyinde MOSFET'ler var, ancak bunları ancak her şeyi lehimlemeyi bitirdikten sonra öğrendim. Her iki durumda da ~ 2A çizen şeridim iyi çalışıyor.

Lehimleme

LED şeridine bağlanmak için vidalı terminaller ve bir şeyleri sökmeden değiştirmek istemem durumunda ESP32'yi takmak için dişi başlıklar kullanılır. Lehimleme yaklaşık iki saat sürdü ve çok basitti. Ayrıca LED şeridime biraz daha uzun kablolar verdim.

Neden ESP32'yi seçtim?

Gemide WiFi ve Bluetooth var (şu anda yalnızca WiFi kullanmış olmama rağmen) ve kullanmak için can attığım bir tane vardı. Dokunmatik girişler, bir kontağa giden yalnızca bir kabloya ihtiyaç duyduklarından, denetleyicideki arabirim için de kullanışlı oldu. Yine de isterseniz, ESP32, ESP8266 gibi bir mikro denetleyici ile kolayca değiştirilebilir.

2. Adım: Kodlayın

Bunu programlamak için Arduino araç setini (aslında VS Kodu için Arduino uzantısı:)) kullandım. Henüz yapmadıysanız, ESP32 ve Arduino IDE'ye nasıl başlayacağınıza dair bunun gibi harika öğreticiler var.

İşlenecek dört farklı mod vardır: statik renk, rastgele renk, Kırmızı Uyarı ve Mavi Uyarı. Yukarı, aşağı, sonraki ve Kırmızı Uyarı için dört dokunmatik giriş vardır. Dokunma kesintileri kullanır.

WiFi üzerinden kontrol edebilmek için çalışmalara MQTT'yi de ekledim. Üç büyük web uygulaması (HTML, CSS, JS) hakkında bir fikir edinmeye çalışıyorum, bu yüzden ruh hali ışıklarını kontrol etmek için bir MQTT komisyoncusu ile iletişim kuran Star Trek temalı (ama oldukça çirkin) bir web sayfası tasarladım.

Tüm kodum, dosya adını bir indirim yapmak için değiştirmek isteyebileceğiniz hızlı bir referans sayfası ile birlikte ekte bulunabilir. Arduino ile açmadan önce tüm dosyaları "ESP32MQTTMoodLighting" isimli bir klasöre taşıyın.

Kodumun çalıştığını, ancak muhtemelen en iyisi olmadığını unutmayın. Ama bunun bir önemi yok, çünkü yine de kendin yazacaksın, değil mi?:)

Adım 3: Muhafaza ve Montaj

Muhafaza ve Montaj
Muhafaza ve Montaj
Muhafaza ve Montaj
Muhafaza ve Montaj
Muhafaza ve Montaj
Muhafaza ve Montaj
Muhafaza ve Montaj
Muhafaza ve Montaj

Kilitleme sırasında elime geçen tek malzeme 5 mm MDF idi. Büyük kesimleri normal bir demir testeresi ile yaptım ve her şeye iyi bir kum verdim. Ana hazırlığı bir çift kat emaye boya tamamladı.

Arka panel

Kutumun kolayca açılabilir olmasını istedim, bu yüzden tüm elektroniklerimi dört M2 PCB zıtlığı ile arka panele monte ettim. Perfboard'umda zaten M2 delikleri açılmıştı. Zıtlıklarımın alt kısmında MDF'ye sabitlemeyi düşündüğüm küçük dişli saplamalar vardı. Ama benim bir M2 matkap ucum yoktu. Bu yüzden, her bir deliğin konumunu işaretleyerek, delikleri manuel olarak oyarak çıkarmak için küçük bir düz başlı tornavida kullandım. Kaba ama etkili. Deliklerin çapları, ayırıcının dişli kısmından biraz daha küçüktü. Uçları birkaç kez deliklerden içeri ve dışarı büktüm, bu da onları genişletti ve neredeyse diş açtı.

Sonunda, zıtlıklar deliklerine sıkıca oturdu ve perfboard'u yerinde tuttu. MDF'm çok kalın olduğu için diğer tarafa hiçbir şey görünmüyordu.

Güç girişi için delik açtım ve vidalı terminallerimin bulunduğu yerin hemen altında LED şerit kablolarının geçmesi için bir yuva yaptım.

Ön panel

OLED Ekran Kesimi

OLED için kesme işlemime birkaç başlangıç deliği ile başladım ve boyutlarına göre dosyaladım. Sonunda çok hantal ve yanlış hizalanmış oldu. Ölçümlerin iki kez kontrol edilmemesi bunda bir rol oynamış olabilir, ancak yerleşik OLED'li bir geliştirme kartı kullanmayarak kendinizi biraz sorundan kurtarın. Ekranı sadece deliğinize monte etmek çok daha kolay.

bağlayıcı

Bazı erkek ve dişi başlıklardan bir konektör oluşturdum. Bir uç, ön paneldeki dokunmatik kontaklara bağlı tellere bağlıyken, diğer tarafta ESP'nin dokunmatik girişlerine giden teller vardı. Bu, lehim bağlantılarını bozmadan gerekirse ön panelin arkadan tamamen çıkarılabilmesi içindi. Ön panelinize başka bir şey takarsanız, bunun için de bir konektör yapmak isteyebilirsiniz.

Dokunmatik Yüzeyler

Dokunmatik kontaklar bir miktar alüminyum levhadan yapılmıştır. Gerekli dört yastığı elde etmek için kestim ve pürüzlü kenarların olmadığını doğruladım. Daha sonra ön panele bir tel için yeterince büyük delikler açtım. Lehimin pedlere yapışmasına izin vermek için, oksitlenmiş tabakayı çıkarmak için bir tarafın küçük bir kısmını zımpara kağıdı ile zımparaladım ve ardından herhangi bir partikülü çıkarmak için hızlı bir şekilde sildim. Her bir teli ön paneldeki ilgili delikten geçirerek her birini pedine lehimledim. Lehiminizin arkada çok büyük bir çıkıntı oluşturmadığından emin olun, çünkü bu, pedin panel ile aynı hizada oturmasına izin vermez.

Son olarak, her bir pedin arkasına biraz sıcak tutkal ekleyin ve bunları ön panele doğru itin. Çok fazla eklemek, pedlerin panelden kalkık oturmasına neden olur. Pedlerin altından dışarı itilmiş olabilecek fazla yapıştırıcıyı temizleyin.

Geri kalan

Yan paneller oldukça basittir. Vidalı terminallere hızlı erişim deliği, değerinden daha fazla sorundu. Yan panelleri ön panele sıcak yapıştırdım.

İki kenardaki cırt cırt, ön kısmı arka panele tutar. Boşluklar, buzzer'ın sesinin kaçmasına izin verir. Benden daha iyi bir iş çıkarırsan, 5 yaşındaki bir okul öncesi zanaatına benzeyen bir şeyle bitmemelisin:)

LED şeridimin yapışkan bir sırtı vardı (eminim sizinki de öyle). Işık duvardan dağılacak şekilde benimkini monte ettim.

Adım 4: Takın

Takın!
Takın!

Artık tam bir MQTT kontrollü ruh hali ışığına sahip olmalısınız. Benimkini, bazen monoton işlere renk kattığı masama monte ettim. Gece, insanları etkilemek için ideal bir zamandır.

Umarım bu Eğitilebilir Yazıyı okumaktan zevk almışsınızdır ve kendi projeleriniz için birkaç fikriniz vardır. Daha önce de belirttiğim gibi, ben acemiyim ve bu benim ilk Eğitilebilir Dersim. Herhangi bir ipucu ve yorum için minnettar olurum.

Önerilen: