
Peter Holmes
0
3401
749
Son birkaç hafta boyunca, Technophilia Podcast'in canlı yayını sırasında stüdyomdaki ortam aydınlatmasının kontrolünü izleyicilere verdim - bunun sonuçlarını kaydedilen bölümde görebilirsiniz. Bugün, bunu nasıl başardığımı tam olarak açıklayacağımı düşündüm. JavaScript, İşleme, ve bir Arduino. Taslak edeceğim yöntem, Arduino'nuz için bir Ethernet kalkanı gerektirmez ve ayrıca kullanmanız için tam kod örnekleri de vereceğim..
Gereksinimler:
- Arduino
- Arduino'da uygun devreyi kontrol etmek için yanar; ortam aydınlatması eğitimini gör Medya Merkezi İçin Kendi Dinamik Ortam Aydınlatmasını Oluşturun Bir Medya Merkezi için Kendi Dinamik Ortam Aydınlatmasını Oluşturun PC'nizde veya medya merkezinizde çok fazla film izlerseniz, aydınlatma ikilemiyle karşı karşıya olduğunuza eminim ; tüm ışıkları tamamen kapatıyor musunuz? Onları tamamen patlatıyor musunuz? Veya… geçen haftadan devre şeması ve bileşenlerin bozulması için.
- PC veya Mac'inizde yazılım işleme
- Web sitesi barındırma Web Sitesi Barındırma Çeşitli Formları Açıklaması [Teknoloji Açıklaması] Web Sitesi Barındırma Çeşitli Formları Açıklaması [Teknoloji Açıklaması]
- JavaScript ve PHP ile temel kodlama becerileri, ancak özelleştirebileceğiniz tam kodu vereceğim.
Arduino Kurulumu
Öncelikle, şeylerin Arduino tarafı için son haftalara bakın. Bir Medya Merkezi için Kendi Dinamik Ortam Aydınlatmasını Yaratın Bir Medya Merkezi için Kendi Dinamik Ortam Aydınlatmasını Oluşturun PC veya medya merkezinde çok fazla film izlerseniz, ben aydınlatma ikilemiyle karşı karşıya olduğunuzdan eminim; tüm ışıkları tamamen kapatıyor musunuz? Onları tamamen patlatıyor musunuz? Veya…; Kullanacağımız kod aynıdır, çünkü aynı RGB LED şerit kontrol devresini kullanıyorum, bu yüzden burada tekrar etmeyeceğim. Özetlemek gerekirse, Arduino USB seri bağlantıdan bilgisayara RGB değerlerini okuyacak.
İşleme uygulaması
Kullanacağımız İşleme uygulaması çok basittir (PASTEBIN); basit kullanır loadStrings () Uzak bir web adresinde saklanan bir metin dosyasını okuma fonksiyonu - bu durumda kullandım http://jamesbruce.me/lights/LED.txt. Bunu test etmek için web sunucunuzda bir örnek metin dosyası oluşturun ve buna göre ayarlama yapın. Metin dosyası, R, G ve B için sadece 3 satır değerden oluşmalıdır.. Seri bağlantı noktasını USB bağlantınız ne olursa olsun ile değiştirmeniz gerekecektir. Daha önce olduğu gibi, uygulamanın yapacağı ilk şey konsola seri bağlantı noktalarının bir listesini çıkarmaktır - bunu doğru olanın kullanıp kullanmadığını kontrol edin, sonra yeniden çalıştırın. Arduino LED şeridiniz, metin dosyasına eklediğiniz rastgele değerler ile aydınlanmalıdır..
Arduino Web Kontrolü
Web kontrol tarafında Spectrum adında basit bir renk seçici jQuery eklentisini seçtim; Dışarıda başkaları da var, ama bunun gerektiği kadar basit olduğunu ve bir mobil cihazda dokunuşla çalıştığını hissettim, ama denedim diğerleri. Yerleştirin spectrum.js ve spectrum.css her şeyle aynı dizindeki dosyalar (Her şeyi temiz tutmak için sunucumda / lights alt dizinini oluşturdum). Hem web kontrolünü görüntülemek için PHP'yi kullanacağız hem de LED.txt POST isteğinde değişkenler verilirse dosya yazma. Kullanıcı bu sayfayı ziyaret ettiğinde ve bir renk seçtiğinde, renk değişkenlerini kendisine geri gönderen bir AJAX isteği gönderir. Bu, tek bir dosyada bulunan her şeyi tutar. PHP / HTML'nin tamamı bu pastebin'de bulunabilir (olarak kaydedin index.php diğer dosyalar ile birlikte bir alt dizinde), ama ilgili kodun kısa bir özetini vereyim..
- PHP: 'Colors' adında bir post değişkeni olup olmadığını tespit edin. Eğer öyleyse, LED.txt dosyasını yazmak için açın ve post değişkenleriyle üzerine yazın.
- HTML: İçe Aktar jQuery, Spectrum.js, ve Spectrum.css
- JavaScript: getRGB işlevi, çeşitli farklı CSS renk formatları verilen, virgülle ayrılmış RGB değerleri dizisini döndürür. #aaaaa.
- JavaScript: Spectrum kontrolünü yarat ve seçilen renge değiştirilen olaya bir AJAX çağrısı ekle. AJAX bu işleyici dosyasını kontrol tarafından verilen RGB değerleriyle çağırır..
Sonunda, emin olun LED.txt dosya sunucu tarafından yazılabilir. bir 655 veya 777 izin yapmalı. Dosyayı başlatın ve bir başlangıç yapın; İşleme uygulamasının çalışıyor olması ve dosyayı her saniye yenileyeceği gerekir. Renk seçici sayfada bile görünmüyorsa, hatalar için JavaScript konsolunu kontrol edin.
Tuzaklar ve Ek Çalışmalar
Bahsettiğim gibi, bu yöntem bilerek bir Ethernet kalkanı kullanmıyordu, bu yüzden temel web sitesi barındırma yapan herkes çok hızlı ve ucuz bir şekilde ayarlayabilirdi. Ancak, bunun anlamı Verileri almak için bir ağ geçidi görevi görmek için İşleme uygulamasını kullanmamız gerektiği anlamına gelir; PC çalışırken, sadece işe yaramaz. Bir Ethernet veya WiFi kalkanı eklendiğinde, Arduino'yu bir PC'ye bağlı olmadan herhangi bir yere taşıyabilir ve komutları uzaktan alabilir ya da küçük bir port yönlendirme ile doğrudan Arduino'ya itebiliriz. Bunu başka bir gün ele alacağım. Aynı zamanda bir eşzamanlılık sorunu da var - biz onu kurma şeklimiz, birisi yeni bir renk seçtiğinde dosyanın üzerine yazılmış olması ve renk değişimleri arasındaki gecikmeye İşleme kodunda karar verilmesi. Rengi sürekli olarak ayarlayan çok sayıda kullanıcının olmasını istiyorsanız, veritabanına sahip bir sıraya alınmış sistem daha uygun olabilir; Değerleri saklamak için düz bir dosya kullanmak, güncellemeler dosyayı yenilediğimizden daha sık meydana gelirse bazı değişikliklerin göz ardı edilmesine neden olabilir. Tabii ki, canlı yayınımızı izlemiyorsanız, o zaman doğru çalıştığını bile bilmiyorsunuz. İdeal olarak, kontrol sayfasına yerleştirilmiş ve yerleştirilmiş bir web kamerası olacaktır. Bir teknoloji demosu olarak, bunun oldukça harika olduğunu düşünüyorum; Bir Arduino üzerinden internet üzerinden herhangi bir şeyin uzaktan kontrol edilme potansiyelini görmeyi umuyorum. Justin kontrolümü teslim etmemizi önerdi fırın; Reddettim. Bunun size yardımcı olabileceğini düşündüğünüz ilginç projeleriniz var mı??