Índice:

Bambu leve (lâmpada conectada): 3 etapas
Bambu leve (lâmpada conectada): 3 etapas

Vídeo: Bambu leve (lâmpada conectada): 3 etapas

Vídeo: Bambu leve (lâmpada conectada): 3 etapas
Vídeo: Policia brasileira x polícia Russa quem ganha #shorts 2024, Novembro
Anonim
Bambu claro (lâmpada conectada)
Bambu claro (lâmpada conectada)

Olá e bem-vindo!

Bambu claro é uma lâmpada conectada que acende quando uma notificação é recebida no smartphone Android ao qual está conectado. O objetivo deste instrutivo é mostrar a você o estágio de design do projeto: da arquitetura de hardware, à conexão Bluetooth Low Energy (BLE) e à construção do aplicativo Android.

Para a nossa lâmpada, escolhemos uma planta de plástico para um design de decoração legal. Para este projeto, as notificações apresentadas são das seguintes aplicações: chamadas, sms / mms, facebook, messenger, instagram, whatsapp ang gmail. Uma cor clara é atribuída para cada tipo de notificação.

Para este projeto, você precisará de:

  • Um uC com um módulo BLE integrado: nFR51822 RedBearLab
  • 3 anel NeoPixel (12 LEDs RGB)
  • Um smartphone Android
  • Android Studio

Cada notificação tem uma prioridade específica, dependendo de sua importância. Por exemplo, uma notificação de chamada recebida é mais importante do que uma notificação do Facebook. Nesse caso, a cor dos LEDs será associada à notificação de chamada recebida.

O smartphone no qual desenvolvemos o aplicativo é um Samsung Galaxy A5.

Etapa 1: peça de hardware

Peça de Hardware
Peça de Hardware

Nossa arquitetura é bastante simples.

Conecte os pinos do anel NeoPixel à placa nRF51822 da seguinte forma:

  • Pino de dados de entrada do anel NeoPixel para a porta 3 do uC.
  • Vcc do anel NeoPixel para 3,3 V do uC.
  • GND do Anel NeoPixel para o GND do uC.

Você pode notar que não usamos o pino de dados de saída do anel NeoPixel. Isso ocorre porque os pinos de dados de entrada dos três anéis NeoPixel que usamos neste projeto estão todos conectados à mesma porta da placa nRF51822 (pino 3).

Etapa 2: Parte do software

Parte de software
Parte de software
Parte de software
Parte de software
Parte de software
Parte de software

1. A comunicação Bluetooth Low Energy:

Em uma comunicação BLE, o servidor (que é no nosso caso o uC) e o cliente (o smartphone) trocam dados usando transações GATT. Nessas transações, os dados são organizados hierarquicamente em seções chamadas de serviços, que agrupam partes conceitualmente relacionadas de dados do usuário chamadas de características. No nosso caso, o encapsulamento dos dados é simples, pois temos apenas uma informação para passar do cliente para o servidor (veja a imagem acima).

  • no lado do servidor: Para poder usar a placa nrf51822 como um servidor BLE, primeiro instale a biblioteca "BLEPeripheral.h" no Arduino IDE. Esta biblioteca fornece funções prontas para uso para a criação de serviços e características e publicidade.
  • no lado do cliente: para iniciar uma comunicação BLE no Android Studio, primeiro configure as permissões BLE no arquivo Manifest. Em seguida, no arquivo activity_main.xml, adicione 4 botões: digitalizar, interromper a digitalização, conectar e desconectar que permitirá que o aplicativo faça a varredura de dispositivos BLE próximos, pare a varredura, conecte e desconecte de um dispositivo. No arquivo main_activity.java, implemente as funções associadas aos botões anteriores: startScanning (), stopscanning (), connectToDeviceSelected (), disconnectDeviceSelected (). Finalmente, implemente as funções de retorno de chamada que são chamadas quando o estado do cliente muda.

2. Gerenciamento de notificação

  • no lado do cliente (no Android Studio): Para ouvir as notificações vindas do smartphone, implemente um listener de notificação que é ativado quando ocorre uma notificação na barra de status. Este ouvinte de notificação enviará uma "mensagem", chamada de intent, para a atividade principal quando uma notificação for postada ou removida. Essa "mensagem" contém um código de notificação que ajuda a identificar o aplicativo que postou a notificação. Para processar a notificação na atividade principal, crie um broadcast receiver que receberá a mensagem do listener de notificação. Então, dependendo do código de notificação, um caractere diferente é enviado ao servidor.
  • no lado do servidor (no Arduino IDE): a notificação que tem a maior prioridade é exibida.

Etapa 3: Etapa 3: Anexos

Aqui, você encontrará todo o código-fonte.

Recomendado: