Índice:

Lâmpadas sincronizadas com wi-fi: 10 etapas (com fotos)
Lâmpadas sincronizadas com wi-fi: 10 etapas (com fotos)

Vídeo: Lâmpadas sincronizadas com wi-fi: 10 etapas (com fotos)

Vídeo: Lâmpadas sincronizadas com wi-fi: 10 etapas (com fotos)
Vídeo: !!!LANÇAMENTO!!! Câmera wi-fi Boa, Barata e não Precisa de Instalação. Muito Prático. 2024, Novembro
Anonim
Image
Image

Um projeto para quem ilumina sua vida …

Há 2 anos, como presente de Natal para um amigo de longa distância, criei lâmpadas que sincronizavam animações via conexão com a internet. Este ano, 2 anos depois, criei esta versão atualizada com o conhecimento adquirido nos anos adicionais de mexer na eletrônica. Esta versão é muito mais simples, sem a necessidade de monitores ou teclados externos (e apenas um chip simples, não dois!), Além de uma interface de aplicativo de telefone fácil (graças ao Blynk IoT) em vez de website e potenciômetro físico suave.

Existem botões no aplicativo que fornecem mais flexibilidade nas animações que você deseja adicionar: existem 3 controles deslizantes para controle RGB, além de um widget na parte inferior que permite que você escolha as cores de um mapa (para que você não tenha para descobrir quais são os números RGB para a cor desejada). Também existem botões predefinidos para feliz, zangado, triste e "meh" para que você possa transmitir facilmente suas emoções para a outra pessoa na forma de animações de lâmpada, para os momentos em que tem algo sobre o qual deseja falar, mas não deseja incomodar a pessoa com muitos textos.

Sem experiência em eletrônica? Sem problemas! Existem apenas 3 etapas principais: conectar o hardware, enviar o código e criar o aplicativo Blynk. Lembre-se, entretanto: o que pode dar errado, dará errado. Sempre adicione bastante tempo para depuração.

Se você usar exatamente o que eu fiz e enviar exatamente o que eu tenho, você ficará bem, mesmo que nunca tenha trabalhado com eletrônica. Mesmo se você fizer ajustes no projeto, a leitura deste tutorial deve dar uma ideia do que você precisa mudar se usar isso como um guia. O custo também foi mantido o mais baixo possível: o custo total, se você não tiver absolutamente nenhum dos componentes, é de aproximadamente $ 40 no máximo por lâmpada.

Etapa 1: Materiais

Estes são os materiais de que você precisa para UMA lâmpada (multiplique pelo número de lâmpadas que você gostaria de fazer):

  • 1x NodeMCU ESP8266 chips ($ 7 cada, $ 13 por 2)
  • 1 protoboard ou breadboards (~ $ 1 cada)
  • ferro de solda e solda
  • 1x anéis de neopixel ($ 10 cada, $ 8 se você comprar de adafruit.com)
  • Fonte de alimentação 1x 5V (saída de pelo menos 500mA, então 1A ou 2A será perfeito) com conexão microUSB (ou jack barril, mas compre um conversor barrel jack para fios desencapados) ($ 8 cada)
  • Não estritamente necessário, mas ALTAMENTE recomendado para proteção de circuito (poucos centavos cada, mas você pode ter que comprar a granel)

    • 1 resistor de 300-500Ohm (eu usei 200Ohm e escapei, no entanto)
    • 1x capacitor 100-1000uF
  • fio elétrico (ou você obtém esses tipos de fita) (núcleo único é melhor) (alguns centavos por 5 )

    Você não precisa de tanto fio; apenas 5 "será o suficiente

  • Você pode fazer o que quiser com a lâmpada externa (acima estão as peças apenas para os eletrônicos). Optei por madeira cortada a laser e acrílico, com papel de bloco de desenho para difusão de luz.

Anexei os links da Amazon acima para as opções mais baratas que pude encontrar (em 20 de dezembro de 2018), mas você pode definitivamente encontrar componentes mais baratos em diferentes lugares. Ainda sou um estudante universitário, então tive acesso a capacitores e resistores: tente perguntar a algum amigo que trabalhe com eletrônica. Neopixels podem ser comprados em adafruit.com por mais barato se você tiver outras coisas que deseja encomendar de lá (para economizar nos custos de envio..). Você pode obter os resistores e capacitores da DigiKey ou Mouser por muito mais barato, embora o frete possa ser mais caro. Para as fontes de alimentação, um carregador de telefone antigo será suficiente (ou apenas o cabo microUSB se você quiser conectar a lâmpada a uma porta USB em vez de uma tomada). Se você não tiver absolutamente nenhum desses componentes, seu custo será de no máximo ~ $ 40 por lâmpada (e menos por lâmpada quanto mais você ganha, já que normalmente você vai comprar esses componentes a granel: o protoboard pode vir em embalagens de 5, por exemplo). Eu tinha coisas por aí, então eram apenas US $ 5 para mim (sim, sou um colecionador de amigos que por acaso largam muitas coisas - além disso, reutilizei os anéis de neopixel da última vez).

O código do Arduino e os arquivos do Adobe Illustrator (para a caixa de corte a laser) estão anexados a seguir.

Etapa 2: Visão geral: como as lâmpadas funcionam

Tudo bem, então, uma vez que você tenha os materiais, você deve estar se perguntando como todos eles se juntam. Aqui está uma explicação:

O NodeMCU ESP8266 é um microcontrolador que opera na lógica de 3,3 V (em oposição à lógica de 5 V como a maioria dos Arduinos). Inclui um chip wi-fi integrado e pinos GPIO para usar sinais digitais e analógicos com os componentes que você conecta. Você estará usando um dos pinos capazes de emitir sinais PWM (veja pinagem aqui: qualquer pino com o ~ próximo a ele pode gerar os sinais analógicos em oposição aos sinais digitais de apenas 0 ou 1, BAIXO ou ALTO) para controlar o anel de neopixel. Para programá-lo, você pode fazer isso facilmente através do IDE do Arduino, facilmente baixável aqui. (note, eu forneci o guia Adafruit para seu ESP8266 HUZZAH em vez do NodeMCE que temos. O guia ainda é aplicável para ambas as placas, mas você só terá que selecionar uma placa diferente para fazer upload no Arduino.)

O anel de neopixel é o que cria as animações coloridas da lâmpada. Possui LEDs endereçáveis na formação do anel, cada um dos quais pode ser controlado individualmente. Ele normalmente é executado usando lógica de 5 V, o que geralmente requer mudança de nível (explicado aqui), mas felizmente a biblioteca de neopixel Adafruit foi atualizada para suportar o ESP8266. Embora os componentes de 5 V não respondam de forma confiável aos sinais de 3,3 V, ele funciona de maneira bastante confiável quando o neopixel é alimentado com uma tensão mais baixa (portanto, 3,3 V em vez de 5 V). Veja detalhes sobre isso aqui.

Em termos de conexão do microcontrolador ao neopixel, é mais seguro colocar um resistor de 300-500 Ohm entre a linha de dados do neopixel e o pino GPIO do qual você enviará sinais (para proteger os LEDs de quaisquer picos repentinos). Você também deve adicionar um capacitor de 1000uF conectado em paralelo aos fios de alimentação e aterramento do anel de neopixel: isso é para fornecer proteção contra picos repentinos de corrente. Leia isso para obter mais práticas recomendadas sobre o uso desses anéis de LED (e aqui para obter o guia do usuário completo da Adafruit).

Para fazer a interface com a plataforma Blynk IoT, o Arduino tem uma biblioteca para usar o Blynk. Você pode ler a documentação aqui para saber mais sobre como usar o Blynk em geral. Para começar, este foi um instrutivo prático especificamente para NodeMCU ESP8266 e Blynk.

Não se preocupe se alguma dessas coisas não fizer sentido! As etapas futuras irão delinear exatamente o que fazer upload, download, conectar, etc. Leia tudo (sim, é um longo tutorial, mas pelo menos dê uma olhada) antes de começar a construir !!! Isso o ajudará a descobrir como as coisas acontecem, em vez de apenas seguir as instruções cegamente.

Etapa 3: Hardware

Imagem
Imagem
Imagem
Imagem

Para começar, conecte seu hardware conforme mostrado nas fotos acima. O neopixel deve chegar até você com orifícios para soldar em fios. Primeiro, você precisará soldar os fios aos orifícios identificados como PWR (alimentação), GND (aterramento) e IN (entrada para sinais analógicos) antes de conectar os fios aos pinos de 3,3 V, aterramento e D2 do ESP8266 (veja a pinagem). Como regra geral, o fio vermelho é para energia, os fios pretos indicam terra e eu gosto de usar azul para a linha de dados do neopixel (conectado ao pino D2, que é capaz de sinais PWM).

