İçindekiler:

O-Zone: DIY Bluetooth Pil Lambası: 4 Adım (Resimlerle)
O-Zone: DIY Bluetooth Pil Lambası: 4 Adım (Resimlerle)

Video: O-Zone: DIY Bluetooth Pil Lambası: 4 Adım (Resimlerle)

Video: O-Zone: DIY Bluetooth Pil Lambası: 4 Adım (Resimlerle)
Video: 12V Bluetooth Relay to control AC or DC load using mobile Phone 2024, Kasım
Anonim
Image
Image

O-Zone bir DIY Bluetooth lambasıdır. Lambanın rengini ve ayrıca ledlerin parlaklığını değiştirebilirsiniz. Işığı açmak, odanızın renklerini ve havasını değiştirmek için akıllı telefonunuzu, tabletinizi kullanabilirsiniz.

Lamba için malzemeler:

Pil ile 1 x Light BlueBean

1 x Adafruit Neopiksel halkası (16 x led)

Kullanışlı Bluetooth uygulaması iOS

Android için Bluetooth Terminali

Yapı için malzemeler şunlardır:

3 mm (3,1 inç) Ahşap

1,5 mm (0,05 inç) Beyaz Pleksiglas

Adım 1: Küpün Yapısı

Punch'ı Açık Mavi Fasulye ile Programlayın
Punch'ı Açık Mavi Fasulye ile Programlayın

Lambanın yapısı için bir küp tasarladım. Basit ama doğrusal bir tahta küp. Ahşabı lazer oyma makinemle kestim. Ayrıca küpün üst yüzünün içinde bir daire kestim. Kesimin içine beyaz bir pleksiglas yüzük koydum. Pleksiglası 40W lazer kesim ile kestim. Adafruit led halkasının birçok rengi olduğu için beyaz pleksiglas kullanabilirsiniz. Ayrıca şeffaf bir pleksi de kullanabilirsiniz, ancak ışığın yumuşatma kalitesi için beyazın daha iyi olduğunu düşünüyorum.

Yapının kesilmesi için lazer kesicinizi kullanabilir veya Fablab gibi bir lazer kesim servisini kullanabilir veya projeyi Shapeways gibi çevrimiçi bir servise gönderebilirsiniz.

Parçaları bir vinil yapıştırıcı ile birleştirin. Adafruit Neopixel halkasını pleksiglas halka ile birleştirdikten sonra. Plastik parçalar için akrilik yapıştırıcı kullanabilirsiniz. Hep birlikte montaj.

Bu adımdan sonra yapınız hazır!

Adım 2: Punch'ı Açık Mavi Fasulye ile Programlayın

Light BlueBean'i programlamak için Arduino IDE'yi kullanabilirsiniz. Light BlueBean cihazınızdaki bellenimi şarj ettiğinizde Bluetooth iletişimini kullanmanız gerekir. Arduino IDE'yi kullanabilir ve bu programı Punch Trough Light BlueBean yükleyici ile birleştirebilirsiniz. Ayrıntılar için resmi siteye bakın.

Light BLUEBean'i Kullanmaya Başlayın

Light BlueBean için bu kodu kullanabilirsiniz:

/* ******************************************

* O-zone Bluethooth Lambası

* 31 Mart 2017

* Giovanni Gentile

* Punch Through Light BlueBean için

**********************************************/

#include "Adafruit_NeoPixel.h"

// NeoPixels'e bağlı olan pin

#define PIN 5

// NeoPiksellerdeki LED miktarı

#define NUMPIXELS 16 int parlak = 20; boole lumi = 1; boolean öncekiLumi = 1;

dize komutu;

