İçindekiler:
Video: ESP32 ile MQTT Mood Lights: 4 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:16
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
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
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
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:
Uno ile ESP8266 WeMos D1 R1 Wifi İşlemci Kullanarak ESP32-Cam ile Görüntü Yakalama ve Gönderme: 7 Adım
ESP8266 WeMos D1 R1 Uno ile Wifi İşlemci Kullanarak ESP32-Cam ile Görüntü Yakalayın ve Gönderin: Uno ile ESP8266 WeMos D1 R1 WiFI İşlemci kullanarak ESP32-Cam (OV2640) kullanarak görüntü yakalayın ve e-postaya gönderin, Google Drive'a kaydedin ve gönderin Twilio'yu kullanan Whatsapp.Requirements: Uno'lu ESP8266 WeMos D1 R1 WiFI İşlemci (https://protosupplies
Shadow Light Box - Arduino ile IR Uzaktan Kumanda ile Kontrol: 8 Adım (Resimlerle)
Gölge Işık Kutusu - Arduino ile IR Uzaktan Kumanda ile Kontrol: Bu talimat, bir sonraki Noel için gölge ışık kutusunun nasıl yapılacağına rehberlik edecektir. Kendi odanızı dekore edebilir veya arkadaşınıza hediye olarak yapabilirsiniz. Bu gölge kutusu, Kırmızı, Mavi, Yeşil renklerle karıştırarak çeşitli renkler yapabilir
MicroPython ile SSD1306 Oled ile ESP32 Arayüzü: 5 Adım
MicroPython ile SSD1306 Oled ile ESP32 Arayüzü: Micropython, python'un optimize edilmiş ve python'un küçük ayak izidir. Bu, bellek kısıtlamaları ve düşük güç tüketimi olan gömülü cihaz için inşa etmek anlamına geliyordu. Micropython, ESP8266, ESP32, Ardui'yi içeren birçok denetleyici ailesi için kullanılabilir
ESP32 ile PWM - Arduino IDE ile ESP 32'de PWM ile LED Karartma: 6 Adım
ESP32 ile PWM | Arduino IDE ile ESP 32'de PWM ile LED Karartma: Bu talimatta Arduino IDE & PWM temel olarak herhangi bir MCU'dan analog çıkış üretmek için kullanılır ve bu analog çıkış 0V ile 3.3V (esp32 durumunda) arasında herhangi bir şey olabilir & itibaren
Mood Projektörü (GSR ile Hacklenmiş Philips Hue Light) TfCD: 7 Adım (Resimlerle)
Mood Projektörü (GSR ile Hacklenmiş Philips Hue Light) TfCD: Laura Ahsmann & Maaike Weber Amaç: Düşük ruh halleri ve stres, modern hızlı yaşamın büyük bir parçasıdır. Aynı zamanda dışarıdan görünmeyen bir şeydir. Ya stres seviyemizi hem görsel hem de işitsel olarak yansıtabilseydik