Certifique-se de conectar o capacitor na direção correta: o capacitor tem polaridade, o que significa que importa o lado que você conecta em paralelo ao aterramento do neopixel e à alimentação. Se você olhar para o seu capacitor de 1000uF, há uma faixa cinza na lateral que indica o lado negativo do capacitor (você pode ver no diagrama acima também). Este é o lado que deve ser conectado em paralelo ao aterramento do neopixel. O resistor não tem polaridade, então não precisa se preocupar com a direção.

Em termos de criação de uma conexão firme, a melhor maneira seria usar protoboard para que você possa soldar os componentes em vez de apenas conectar os fios em uma placa de ensaio e arriscar que eles saiam. Usei uma placa de ensaio porque estava com pouco tempo, mas, novamente, o protoboard é preferível. A coisa boa sobre a placa de ensaio é que ela tem uma parte traseira adesiva, então eu apenas tirei a casca do adesivo para colar tudo na base da minha lâmpada. Para o protoboard, você pode aparafusá-lo na base usando os 4 orifícios que eles costumam ter nos cantos, ou apenas fita / cola.

Etapa 4: Código Arduino

O código.ino Arduino está anexado na parte inferior desta etapa para referência. Parece longo e prolixo, mas não se preocupe: grande parte envolve comentários para explicar tudo. Também gosto de pular linhas para adicionar espaços para seções de diferenciação, o que faz o código parecer mais longo.

Principais partes a serem editadas para se adequar ao seu código:

  • Código / token de autorização Blynk (enviado a você por e-mail de Blynk quando você cria um dispositivo no aplicativo: consulte a próxima página para obter mais informações)

    Você precisará de um código de autorização separado para cada lâmpada

  • nome de domínio wi-fi (entre os dois apóstrofos ")
  • senha wi-fi (entre os dois apóstrofos ")

Fora isso, contanto que você use meu aplicativo Blynk exato e hardware geral (então use minha configuração de aplicativo Blynk exata na próxima etapa, tenha 12 LEDs em seu anel de neopixel, use o pino D2 do ESP8266 para linha de dados de neopixel, etc), você só precisa fazer o upload desse código exatamente para o seu ESP8266. Observe que você precisará usar códigos de autorização diferentes para cada uma de suas lâmpadas! Consulte a próxima página para adicionar dispositivos separados e obter esses códigos. Não se esqueça de combinar o domínio wi-fi e a senha com a lâmpada também, se eles estiverem em locais diferentes. Provavelmente, você desejará editar outras coisas, dependendo das animações e cores que deseja, ou talvez até mesmo dos alfinetes que usa. Comentei o código para ajudá-lo a mudar as coisas conforme necessário. (leia também o código de exemplo de teste da biblioteca Adafruit Neopixel para obter ideias).

Antes de usar o código, você precisará baixar as bibliotecas que o código usa (aquelas no topo do código). Leia e siga este guia da Adafruit (comece em "Usando o Arduino IDE") para saber o que você precisa fazer para configurar o ESP8266. Sim: você precisará instalar o driver CP2104, adicionar aos URLs do gerenciador de placa adicional nas preferências do Arduino, instalar o pacote ESP8266 (vá para Sketch> Incluir biblioteca> Gerenciar bibliotecas … e pesquise o que você precisa - veja a imagem abaixo), e também instalar as outras bibliotecas no topo do código para neopixel, Blynk, etc.

Imagem
Imagem

Para fazer o upload do código para o chip ESP8266 a partir do Arduino IDE, você precisará selecionar a placa correta (NodeMCU ESP8266 ESP-12E), tamanho do flash, porta, etc (veja a imagem abaixo). A porta SLAB_USBtoUART correta não aparecerá a menos que você conecte o ESP8266 ao seu computador. Mas assim que estiver conectado, e você tiver certeza de que conectou corretamente seu circuito na etapa anterior, pode seguir em frente e pressionar a seta no canto superior esquerdo para enviar seu código para a placa. Sim, leva mais tempo do que seu processo normal de upload para o Arduino. Você verá que ele compila o código lentamente e, em seguida, uma sequência de pontos laranja ……………… à medida que é carregado (exibido na parte preta inferior da janela do Arduino).

Imagem
Imagem

Agora, aqui está uma análise do código. A primeira seção inclui bibliotecas que as funções usarão e inicializa variáveis globais (variáveis que podem ser acessadas por qualquer função no código). As partes BLYNK_WRITE (virtualPin) controlam o que é feito quando os widgets no aplicativo Blynk (que estão conectados a pinos virtuais) são alternados (ou seja, ligados / desligados, as posições do controle deslizante são alteradas). Existem 7 desses para os 7 pinos virtuais que uso em meu aplicativo Blynk. A próxima seção de void colorWipe (), rainbow (), etc. é para definir as funções que o resto do código usa. Essas funções são em sua maioria emprestadas do código de exemplo da biblioteca de neopixel da Adafruit (especificamente strandtest). As últimas partes são o void setup () e void loop () padrão que vão em todo o código do Arduino: void setup () define as operações que acontecem apenas uma vez com a placa ligada e void loop () define as operações que a placa continuamente faz um loop quando está ligado. void loop () define principalmente por qual animação a lâmpada fará um loop com base na variável "animação" que eu criei.

Etapa 5: Blynk IoT

Blynk IoT
Blynk IoT
Blynk IoT
Blynk IoT
Blynk IoT
Blynk IoT

Eu escolhi Blynk em vez de Adafruit IO para esta lâmpada da versão 2.0. Adafruit IO é ótimo, mas havia duas coisas que Blynk tinha em oposição a Adafruit IO: uma interface de aplicativo e a capacidade de aceitar "em branco" como uma senha wi-fi (por isso, se você estiver se conectando a um wi-fi público que não tem uma senha, você pode deixar a seção de senha vazia, ou seja, apenas ""). Minha amiga vai a hospitais com frequência para tratamento, então eu queria ter essa capacidade nas ocasiões em que ela tem pernoites, mas quer alguma companhia virtual: ela ainda seria capaz de se conectar a wi-fi no hospital.

Comece indo à Google Play Store ou à App Store do iPhone para baixar o aplicativo Blynk para o seu telefone. Crie uma conta grátis e faça um novo projeto. No canto superior direito, você verá um botão do scanner de código QR: use-o para digitalizar o código QR na imagem abaixo para copiar todos os meus botões e outros para o novo projeto. Veja esta página para mais informações sobre como isso funciona ("compartilhe a configuração do seu projeto"). Essa página também fornece informações úteis para compartilhar o projeto posteriormente com o destinatário da lâmpada.

Imagem
Imagem

Claro, você pode personalizar os botões como quiser! Deslize para a direita para revelar quais widgets você pode adicionar. Você deve entender quais opções você tem para os widgets: Anexei imagens (com notas em cada imagem) das configurações dos botões e sugestões para usá-los no início desta etapa.

Aliás, adicionar widgets custa pontos no app, e todo mundo começa com uma certa quantia de graça. Adicionar pontos adicionais custa dinheiro ($ 2 por 1000 pontos adicionais). Acabei adicionando 1000 pontos para fazer minha configuração funcionar, mas você pode simplesmente remover um ou dois botões para que funcione com o valor livre.

No projeto, você precisa pressionar o botão de porca no canto superior esquerdo (próximo ao botão triangular "play") para acessar as configurações do projeto.

Imagem
Imagem

Você precisa adicionar dispositivos ao projeto para obter tokens / códigos de autorização para cada lâmpada, que você altera no código do Arduino conforme mencionado anteriormente. Pressione a seta para a direita Dispositivos para criar novos dispositivos. Ao criar um dispositivo, você verá seu token como na imagem abaixo (desfocado em vermelho).

Imagem
Imagem

Assim que tiver o código, lembre-se de inserir o token, o domínio wifi e a senha corretos no código do Arduino para cada lâmpada. Você provavelmente deve inserir suas próprias credenciais de wi-fi primeiro para se certificar de que cada lâmpada funciona corretamente e depurar conforme necessário, mas depois atualize com o domínio wi-fi do destinatário e a senha antes de enviá-lo.

Certifique-se de ligar o aplicativo para realmente usar seus botões! Quando o aplicativo está "ligado" (pressione o botão play no canto superior direito, próximo ao botão nut para configurações), o fundo ficará totalmente preto em vez da grade pontilhada que você vê quando está no modo de edição. Se você fez o upload do código do Arduino para o ESP8266 e o conectou, o chip deve se conectar automaticamente ao wi-fi. Verifique isso pressionando o pequeno ícone do microcontrolador no canto superior direito (visível apenas quando o aplicativo está ligado): você deve ver uma lista de dispositivos que você criou para o projeto e quais estão online.

Imagem
Imagem

Etapa 6: tampa da lâmpada

Para a lâmpada real, optei por madeira cortada a laser (compensado de bétula 1/8 ") e acrílico (transparente, 1/4", para a face inferior para que a luz brilhe). A madeira tinha recortes que eram exclusivos para mim e meu amigo, mas anexei arquivos do Adobe Illustrator para os designs das peças do quebra-cabeça (faz um cubo de 4 ") para você recortar se gostar da forma (os arquivos estão anexados a esta etapa, abaixo). Atenção: a face inferior tem que ter 1/4 "de espessura para que as peças se encaixem, nesses arquivos. Se você quiser fazer um tamanho diferente ou ter tudo com uma espessura, use o makercase.com para gerar arquivos para cortar uma caixa a laser.

Imagem
Imagem
Imagem
Imagem

Não se esqueça de deixar um orifício para o cabo de alimentação sair da lâmpada. Esqueci de incluí-lo, mas consegui usar um alicate para fazer um pequeno orifício triangular na madeira de 1/8.

Etapa 7: Compartilhamento de lâmpadas com destinatários

Quando você envia a lâmpada para o destinatário, ele também precisa fazer o download do aplicativo Blynk em seu telefone da Google Play Store ou da App Store da Apple para controlar a lâmpada. Você pode solicitar que criem uma conta separada ou use o mesmo login. Se eles fizerem uma conta separada, você pode compartilhar um código QR especial para outros usarem por 1000 pontos (NÃO o que eu compartilhei na etapa Blynk anterior; este código QR fornece permissão para usar o mesmo aplicativo que você, mas eles podem ' t alterar qualquer uma das definições ou configuração do botão - leia esta página, especificamente "compartilhe o acesso ao seu hardware"). Você precisa ter certeza de ligar o aplicativo (pressione o botão play no canto superior direito para ver o botão do microcontrolador em vez do botão de configurações da porca) para que outros usem o aplicativo.

Eu contornei o custo de 1000 pontos fornecendo minhas informações de login para minha amiga para que ela pudesse fazer login no aplicativo por meio da minha conta. Se você estiver enviando essas lâmpadas para pessoas que não são tão boas com eletrônicos (idosos, em geral), eu recomendo gastar US $ 2 para criar um link compartilhado para que eles não tenham acesso à sua conta e possam ' para bagunçar as configurações do seu aplicativo. Com esta opção QR (custo de 1000 pontos), eles ainda têm um clone do seu aplicativo, mas não podem alterar nada.

Etapa 8: usando o aplicativo

Agora, como você pode usar o app para controlar as lâmpadas?

Ligue e desligue a lâmpada com o botão grande de energia (vermelho quando desligado, verde quando ligado). Se a lâmpada for desligada, ele desliga automaticamente todos os outros botões no aplicativo e define RGB para 0, 0, 0. Quando você pressiona para ligar a lâmpada novamente, a lâmpada começa com um branco pulsante.

Existem três controles deslizantes RGB no canto superior direito para controlar a saída de cor RGB no piscar das lâmpadas. Eles atualizam a cor em tempo real conforme você ajusta os controles deslizantes. Você também pode ajustar a cor com o mapa de cores em forma de zebra na parte inferior do aplicativo. Ele está conectado aos controles deslizantes RGB, de modo que os controles deslizantes são atualizados com base na cor que você escolher no mapa e vice-versa. Este mapa é útil se você tem uma sombra que deseja em particular, mas não sabe os valores numéricos RGB apropriados.

Existem botões no lado esquerdo do aplicativo com animações predefinidas para feliz, zangado, triste e meh. "Feliz" faz a lâmpada piscar através das cores do arco-íris, "zangado" faz a lâmpada piscar entre vermelho e amarelo, "triste" faz a lâmpada piscar azul e azul celeste e "meh" faz com que a lâmpada crie um arco-íris giratório roda. Eu escolhi as do arco-íris para happy e meh, uma vez que é mais provável que sejam as animações diárias padrão. Sempre que você pressiona um dos botões predefinidos, todos os outros botões são desligados (ou seja, se você estava em "feliz", mas pressiona "zangado", o botão feliz desligará automaticamente após alguns segundos). Observe que vai demorar mais para mudar das animações happy e meh porque a lâmpada tem que passar por toda a animação do arco-íris antes de poder mudar a animação. Se você desligar qualquer um dos botões predefinidos, a lâmpada voltará a piscar por padrão, seja qual for a cor que corresponda aos controles deslizantes RGB. Se você tiver alguma das animações predefinidas ativadas, mas alterar os controles deslizantes RGB, nada acontecerá: a animação predefinida predomina.

Antes de desligar a lâmpada, pressione o botão de desligar no aplicativo como uma boa regra. Em seguida, pressione o botão liga / desliga no aplicativo ao conectar a lâmpada novamente. NÃO ajuste os botões do aplicativo quando alguma das lâmpadas não estiver ligada ou conectada a wi-fi (não é o fim do mundo, mas vai bagunçar a lâmpada Operação). Veja a próxima etapa para saber por quê …

Etapa 9: ** AVISO PARA OPERAÇÃO ADEQUADA **

Existe uma lacuna no funcionamento das lâmpadas. A interface do Blynk não me permite controlar seletivamente o que pode ser alternado quando algo está ligado ou desligado, mas eu coloquei condições no código para que se você alternar algo que não deveria ser alternado quando a lâmpada estiver desligada ou outra animação está ligado, a alternância se desfaz: isso levou muita depuração, mas funciona muito bem (demonstrado no vídeo acima: o aplicativo rejeita as alterações que ocorrem quando a lâmpada está desligada e, se as animações predefinidas estiverem ligadas, então qualquer alteração para os controles deslizantes não afetam a animação até que o botão predefinido seja desligado)!

A única armadilha restante é que se você alternar as coisas no aplicativo quando o chip não estiver conectado à internet, esta função automática de "desfazer" não funcionará e a lâmpada não seguirá os comandos do aplicativo. Então, quando você ligar a lâmpada, ela não refletirá o que você está fazendo com precisão (não importa o que aconteça, a lâmpada começa com um branco piscando quando você liga). Para corrigir isso, basta pressionar o grande botão liga / desliga: um ciclo de energia irá redefinir tudo no aplicativo para que a lâmpada funcione conforme o esperado.

Resumindo a história: sempre que você ligar a lâmpada, basta desligar e ligar o botão liga / desliga no aplicativo para redefinir tudo. Basta fazer isso se você desligar a lâmpada ou usar o aplicativo quando a lâmpada não estiver conectada (ou se a lâmpada de repente não estiver respondendo corretamente, mesmo quando você dá tempo para reagir, talvez se o seu wi-fi se desconectar aleatoriamente)

Etapa 10: Concluída

E pronto! É um belo presente para qualquer pessoa com quem você compartilha um relacionamento à distância: faça um para seus pais antes de ir para a faculdade ou se mudar para outro estado para o seu novo trabalho, faça um para seus avós quando você tiver menos tempo para visitá-los, faça um para manter sua empresa SO no trabalho, etc.

Aqui estão algumas variações adicionais que você pode fazer:

  • Você poderia piscar em várias cores (amarelo laranja vermelho) em vez da pulsação desbotada que eu tenho

    • Tenha controle de cor para os vários flashes (primeiro vermelho, segundo laranja, terceiro amarelo) em vez de apenas piscar versões brilhantes e escuras do mesmo tom
    • Para isso, você adicionaria um mapa de cores separado ou um conjunto de controles deslizantes para controlar as cores que cada animação percorre (então, em vez de sempre vermelho laranja amarelo, deixe-o individualmente controlável para que você possa ter verde azulado rosa branco, verde roxo azul, etc)
  • Existem outros tipos de animação que você pode experimentar no código de exemplo de teste de fita Adafruit Neopixel, como a opção theaterChase.
  • Se você deseja adicionar uma placa de breakout de alto-falante, você também pode ter uma opção de música para suas lâmpadas. Talvez peça para eles tocarem músicas diferentes para ocasiões diferentes. Ou, em vez de música, mensagens de voz gravadas.

Divirta-se personalizando as lâmpadas! Sinta-se à vontade para me enviar uma mensagem com perguntas ou comentários.

Recomendado: