NodeMCU ile Bilgisayarınıza Wi-Fi Kontrollü Aydınlatma ekleyin

  • Joseph Goodman
  • 0
  • 2771
  • 565
reklâm

Masaüstü PC kuleleri, masaların altına gizlenmiş gri plastik kulelerden bu yana uzun bir yol kat etti. Farklı işlevleri yerine getiren kasaların yanı sıra, PC kasaları estetik hissi geliştirdi, cam paneller bileşenleri gururla göstermeye başladı ve gururlu ineklerin masasında merkezi bir sahneye çıkan güçlü fütüristik tasarımlar yaptı..

LED kurulumları daha da yaygınlaşıyor. Basit 12 v RGB şerit metre başına 1 $ kadar düşük bir fiyata satın alınabilir ve bir kasanın içini (neredeyse başka bir şeyle birlikte) mükemmel bir şekilde aydınlatabilir.

Ancak, bundan biraz daha özel bir şey yapmak istiyoruz! Bugün Wi-Fi kontrollü kasa aydınlatması oluşturmak için özel olarak Pixel LED'ler kullanacağız. Eğer o zaman o (IFTTT) bildirimleri. Tüm bu sistem kulenin içinde bulunan ve tamamen kendi kendine yeten bir yedek Molex konektörü kullanılarak desteklenmektedir. Hepsinden iyisi, tüm bu proje yapmak 10 $ altında maliyeti.

Bu öğretici aşağıdaki video formunda mevcuttur veya yazılı sürüm için okumaya devam eder.

Beyinli Işıklar

Bu proje için ayrı ayrı adreslenebilir LED'ler kullanacağız. Bazen olarak bilinir Neopixels, Aralarından seçim yapabileceğiniz çeşitli modeller vardır. Burada kullanılan LED'ler bir WS2812B şerit, metre başına yaklaşık 4 ABD doları karşılığında alınabilir.

Kullanacağız NodeMCU onları kontrol etmek için tahta. Arduino uyumlu herhangi bir anakartı Wi-Fi ile kullanabilseniz de, NodeMCU bizim Arduino katili olarak en çok tercih edilen Arduino Katiliyle tanışın: ESP8266 Arduino Katiliyle tanışın: ESP8266 Size bir Arduino uyumlu aygıt kurulu olduğunu söylersem dahili Wi-Fi 10 doların altındaki fiyatlarda mı? Peki, var. .

Neye ihtiyacın var

  1. 1 x 5v Piksel LED şerit, Neopixel / WS2811 / 12 / 12B
  2. 1 x NodeMCU (AliExpress'te $ 3)
  3. 1 x 220-500 Ohm direnç
  4. 1 x 100-1000 mikroFarad kapasitör
  5. 1 x Geçiş anahtarı veya devre kesici
  6. 1 x Dişi Molex konektörü
  7. 1 x Breadboard
  8. 1 x 5v güç kaynağı (test için)
  9. 1 x Proto-board ve tel (devreyi kurmak için)
  10. Çeşitli bağlantı telleri
  11. Havya ve lehim

Bu listede sıra dışı olan tek şey Molex konnektör. Bugünlerde pek çok bilgisayar sahibi, binalarında bir CD sürücüsü kullanmıyor, ancak güç kaynakları hala onlar için bağlantı sağlıyor. Bu yedek güç hatlarını kendi avantajımız için kullanabiliriz. Dişi konektörümü eski bir disk sürücüsünden kurtardım, ancak 0,30 $ kadar az bir miktar mevcut olsa da.

Devrenizi oluşturun

Bizim durumumuzda gereksiz yere dolaşmaktan kaçınmak için kurulumumuzu harici bir güç kaynağı kullanarak test edeceğiz. Breadboard'unuzu bu şekilde ayarlayın.

Bu tür LED'leri ilk kez ayarlarsanız, bu şeritleri ilk önce Arduino ile kullanmak için derinlemesine kılavuzumuza göz atmanızı öneririm..

Anahtar basitçe NodeMCU’yu devreden keser. Bu yapımda aslında anahtarın yerine basit bir devre kesici kullanacağım. İşlevi tahtanın yalıtımını yapmamıza izin vermek VIN USB ile bağlıyken sabitleyin. LED'lerimizin çekeceği güç miktarı nispeten küçük olsa da, USB üzerinden çok fazla güç çekmekten kaçınmak iyi bir uygulamadır.

Breadboard'unuz kurulduktan sonra şöyle görünmelidir:

Benim örneğimde, kondansatör ve direnç, eskiden bir projeden kurtarıldığı için halihazırda protokoldür, ancak devre tamamen aynıdır.

Şimdi donanıma sahip olduğumuza göre kodumuzu oluşturalım..

Operasyonun Beyinleri

Arduino IDE'yi kullanarak NodeMCU'nuzu kodlayacaksınız. Bu örnekte, iki işlem modu, bir ana açma / kapama düğmesi ve bir e-posta alındığında bir bildirim sinyali oluşturacağız. İnternette Nesnelerin İnterneti cihazlarının yönetim kurulu ile iletişim kurması için bir web hizmeti olan Blynk'i kullanacağız..

Blynk tanıtım makalemize göz attığınızdan emin olun Blynk ile Başlarken: Basit DIY IoT Cihazları Blynk ile Başlarken: Basit DIY IoT Cihazları Blynk, cihazlarınızdan uzaktan kumanda ve sensör verilerini okumak için tasarlanmış bir Nesnelerin İnterneti (IoT) hizmetidir. mümkün olduğunca hızlı ve kolaydır. eğer daha önce hiç kullanmadıysanız.

Blynk uygulamasında, yeni bir proje oluşturun ve panonuz olarak NodeMCU'yu seçin. Blynk'e kayıtlı e-posta adresinize bir yetkilendirme kodu gönderilecektir. Eklemek 3 düğme ve 3 sürgü.

Bu düğmeler ve sürgülerin, Sanal Pim V0-V5'e değer gönderecek şekilde ayarlanması gerekir. “Ölçek” düğmesi şimdilik e-posta bildirimimizi test edecek. Diğer iki düğmeyi etiketleyin Güç ve Otomatik / Manuel ya da benzer bir şey, ve üç sürgü Kırmızı, Yeşil, ve Mavi.

Şimdi Arduino IDE'yi açın. Bu proje için Blynk ve FastLED kütüphanelerine ihtiyacınız olacak, bu yüzden her ikisinin de kurulu olduğundan emin olun. Arduino IDE ile yeni başlıyorsanız, Arduino yeni başlayanlar için kılavuzumuza göz atın Arduino ile Başlarken: Yeni Başlayanlar Kılavuzu Arduino ile Başlarken: Yeni Başlayanlar Kılavuzu Arduino, esnek, kullanımı kolay, temel alan açık kaynaklı bir elektronik prototip platformudur. donanım ve yazılım. Sanatçılar, tasarımcılar, hobiler ve etkileşimli nesneler veya ortamlar yaratmak isteyen herkes için hazırlanmıştır.. .

Kodun tamamını burada parçalara ayıracağız, ancak tam kodu indirmeyi tercih ederseniz, GitHub'da bulabilirsiniz..

Bunu yapmaya karar verirseniz, kendi Wi-Fi ayrıntılarınızı, yetki kodunuzu ve ilgili NodeMCU pinini ve LED'lerin sayısını komut dosyasına eklemeyi unutmayın. Programlamaya yeni başlıyorsanız, her bölümün nasıl çalıştığını öğrenmek için sıfırdan baştan başlayacağım. Bu, kodlama ile başa çıkmanın birçok yolundan biridir. Tüm Stressiz Programlama Nasıl Öğrenilir Tüm Stressiz Programlama Nasıl Öğrenilir Belki de bir kariyer ya da hobi olarak programlama yapmaya karar verdiniz. Harika! Ama belki bunalmış hissetmeye başladın. Çok iyi değil. İşte yolculuğunuzu kolaylaştırmak için yardım. .

Yeni bir çizim oluşturun ve uygun bir isimle kaydedin. Doğru kartı ve bağlantı noktasını seçtiğinizden emin olun. Araçlar > Yazı tahtası ve Araçlar > Liman menüler. İlgili Blynk ve FastLED ad alanlarını dahil ederek başlayın:

#define BLYNK_PRINT Seri #include #include #include "FastLED.h"

Sonra, FastLED için bazı tanımlar ekleyin:

// --- FastLED tanımları ve CRGB --- # tanımlayın LED_PIN 3 // RGB LED'ler için GPIO pin. #define NUM_LEDS 44 // Bağlı LED sayısı. #define BRIGHTNESS 64 // Varsayılan LED parlaklığı. #define LED_TYPE WS2812B #define COLOR_ORDER GRB CRGB ledleri [NUM_LEDS];

Daha sonra, RGB değerlerimiz, Otomatik / Manuel modumuz ve ana şalterimiz için değişkenler ilan edeceğiz. Ayrıca, daha sonra kullanacağımız FastLED ön ayarının gerektirdiği temel renk için bir değer ekleriz..

// --- RGB değerlerimiz için değişkenler (0-1023) --- int r = 500; int g = 500; int b = 500; // --- Açık / Kapalı ve Otomatik / Manuel geçiş değişkenleri int masterSwitch = 1; int autoMode = 1; // --- int / byte otomatik ton artışı için --- uint8_t gHue = 0; // birçok model tarafından kullanılan "temel renk" döndürme 

Blynk ayrıntılarınızı eklerken, kendi Wi-Fi ayrıntılarınızı buraya girdiğinizden emin olun:

// --- Blynk auth kodu ve wifi ayrıntıları --- char auth [] = "YourAuthCode"; // Blynk yetkilendirmesi char ssid [] = "YourWifiName"; char pass [] = "YourWifiPassword";

LED'lerimizi FastLED'e eklemek için Setup fonksiyonumuzu kullanıyoruz ve Blynk ile iletişim kuruyoruz.

geçersiz kurulum () // başlatma güvenlik gecikmesi gecikmesi (3000); Serial.begin (9600); // --- LED'leri FastLED'e ekleyin ve parlaklığı ayarlayın --- FastLED.addLeds (ledler, NUM_LEDS) .setCorrection (TypicalSMD5050); FastLED.setBrightness (parlaklık); #define FRAMES_PER_SECOND 120 // --- Blynk sunucusu ile iletişime başla --- Blynk.begin (auth, ssid, pass); 

Hangi modda olduğunuza bağlı olarak farklı şeyler yapmak için Döngü işlevinizdeki if-ifadelerini kullanın..

void loop () Blynk.run (); if (masterSwitch == 0) için (int i = 0; i < NUM_LEDS; i++)  leds[i] = CRGB::Black; FastLED.show(); delay(30);   if(autoMode == 0 && masterSwitch == 1)  for (int i = 0; i < NUM_LEDS; i++) leds[i] = CRGB(r, g, b); FastLED.show(); delay(30);   if(autoMode == 1 && masterSwitch == 1)  fill_rainbow( leds, NUM_LEDS, gHue, 7); // send the 'leds' array out to the actual LED strip FastLED.show(); // insert a delay to keep the framerate modest FastLED.delay(1000/FRAMES_PER_SECOND); EVERY_N_MILLISECONDS(20)  gHue++; // slowly cycle the "base color" through the rainbow   

Şimdi kullan BLYNK_WRITE Blynk uygulamasında seçtiğinize bağlı olarak bu değişkenleri değiştirme işlevleri:

// --- Master Açık / Kapalı --- BLYNK_WRITE (V0) masterSwitch = param.asInt ();  // --- Kırmızı kaydırıcı değeri --- BLYNK_WRITE (V1) r = param.asInt ();  // --- Yeşil kaydırıcı değeri --- BLYNK_WRITE (V2) g = param.asInt ();  // --- Mavi kaydırıcı değeri --- BLYNK_WRITE (V3) b = param.asInt ();  // --- Otomatik / Manuel Moduna Geçiş --- BLYNK_WRITE (V4) autoMode = param.asInt (); 

Son olarak, tekrarlanan bir kırmızı ışık dizisinin e-posta bildiriminiz olarak kullanılmasına neden olan bir işlev yapın. Bu, başka ne olursa olsun tetiklemek için tasarlanmıştır, yani ışıklar şu anda kapalı olsa bile her zaman bildirim alacaksınız.

// --- E-posta bildirim ışığı --- BLYNK_WRITE (V5) int g = param.asInt (); eğer (g == 1) için (int a = 0; a < 10 ; a++)  for (int i = 0; i< NUM_LEDS; i++)  leds[i] = CRGB(1023, 0, 0); FastLED.show(); delay(10); FastLED.clear(); delay(10);     

Bu tam kodu yerine getirdikten sonra, NodeMCU’yu devreden izole etmek için anahtar / devre kesiciyi kullanın ve USB üzerinden takın. Krokiyi panoya yükleyin. Yüklendikten sonra, USB kablosunu çıkarın ve 5v güç kaynağınızı bağlayın. Hepsi iyi durumda olan LED şerit otomatik modda başlatılmalıdır; fill_rainbow FastLED'den gelen mod. Test düğmesini kullanarak bildirim sinyalini test edebilirsiniz..

Burada görebileceğiniz gibi, LED'imi kabuğumun yanına koydum, böylece kaç kişiye ihtiyacım olacağını biliyordum. Benim durumum 44 idi, mini kuleyi kullansam da, çok daha fazlasını kullanabilirsin. Kullandığınız LED'lerin gücünü ve bilgisayarınızın güç kaynağının ne kadarını sağlayabildiğinden emin olmanız yeterli.

IFTTT'yi Yapılandırma

Kullanacağız IFTTT'nin Gmail entegrasyonu bildirim dizimizi tetiklemek için. IFTTT'yi daha önce hiç kullanmadıysanız, en sevdiğiniz web uygulamalarını otomatik hale getirme yöntemlerine hayret edersiniz Şunu Yaptıktan Sonra: Bağlanın ve En Sevdiğiniz Web Uygulamalarının Her İkisini Bağlayın Yapın Favori Web Uygulamalarınızdan Her İkisi Favori web uygulamalarınızdan ikisini yaratıcı yöntemlerle bağlayın. Uygulamanın yaratıcısı Linden Tibbets'e göre bir çeşit "dijital koli bandı", Eger O Sonra Bu (ifttt) yeni amaçlar bulmanızı sağlar… .

Yeni bir uygulama ayarla. İçin “Bu”, seçmek Gelen kutusundaki herhangi bir yeni e-posta -den Gmail kanal. İçin “o”, seçmek Maker Web Kancaları ve Web isteği yap.

URL bölümü, bildirim pinimizi çağırdığımız yer. Projenizle çalışmak için URL’yi değiştirmeniz gerekecektir. Formatı http: // BlynkIpAddress / YourAuthCode / pim / V5. Blynk ip'i yazarak bulabilirsiniz. ping blynk-cloud.com komut isteminde.

Seçmek KOYMAK olarak Yöntem, ve uygulama / json olarak İçerik türü. Sonunda ekle [“1”] -e Vücut bölümünde, ardından Eylem Oluştur.

Şimdi, IFTTT ile ilişkili Gmail adresinin gelen kutusuna bir e-posta geldiğinde, bir “1” Blynk sunucusundaki Sanal Pim 5’e ileti göndererek bildirimimizi tetikler. Test etmek için kendinize bir e-posta göndermeyi deneyin. Sabırlı olun, IFTTT biraz zaman alabilir!

Şimdi isterseniz Blynk uygulamanızdaki Test düğmesinden kurtulabilirsiniz.

Hepsini bir araya koy

Artık her şeyi test ettik, artık donanımımızı tamamlama ve yükleme zamanı. Projenizi breadboard'dan protokole yerleştirin. Lehimleme konusunda yeniyseniz ve birkaç ipucu arıyorsanız, lehimleme kılavuzumuzu inceleyin. Lehimlemeyi Öğrenin, Bu Basit İpuçları ve Projeler ile Lehimlemeyi Öğrenin, Bu Basit İpuçları ve Projeler ile Düşünceyi biraz korkutuyorsunuz. Sıcak demir ve erimiş metal Elektronikle çalışmaya başlamak istiyorsanız, lehim yapmayı öğrenmeniz gerekecektir. Bize yardım edelim. .

Molex konektörünüzü panele takmadan önce, hangi pimleri kullanacağınızı not edin. PC'nizin güç kaynağından gelen erkek konektörün dört kablosu olacaktır. İki siyah kablo ortak topraklama kablolarıdır, sarı kablo + 12v ve kırmızı + 5v'dir. Dişi konnektörün karşılık gelen pimlerini karta taktığınızdan emin olun. Kartımı ve LED'leri yanlışlıkla kızartmamak için sadece iki pim takmayı seçtim!

DuPont kabloları anakartımla LED'ler arasına takmaya karar verdim, böylece PC kasasının tarafı hala protokartı çıkarmadan tamamen çıkarılabilir. LED'lerinizi kasanın üzerine koymanızı ve başlamak için bantla sabitlemenizi, sadece kasanın içine tam oturduklarını kontrol etmelerini öneririm..

Not: LED şeritlerinizi birlikte lehimlendiriyorsanız, Veri hatlarının hepsinin aynı yönde akması gerekir. Bu şerit üzerinde belirtilecektir..

Son olarak proto-panonuzu PC kulenize yerleştirin. Bu benim için geçici bir yapı olduğundan, tahtanın arkasını yalıtmayı ve kasamın arkasına bağlamayı seçtim. Ancak tahtayı takmaya karar verirsiniz, herhangi bir kısa devreye neden olmamaya dikkat edin ve dahili bileşenlerde statik elektrikten kaynaklanan tehlikeye karşı dikkatli olun.

aydın

Her şey yolunda, otomatik e-posta bildirimleriyle tamamen işlevsel bir Wi-Fi ile çalışan ışığa sahip olmalısınız. Artık bu sistemi devreye soktuğunuza göre, NodeMCU'nuzu USB üzerinden güvenli bir şekilde takmak ve kodu değiştirmek için anakarttaki kill düğmesini kullanabilirsiniz. IFTTT ile entegre başka bir bildirim eklemeyi deneyebilir (örneğin Twitter veya Facebook'ta bahsettiğim mavi ışık) veya ışıklarınızı biraz hareketlendirmek için FastLED kütüphanesinde özel ayarlarla deneyler yapabilirsiniz.

Bilgisayar kulenize LEDler yerleştirdiniz mi? Onlar için harika bir otomasyon kurdunuz mu? Aşağıdaki yorum bölümünde projelerinizi ve planlarınızı bize bildirin.!

Resim Kredisi: David Brown / Flickr




Henüz no comments

Modern teknoloji hakkında basit ve uygun fiyatlı.
Modern teknoloji dünyasında rehberiniz. Her gün bizi çevreleyen teknolojileri ve araçları nasıl kullanacağınızı ve Internet'te ilginç şeyleri nasıl keşfedeceğinizi öğrenin.