Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
O-Zone é uma lâmpada Bluetooth DIY. Você pode modificar a cor da lâmpada e também o brilho dos leds. Você pode usar seu smartphone, seu tablet para ligar a luz, modificar as cores e o clima do seu quarto.
Os materiais para a lâmpada são:
1 x Light BlueBean com bateria
1 x anel Adafruit Neopixel (16 x leds)
Handy Bluetooth app iOS
Terminal Bluethooth para Android
Os materiais para a estrutura são:
3 mm (3,1 polegadas) de madeira
Plexiglass branco de 1,5 mm (0,05 pol.)
Etapa 1: A Estrutura do Cubo
Para a estrutura da lâmpada, projetei um cubo. Um cubo de madeira simples, mas linear. Cortei a madeira com meu gravador a laser. Além disso, cortei um círculo dentro da face superior do cubo. Dentro do corte, coloquei um anel de acrílico branco. Cortei o plexiglass com corte a laser de 40W. Pode-se usar o plexiglass branco, pois o anel led Adafruit tem várias cores. Além disso, você pode usar um Plexi transparente, mas acho que o branco é melhor para suavizar a qualidade da luz.
Para o corte de estrutura, você pode usar seu cortador a laser ou você pode usar um serviço de corte a laser como o Fablab ou também pode enviar o projeto para um serviço online como Shapeways.
Junte as peças com cola de vinil. Após a montagem do anel Adafruit Neopixel com o anel de plexiglass. Para as peças de plástico, você pode usar uma cola acrílica. Montagem todos juntos.
Após esta etapa, sua estrutura está pronta!
Etapa 2: programe o feijão Punch Through Light Blue
Para programar o Light BlueBean, você pode usar o IDE Arduino. Ao carregar o firmware em seu Light BlueBean, você deve usar a comunicação Bluetooth. Você pode usar o IDE Arduino e combinar este programa com o carregador Punch Trough Light BlueBean. Veja o site oficial para detalhes.
Comece a usar Light BLUEBean
Você pode usar este código para Light BlueBean:
/* ******************************************
* Lâmpada Bluethooth O-zone
* 31 de março de 2017
* Giovanni Gentile
* para Punch Through Light BlueBean
**********************************************/
#include "Adafruit_NeoPixel.h"
// O pino que está conectado aos NeoPixels
# define PIN 5
// A quantidade de LEDs nos NeoPixels
# define NUMPIXELS 16 int bright = 20; lumi booleano = 1; boolean previousLumi = 1;
Comando de string;
boolean commandStarted = false; Adafruit_NeoPixel pixels = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); LedReading ledColor; LedReading previousLedColor; void setup () {Serial.begin (); // Inicialize o NeoPixels pixels.begin (); }
void loop () {
getCommand (); }
/*
Esta função lê a porta serial e verifica o caractere inicial '#' se o caractere inicial for encontrado, adicionará todos os caracteres recebidos ao buffer de comando até receber o comando final ';' Quando o comando final é recebido, a função commandCompleted () é chamada. se um segundo caractere inicial for encontrado antes de um caractere final, o buffer será limpo e o processo será reiniciado. * / void getCommand () {while (Serial.available ()) {char newChar = (char) Serial.read (); if (newChar == '#') {commandStarted = true; comando = "\ 0"; } else if (newChar == ';') {commandStarted = false; commandCompleted (); comando = "\ 0"; } else if (commandStarted == true) {command + = newChar; }}}
/*
Esta função pega o comando concluído e o compara com uma lista de comandos disponíveis e executa o código apropriado. Adicione instruções extras 'if' para adicionar comandos com o código que você deseja executar quando o comando for recebido. Recomenda-se criar uma função para um comando se houver mais do que algumas linhas de código, como no exemplo 'off'. * / void commandCompleted () {if (command == "low") {bright = bright - 10; lumi = -lumi; Serial.print (claro); } if (comando == "alto") {brilhante = brilhante + 10; lumi = -lumi; Serial.print (claro); } if (command == "red") {Bean.setLed (255, 0, 0); Serial.print ("LED ficou vermelho"); } if (command == "green") {Bean.setLed (0, 255, 0); Serial.print ("LED ficou verde"); } if (command == "blue") {Bean.setLed (0, 0, 255); Serial.print ("LED ficou azul"); } if (comando == "amarelo") {Bean.setLed (255, 255, 0); Serial.print ("LED ficou amarelo"); } if (comando == "laranja") {Bean.setLed (255, 60, 0); Serial.print ("LED ficou laranja"); } if (command == "purple") {Bean.setLed (128, 0, 128); Serial.print ("LED ficou roxo"); } if (comando == "branco") {Bean.setLed (255, 255, 255); Serial.print ("LED ficou branco"); } if (command == "off") {off (); } if (Bean.getConnectionState ()) {// Pega os valores do LED integrado do Bean ledColor = Bean.getLed (); } if (lumi! = previousLumi || ledColor.red! = previousLedColor.red || ledColor.green! = previousLedColor.green || ledColor.blue! = previousLedColor.blue) {for (int i = 0; i
/*
Use uma função separada como esta quando houver mais do que apenas algumas linhas de código. Isso ajudará a manter o código limpo e fácil de ler. * / void off () {Bean.setLed (0, 0, 0); Serial.print ("LED desligado"); }
Etapa 3: Conecte o Feijão Azul Claro ao Anel Adafruit Neopixel
Após o upload do firmware, você pode usar o Light BlueBean com o seu smartphone. Você pode experimentar o programa usando o led rgb integrado. Depois, você pode conectar o anel Adafruit 16x.
Preste ATENÇÃO, conecte o VCC ao Light BlueBean 5v, GND ao Light BlueBean GND e o pino de dados em seu anel Adafruit Neopixel no pino número 5
Etapa 4: o aplicativo Bluetooth e a comunicação serial
O código dentro do Light BlueBean recebe dados pelo serial. Você pode enviar a string serial para BlueBean usando o protocolo Bluetooth. Eu uso o Handy BLE para iOS. Você pode usar este aplicativo para enviar pelo protocolo Bluetooth qualquer string serial que você deseja. Eu criei um painel que tem 6 cores de círculo, 1 fora do círculo e dois quadrados brilhantes. Os comandos quadrados são para aumentar e diminuir o brilho do anel de leds.
Os comandos seriais que o BlueBean aceita são:
Para colorir os leds:
#vermelho;
#roxa;
#azul;
#verde;
#amarelo;
#laranja;
Para desligar os leds:
#desligado;
Para regular o brilho:
#baixo;
#Alto;