İçindekiler:
- Adım 1: Bu Projeyi Oluşturmak İçin Neye İhtiyacınız Var?
- Adım 2: Kutu ve Değnek
- Adım 3: İçerideki Donanım
- 4. Adım: Yazılım
Video: Hue Magic: 4 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Hoş geldiniz sihirbazlar!
Birkaç ay önce 3 yaşındaki oğlum için asalı küçük bir sihirli kutu yaptım. Asa ile kutuya dokunduğunda, kutudan değişen renkli bir ışık yayılmaya başlayacaktır. Özellikle sevdiği bir renk gördüğünde, asasını masa lambasına doğrultabilir (içinde Philips Hue ampul varken), büyü yapabilir ve kutudaki renk sihirli bir şekilde lambaya sıçrayacaktır! Kutudan çıkan lamba ve ışık birdenbire aynı renge büründü…
Birkaç saniye sonra renk kaybolur ve masa lambası büyüden önceki durumuna döner. Yeni bir büyü yapılana kadar…
Adım 1: Bu Projeyi Oluşturmak İçin Neye İhtiyacınız Var?
Bu projeyi oluşturmak için aşağıdaki malzemelere ihtiyacınız olacak:
- 1 (veya daha fazla) Philips Hue renkli ampul ve bir Hue Bridge
- 1 Wemos D1 mini veya benzeri esp8266 tabanlı mikro denetleyici
- 1 (Arduino) dokunmatik sensör (ör. TTP223R)
- 1 (Arduino) anlık düğmesi
- 1 10uF kapasitör
- 1 RGB led (ortak anot tipi)
- 5 direnç (10, 22 ve 47 Ohm, 2x 10K Ohm)
- 2 küçük prototipleme PCB'si (2x3 inç veya yaklaşık 5x7 cm yeterince büyük olmalıdır)
- bazı (jumper) teller
- bir havya
- sihirli bir değnek (bir oyuncakçıdan hazır olarak satın alınabilir veya kendiniz yapabilirsiniz)
- karton veya tahtadan yapılmış küçük bir kutu (mevcut bir kutu olabilir, ancak elbette sıfırdan bir kutu da yapabilirsiniz)
- biraz bant
- PCB'leri kutuya monte etmek için bir miktar yapıştırıcı ve/veya somun ve cıvata.
- isteğe bağlı: kutu için ambalaj kağıdı
Not: Bu talimattan geçerken devre şemalarını okuma konusunda biraz deneyim yardımcı olur. Diyagramım aşırı karmaşık değil: bir kapasitörü bir dirençten ayırt edebiliyorsanız, muhtemelen iyi olacaksınız.
Arduino IDE kullanarak Arduino programlama ile ilgili bazı deneyimler de yararlıdır. Kopyalamak/yapıştırmak için tam kodu sağlayacağım için temel deneyim yeterli olacaktır. Ancak, kendi kurulumunuzda çalışması için birkaç şeyi uyarlamanız gerekecek (ör. ağ ayarlarınız ve Hue yapılandırmanızdan bazı ayrıntılar). Bu kulağa biraz korkutucu geliyorsa, endişelenme, ihtiyacın olan tüm bilgileri almana yardım edeceğim.
Adım 2: Kutu ve Değnek
İlk adımlar normalde en zor olanıdır, ancak bu talimatta değil! Kolay bir başlangıç için, bir oyuncakçıdan sihirli bir değnek satın alabilir ve kutu için zaten ortalıkta duran mevcut küçük bir kutuyu yeniden kullanabilirsiniz. Sadece kutunun metalden yapılmadığından emin olun, çünkü bu wifi sinyallerini engelleyecektir ve sihir için bunlara ihtiyacımız var;-).
Mevcut bir kutuyu yeniden amaçladığınızda, yapmanız gereken tek şey kutunun üst kısmında iki delik açmaktır: RGB led için 1 küçük delik (boyut 5mm = 0,2") ve daha büyük bir delik (yaklaşık 12- Dokunmatik sensör için 14 mm veya yaklaşık 0,5").
Deliklerin tam olarak yerleştirilmesi kritik değildir, sadece estetik anlayışınıza göre yerleştirin, ancak birkaç şeyi aklınızda bulundurun:
- Deliklerin altına monte edilecek bileşenlerin (RGB led ve dokunmatik sensör) montaj ve kablolama için yeterli alan kaplamasına izin verildiğinden emin olmak için her iki delik arasında biraz mesafe bırakın.
- En büyük delik dokunmatik sensör içindir. Bu sensör, değnek tarafından dokunulabilecek (ve hatta hafifçe bastırılabilecek) şekilde deliğin hemen altına monte edilecektir. Bu yüzden satın aldığınız asanın çok kalın olmamasına dikkat edin!
İsteğe bağlı olarak kutunuzu biraz daha güzelleştirmek ve yiyecek dökülmelerinden ve kirli ellerden korumak için (sprey) boya veya ambalaj kağıdı ve plastik kaplayabilirsiniz.
Bu ilk adım beğeninize göre biraz fazla iddiasızsa, lütfen devam edin ve bir kutu oluşturun ve tamamen sıfırdan asa! Güzel bir asa yaratmanıza yardımcı olacak birkaç talimat var.
Hangi yolu seçerseniz seçin, şimdi kutunun içini keşfetme zamanı.
Adım 3: İçerideki Donanım
Elektronik bileşenleri yukarıdaki devre şemasına göre bağlamak için bir havya kullanın. Özellikle dikkat edilmesi gereken birkaç şey var:
- Wemos D1 Mini ile RGB led arasındaki kablolar, RGB led'in kutunun kapağında yaptığınız deliğe monte edilebilmesi için yeterince uzun olmalıdır.
- Kapaktaki diğer delikten erişilebilir olması gerektiğinden, anlık anahtara ve dokunma sensörüne bağlı teller için aynı sayılır.
- Anlık anahtarın düğmesi, dokunmatik sensörün alt tarafına (hassas olmayan tarafa), dokunmatik sensör üste yapıştırılmış haldeyken düğmeyi tekrar anlık anahtarın üzerine koyabileceğiniz şekilde yapıştırılmalıdır (resme bakın). Dokunma sensörü, bir parmakla yapılan düğmeye basıldığını algılamak için anlık anahtarın üstüne monte edilmiştir, bu durumda düğmeye basılması göz ardı edilecektir. Sadece sihirli değnek tarafından düğmeye basıldığında (iletken olmaması gerekir, bu nedenle plastik ve ahşap iyidir), sihirli döngü başlayacaktır.
- Sihri harekete geçirmek için sihirli değnek tarafından erişilebilir olması gerektiğinden, dokunmatik sensörlü anlık düğmeyi kapaktaki deliğin çok derin altına olmayacak şekilde üste monte edin.
- Lehimlerken kapasitörün polaritesini gözlemlediğinizden emin olun. Pozitif ve negatif uçları tersine çevirirseniz, kapasitör muhtemelen sihirli bir duman yayar ve devrenizi sonsuz bir uykuya sokar.
- Pil tutucuyu ve PCB'leri yerine yapıştırın, bantlayın veya vidalayın. Görünürde olmayacağı için düzgün olması gerekmez. Sadece düşmeye dayanıklı olmalı.
Yazılıma geç!
4. Adım: Yazılım
Https://www.arduino.cc/en/Main/Software adresinden indirilebilen en son (ücretsiz) Arduino yazılım düzenleyicisine sahip olduğunuzdan emin olun. Wemos D1 mini ve diğer ESP8266 tabanlı anakartlara destek eklemek için aşağıdaki adımları izleyin:
- Kurulumdan sonra Arduino yazılımını başlatın ve Tercihler penceresini açın.
- "Ek Pano Yöneticisi URL'leri" alanına https://arduino.esp8266.com/stable/package_esp8266com_index.json girin. Virgülle ayırarak birden çok URL ekleyebilirsiniz.
- Araçlar > Pano menüsünden Boards Manager'ı açın ve esp8266 platformunu kurun (ve kurulumdan sonra Araçlar > Pano menüsünden ESP8266 anakartınızı seçmeyi unutmayın. "LOLIN(WEMOS) D1 R2 & mini" en iyi Wemos D1 mini v2 ve v3 için çalışır. panolar.
Arduino'yu kurmak ve sürücüleri kurmak için daha fazla yardıma ihtiyacınız varsa https://www.instructables.com/id/Wemos-ESP8266-Getting-Started-Guide-Wemos-101/ adresine göz atabilirsiniz.
Arduino editöründe yeni bir dosya açın (Dosya>Yeni) ve yeni açılan pencereye aşağıdaki kodu kopyalayın/yapıştırın. Yeni pencerede mevcut olan satırların üzerine yazmanız yeterlidir (void setup ve void loop).
Artık neredeyse hazırsınız, ancak belirli kurulumunuz için kodun birkaç parçasını uyarlamanız gerekecek.
Yapılacak ilk şey, 34. satırdaki ip adresini (Arduino editöründe kod satırları numaralandırılmıştır) Hue köprünüzün ip adresine değiştirmektir. Hue Bridge IP adresinizi bilmiyorsanız https://discovery.meethue.com/ adresini ziyaret edin ve doğru IP adresi tarayıcınızda hemen görünecektir. IP adresi, önünde "internalipaddress" bulunan noktalı sayıdır.
Hue ışıklarıyla iletişim kurmak için Wemos D1 mini için bir Hue API kullanıcısı oluşturmanız gerekir, böylece Wemos, Hue API aracılığıyla Hue ışığıyla iletişim kurabilir. Bunu yapmak için https://developers.meethue.com/develop/get-started-2/ adresindeki talimatları izleyin ve oluşturulan (oldukça uzun) kullanıcı adını Arduino kod penceresinde kopyalayın/yapıştırın. Her "HUE API KULLANICI ADI" nızı oluşturulan API kullanıcı adıyla değiştirin.
Ardından rengi değiştirmek için doğru Ton ışığını seçmeniz gerekir. Hue API'sinde her ışığın bir numarası vardır, bu nedenle bu proje için kullanmak istediğiniz ışığa karşılık gelen sayıyı bulmanız gerekir. Belirli bir ışığın hangi numaraya sahip olduğunu bulmanın en kolay yollarından biri, Android veya iOS için Hue Viewer Uygulamasını indirmektir. Arduino kod penceresinin her yerinde "SİZİN IŞIK NUMARANIZ" metnini doğru numarayla değiştirin.
Yapılacak son şey, Wi-Fi ağınıza bağlanmak için Wemos'u kurmaktır. Bu, kodu Wemos'a yükleyerek ve dizüstü bilgisayarınızda başka bir wifi ağına geçerek yapılır: "AutoConnectAP". Ardından tarayıcınız, Wemos denetleyicisinin wifi ağınıza (ve Hue köprüsüne) bağlanmak için kullanacağı wifi ağınızın SSID'sini (adını) ve şifresini ekleyebileceğiniz bir sayfa görüntüler.
Not: Kodu USB aracılığıyla Wemos D1 mini'mize yüklemek işe yaramazsa, Wemos'taki USB çipi için bir sürücü indirmeniz gerekebilir. Platformunuz için bir sürücü (Windows, Mac) https://sparks.gogo.co.nz/ch340.html adresinden indirilebilir.
Artık yaratıcılığınızı test etmeye hazırsınız!
// ESP8266 Hue Magic Wand// Richard van Kampen - 2018 // Bu kod bir Wemos D1 mini üzerinde test edilmiştir, ancak muhtemelen diğer ESP8266 tabanlı geliştirme kartlarında da çalışacaktır // Wemos D1 mini ve diğer ESP8266 kartlarına destek eklemek için Arduino düzenleyicisine aşağıdaki adımları uygulayın: // - Arduino'yu başlatın ve Tercihler penceresini açın. // - Ek Pano Yöneticisi URL'leri alanına https://arduino.esp8266.com/stable/package_esp8266com_index.json girin. Virgülle ayırarak birden çok URL ekleyebilirsiniz. // - Araçlar > Pano menüsünden Boards Manager'ı açın ve esp8266 platformunu kurun (ve kurulumdan sonra Araçlar > Pano menüsünden ESP8266 anakartınızı seçmeyi unutmayın). // kullanılan kitaplıklar: #include "ESP8266WiFi.h" // ESP8266 Çekirdek WiFi Kitaplığı #include "DNSServer.h" // WIFI ayarları (SSID, parola) yoksa tüm istekleri WiFiManager yapılandırma portalına yönlendirmek için kullanılan yerel DNS Sunucusu henüz ayarlanmadı. #include "ESP8266WebServer.h" //WiFiManager yapılandırma portalına hizmet etmek için kullanılan yerel Web Sunucusu #include "WiFiManager.h" // WiFi Yapılandırma Sihirli kitaplığı, henüz kurulmadıysa lütfen https://github.com/tzapu/WiFiManager adresine bakın #install-through-library-manager #include "RestClient.h" // https://github.com/fabianofranca/ESP8266RestClient, Philips Hue API'sini kullanmak için gereklidir (bkz. https://developers.meethue.com/develop/ hue-api/). #include "ArduinoJson.h" // https://github.com/bblanchon/ArduinoJson, Hue API yanıtını analiz etmek için gerekli, lütfen Arduino'daki kütüphane yöneticisi aracılığıyla 5.x sürümünü yükleyin (Menü "Çizim" > Kitaplığı Dahil Et > Yönet Kütüphaneler > ArduinoJson'u arayın ve sürümü en son 5.x olarak değiştirin). Sürüm 6 (şu anda beta sürümünde) bir hata veriyor. // değişkenler ve init: Dize yanıtı; const int redPin = 13;//Wemos'ta bu d7 const int greenPin = 12;//Wemos'ta bu d6 const int bluePin = 14;//Wemos'ta bu d5 const int touchSensor = 5;//Wemos'ta bu is d1 const int activationPin = 4;//Wemos'ta bu d2 bool aktivasyonu = YÜKSEK; bool touch = DÜŞÜK; const char* aan_restore; int bri_restore; çift x_restore; çift y_restore; çift x_magic; çift y_magic; bool ilk = doğru; imzasız uzun startMillis; imzasız uzun akımMillis; imzasız uzun süreliMillis; RestClient istemcisi = RestClient("192.168.178.23"); // "Hue Bridge IP adresiniz" // Hue Bridge IP adresinizi bilmiyorsanız, https://discovery.meethue.com adresini ziyaret edin, adres hemen tarayıcınızda görünecektir. IP adresi, "internalipaddress" void setup() { analogWriteRange(255); ile başlayan noktalı sayıdır. Seri.başla(9600); // LED kapalıyken başlayın. pinMode(activationPin, INPUT_PULLUP); pinMode(touchSensor, INPUT); startMillis = millis(); checkWand(); } void loop() { // burada yapacak bir şey yok, boş bırakın… } void checkWand() { int rgbColour[3]; // James Harton'dan RGB renk kodu, https://Gist.github.com/jamesotron/766994 // Kırmızı ile başlayın. rgbColour[0] = 255; rgbColour[1] = 0; rgbColour[2] = 0; aktivasyon = digitalRead(activationPin);// DÜŞÜK, çubuğun kullanıldığı anlamına gelir. touch = digitalRead(touchSensor);// HIGH, değnek yerine parmak kullanıldığı anlamına gelir, bu böyle olmamalıdır. while (aktivasyon == DÜŞÜK && touch == DÜŞÜK) { // Arttırılacak ve azaltılacak renkleri seçin. for (int decColour = 0; decColour < 3; decColour += 1) { int incColour = decColour == 2 ? 0: dekRenk + 1; //= üçlü operatör, şu anlama gelir: int incColour;if (decColour == 2) {incColour = 0;} else {incColour = decColour +1;} // iki rengi çapraz soldur. for (int i = 0; i <255; i += 1) { rgbColour[decColour] -= 1; rgbColour[incColour] += 1; // RGB ledimiz katot yerine ortak anoda sahip olduğundan (toprak yerine +3.3V'a bağlanmamız gerekiyor), RGB için ters değerlere ihtiyacımız var: int red = 255 - rgbColour[0]; int yeşil = 255 - rgbColour[1]; int mavi = 255 - rgbColour[2]; analogWrite(redPin, kırmızı); analogWrite(greenPin, yeşil); analogWrite(bluePin, mavi); gecikme(8); aktivasyon = digitalRead(activationPin); if (aktivasyon == HIGH) { // HIGH, çubuğun kaldırıldığı anlamına gelir. stopColorCycling'e git; } } } } stopColorCycling: currentMillis = millis(); süreMillis = (currentMillis - startMillis); if (durationMillis> 1000) { RGBtoxy(rgbColour[0], rgbColour[1], rgbColour[2]); } else { //Wemos'u uyku moduna alın: ESP.deepSleep(0); } } void RGBtoxy(int red, int green, int blue) { //bkz. https://developers.meethue.com/documentation/color-conversions-rgb-xy double R = map(kırmızı, 0, 255, 0, 1000); R /= 1000; double G = harita(yeşil, 0, 255, 0, 1000); G /= 1000; double B = harita(mavi, 0, 255, 0, 1000); B /= 1000; R = (R > 0.04045f) ? pow((R + 0.055f) / (1.0f + 0.055f), 2.4f): (R / 12.92f); G = (G > 0.04045f) ? pow((G + 0.055f) / (1.0f + 0.055f), 2.4f): (G / 12.92f); B = (B > 0.04045f) ? pow((B + 0.055f) / (1.0f + 0.055f), 2.4f): (B / 12.92f); çift X = R * 0.649926f + G * 0.103455f + B * 0.197109f; çift Y = R * 0.234327f + G * 0.743075f + B * 0.022598f; çift Z = R * 0.0000000f + G * 0.053077f + B * 1.035763f; çift x = X / (X + Y + Z); çift y = Y / (X + Y + Z); // dönüştürme tam olarak tamamlanmadı, ancak muhtemelen elde etmek istediğimiz şey için yeterince iyi, bu yüzden bunu burada bırakın ve lambaya XY değerlerini gönderin: sendtoHue(x, y); } void sendtoHue(double a, double b) {// değnek büyüsünden gerçek renk değişimi if (ilk) { //ilk geçiş: mevcut lamba durumunu al getCurrentValues(); }// sonra sihirli değnek renkleri gönder: // büyü için bekle: uzun bekle; x_magic = bir; y_magic = b; // sihirli değnek renginde lamba yanar: yanıt = ""; int temp = rastgele (2, 9); const char* durum = "doğru"; for (int i = 1; i <= temp; i++) { // köprüye gönderilecek karakter dizisi oluşturun: String temp_body1 = "{"on\": " + String(state) + ", \"bri\": 220, \"xy\": [" + String(x_magic) + ", " + String(y_magic) + "], \"transitiontime\": 1}"; int str_len1 = temp_body1.length() + 1; char post_body1[str_len1]; temp_body1.toCharArray(post_body1, str_len1);// şimdi char dizisi olarak post_body1 var; // dinlenme çağrısı yap: int statusCodePut1 = client.put("/api/SİZİN RENGİ API KULLANICI ADI/lights/IŞIK NUMARANIZ/durum", post_body1, &response); bekle = rastgele (100, 600); gecikme(bekle); if (durum == "doğru") { durum = "yanlış"; } başka { durum = "doğru"; } } // parlaklığı azalt…: yanıt = ""; sıcaklık = rastgele (4, 17); // köprüye gönderilecek karakter dizisi oluşturun: String temp_body2 = "{"on\": true, \"bri\": 154, \"transitiontime\": " + String(temp) + "}"; int str_len2 = temp_body2.length() + 1; char post_body2[str_len2]; temp_body2.toCharArray(post_body2, str_len2);// şimdi char dizisi olarak post_body2 var; // dinlenme çağrısı yap: int statusCodePut2 = client.put("/api/SENİN RENGİ API KULLANICI ADI/ışıklar/IŞIK NUMARANIZ/durum", post_body2, &response); bekle = rastgele (1000, 2500); gecikme(bekle); //..ve tekrar daha parlak hale getirin: yanıt = ""; sıcaklık = rastgele (4, 17); // köprüye gönderilecek karakter dizisi oluşturun: String temp_body3 = "{"bri_inc\": 100, \"transitiontime\": }"; int str_len3 = temp_body3.length() + 1; char post_body3[str_len3]; temp_body3.toCharArray(post_body3, str_len3);// şimdi char dizisi olarak post_body3 var; // dinlenme çağrısı yap: int statusCodePut3 = client.put("/api/SENİN RENGİ API KULLANICI ADI/ışıklar/IŞIK NUMARASIN/durum", post_body3, &response); bekle = rastgele (2500, 5000); // 2-5 saniye bekle (bekle);//ve eski değere geri döner: yanıt = ""; // köprüye gönderilecek karakter dizisi oluşturun: String temp_body4 = "{"on\": " + String(aan_restore) + ", \"bri\": " + String(bri_restore) + ", \"xy\": [" + String(x_restore) + ", " + String(y_restore) + "], \"transitiontime\": " + String(20) + "}"; int str_len4 = temp_body4.length() + 1; char post_body4[str_len4]; temp_body4.toCharArray(post_body4, str_len4);// şimdi char dizisi olarak post_body4 var; // dinlenme çağrısı yap: int statusCodePut4 = client.put("/api/SENİN RENGİ API KULLANICI ADI/lights/IŞIK NUMARANIZ/durum", post_body4, &response); ESP.deepSleep(0); //tekrar uyumaya gidiyorum…. } unsigned int getCurrentValues() { connectWifi();// önce Wifi'ye bağlanın yanıtı = ""; // dinlenme çağrısı yap: int statusCodeGet = client.get("/api/SENİN RENGİ API KULLANICI ADI/ışıklar/IŞIK NUMARANIZ", &response); Serial.print("GET sonrası sunucudan durum kodu: "); Serial.println(statusCodeGet); Serial.print("Sunucudan yanıt gövdesi: "); Serial.println(yanıt); StaticJsonBuffer jsonBuffer; // Json yanıtının ayrıştırılması // Nesne ağacının kökü. // // JsonObject'e bir referanstır, gerçek baytlar, nesne ağacının diğer tüm düğümleriyle birlikte // jsonBuffer'ın içindedir. // jsonBuffer kapsam dışına çıktığında bellek serbest bırakılır. JsonObject& root = jsonBuffer.parseObject(yanıt); JsonObject& state = root["state"];// Ayrıştırmanın başarılı olup olmadığını test edin. if (!root.success()) { Serial.println("parseObject() başarısız"); } // Değerleri getir. aan_restore = durum["açık"]; Serial.println(aan_restore); bri_restore = durum["bri"]; x_restore = durum["xy"][0]; y_restore = durum["xy"][1]; first = false;} void connectWifi() { //Yerel başlatma. İşi bittiğinde, onu WiFiManager wifiManager'ın etrafında tutmaya gerek yoktur; //ayarları sıfırla - test için: //wifiManager.resetSettings(); //önceki WiFi'ye bağlanma başarısız olduğunda çağrılan geri aramayı ayarla ve Erişim Noktası moduna girer wifiManager.setAPCallback(configModeCallback); //ssid ve pass'ı alır ve bağlanmaya çalışır //bağlanmazsa belirtilen adla bir erişim noktası başlatır //burada "AutoConnectAP" //ve eğer (!wifiManager.autoConnect()) yapılandırmayı bekleyen bir engelleme döngüsüne girer) { Serial.println("bağlanamadı ve zaman aşımına uğradı"); //sıfırlayıp yeniden deneyin veya derin uyku moduna geçirin ESP.reset(); gecikme(1000); } //Buraya gelirseniz WiFi Serial.println("connected…yeey:)"); Serial.print("Bağlı: "); Seri.println(WiFi. SSID()); Serial.print("IP adresi:"); Serial.println(WiFi.localIP()); //ESP'nize atanan IP adresi (Wemos) // alınan sinyal gücünü yazdırın: uzun rssi = WiFi. RSSI(); Serial.print("sinyal gücü (RSSI):"); Serial.println(rssi); } void configModeCallback (WiFiManager * myWiFiManager) { Serial.println("Girilen yapılandırma modu"); Seri.println(WiFi.softAPIP()); //otomatik olarak oluşturulmuş SSID kullandıysanız, yazdırın Serial.println(myWiFiManager->getConfigPortalSSID()); }
Önerilen:
HUE Işıklarını Kontrol Etmek için Pille Çalışan Wi-Fi Akıllı Düğme: 5 Adım (Resimlerle)
HUE Işıklarını Kontrol Etmek için Pille Çalışan Wi-Fi Akıllı Düğmesi: Bu proje, pille çalışan bir IoT Wi-Fi düğmesinin 10 dakikadan daha kısa sürede nasıl oluşturulacağını gösterir. Düğme, IFTTT üzerinden HUE ışıklarını kontrol eder. Bugün elektronik cihazlar oluşturabilir ve bunları kelimenin tam anlamıyla dakikalar içinde diğer akıllı ev cihazlarına bağlayabilirsiniz. Ne
Philips Hue Işık Şeridi'ni Bölün ve Uzatın: 8 Adım (Resimlerle)
Philips Hue Işık Şeridi'ni Bölün ve Genişletin: Daha fazla "akıllı ev" ekliyorum; gadget'ları evime yazın ve oynadığım şeylerden biri de Philips Hue Işık Şeridi. Bir uygulamadan veya Alexa gibi akıllı bir asistandan kontrol edilebilen bir LED ışık şeridi ya da
Lifx veya Hue için Dış Mekan, Hava Koşullarına Dayanıklı Armatür: 5 Adım (Resimlerle)
Lifx veya Hue için Dış Mekan, Hava Koşullarına Dayanıklı Armatür: Akşam keyfi ve ara sıra arka bahçedeki rave için bahçemi Lifx Color 1000 ampullerimle aydınlatmak istedim. Ampullerin neme ve ısıya karşı savunmasızlığı göz önüne alındığında, piyasada t'yi yeterince koruyacak hiçbir armatür bulamadım
DIY Philips Hue Panel Işığı: 4 Adım (Resimlerle)
DIY Philips Hue Panel Işığı: Geçenlerde yatak odam için bazı Philips Hue lambaları satın aldım. Onlar harika! Alexa'yı kullanarak sesimle onları kontrol edebiliyorum ve ayrıca telefonumla da kontrol edebiliyorum. Renk değiştiren bir panel ışığı bulmaya çalıştım ama bildiğiniz gibi Philips Hue
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