boolean commandStarted = false; Adafruit_NeoPixel piksel = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); LedOkuma ledRenk; LedOkumaöncekiLedColor; geçersiz kurulum() { Serial.begin(); // NeoPixels pikselini başlat.begin(); }

boşluk döngüsü () {

getCommand(); }

/*

Bu işlev, seri bağlantı noktasını okur ve başlangıç karakteri '#' olup olmadığını kontrol eder, eğer başlangıç karakteri bulunursa, ';' bitiş komutunu alana kadar alınan tüm karakterleri komut arabelleğine ekler. bitiş komutu alındığında commandCompleted() işlevi çağrılır. bir bitiş karakterinden önce ikinci bir başlangıç karakteri bulunursa, arabellek temizlenir ve işlem baştan başlar. */ void getCommand() { while (Serial.available()) { char newChar = (char)Serial.read(); if (newChar == '#') { commandStarted = true; komut = "\0"; } else if (newChar == ';') { commandStarted = false; komutTamamlandı(); komut = "\0"; } else if (commandStarted == true) { komut += newChar; } } }

/*

Bu işlev, tamamlanan komutu alır ve mevcut komutların bir listesiyle karşılaştırır ve uygun kodu yürütür. Bu komut alındığında yürütmek istediğiniz kodla komutlar eklemek için fazladan 'if' ifadeleri ekleyin. 'Kapalı' örneğindeki gibi birkaç satırdan fazla kod varsa, bir komut için bir işlev oluşturmanız önerilir. */ void commandCompleted() { if (komut == "düşük") { parlak = parlak - 10; lümi = -lümi; Serial.print(parlak); } if (komut == "yüksek") { parlak = parlak + 10; lümi = -lümi; Serial.print(parlak); } if (komut == "kırmızı") { Bean.setLed(255, 0, 0); Serial.print("LED kırmızıya döndü"); } if (komut == "yeşil") { Bean.setLed(0, 255, 0); Serial.print("LED yeşile döndü"); } if (komut == "mavi") { Bean.setLed(0, 0, 255); Serial.print("LED maviye döndü"); } if (komut == "sarı") { Bean.setLed(255, 255, 0); Serial.print("LED sarıya döndü"); } if (komut == "turuncu") { Bean.setLed(255, 60, 0); Serial.print("LED turuncuya döndü"); } if (komut == "mor") { Bean.setLed(128, 0, 128); Serial.print("LED mora döndü"); } if (komut == "beyaz") { Bean.setLed(255, 255, 255); Serial.print("LED beyaza döndü"); } if (komut == "kapalı") { kapalı(); } if(Bean.getConnectionState()){ // Bean'in yerleşik LED'inden değerleri alın ledColor = Bean.getLed(); } if(lumi != öncekiLumi || ledColor.red != öncekiLedColor.red || ledColor.green != öncekiLedColor.green || ledColor.blue != öncekiLedColor.blue){ for(int i=0;i

/*

Birkaç satırdan fazla kod olduğunda bunun gibi ayrı bir işlev kullanın. Bu, kodun okunması kolay temiz kalmasına yardımcı olacaktır. */ void off() { Bean.setLed(0, 0, 0); Serial.print("LED kapalı"); }

Adım 3: Açık Mavi Fasulyeyi Adafruit Neopixel Ring'e bağlayın

Açık Mavi Fasulyeyi Adafruit Neopixel Ring'e bağlayın
Açık Mavi Fasulyeyi Adafruit Neopixel Ring'e bağlayın

Firmware yüklemesinden sonra Light BlueBean'i akıllı telefonunuzla kullanabilirsiniz. Dahili rgb ledini kullanarak programı deneyebilirsiniz. Adafruit 16x halkasını bağladıktan sonra.

DİKKAT EDİN, VCC'yi Light BlueBean 5v'ye, GND'yi Light BlueBean GND'ye ve Adafruit Neopixel halkanızdaki veri pinini 5 numaralı pin'e bağlayın

4. Adım: Bluetooth Uygulaması ve Seri İletişim

Bluetooth Uygulaması ve Seri İletişim
Bluetooth Uygulaması ve Seri İletişim

Light BlueBean içindeki kod, seriye göre veri alır. Bluetooth protokolünü kullanarak seri diziyi BlueBean'e gönderebilirsiniz. İOS için Handy BLE kullanıyorum. Bluetooth protokolü ile istediğiniz herhangi bir seri diziyi göndermek için bu uygulamayı kullanabilirsiniz. 6 daire rengi, 1 Kapalı daire ve iki kare Parlak içeren bir pano oluşturdum. Kare komutları, led halkasının parlaklığını artırmak ve azaltmak içindir.

BlueBean'in kabul ettiği seri komut:

Ledleri renklendirmek için:

#kırmızı;

#Mor;

#Mavi;

#Yeşil;

#sarı;

#turuncu;

Ledleri kapatmak için:

#kapalı;

Parlaklığı düzenlemek için:

#düşük;

#yüksek;

Önerilen: