Sommario:

Bambù chiaro (lampada collegata): 3 passaggi
Bambù chiaro (lampada collegata): 3 passaggi

Video: Bambù chiaro (lampada collegata): 3 passaggi

Video: Bambù chiaro (lampada collegata): 3 passaggi
Video: 3-Schemi elettrici, multifilari: funzionale e montaggio, unifilare, topografico. 2024, Dicembre
Anonim
Bambù chiaro (lampada collegata)
Bambù chiaro (lampada collegata)

Ciao e Benvenuto!

Light bamboo è una lampada connessa che si accende quando viene ricevuta una notifica sullo smartphone Android a cui è connesso. L'obiettivo di questo tutorial è mostrarti la fase di progettazione del progetto: dall'architettura hardware, alla connessione Bluetooth Low Energy (BLE) e alla creazione dell'applicazione Android.

Per la nostra lampada, abbiamo scelto una pianta di plastica per un design decorativo accattivante. Per questo progetto, le notifiche che vengono visualizzate provengono dalle seguenti applicazioni: chiamate, sms/mms, facebook, messenger, instagram, whatsapp e gmail. Ad ogni tipo di notifica viene attribuito un colore chiaro.

Per questo progetto avrai bisogno di:

  • Un uC con un modulo BLE integrato: nFR51822 RedBearLab
  • 3 anelli NeoPixel (12 LED RGB)
  • Uno smartphone Android
  • Android Studio

Ogni notifica ha una priorità specifica, a seconda della sua importanza. Ad esempio, una notifica di chiamata in arrivo è più importante di una notifica di Facebook. In tal caso, il colore dei LED sarà associato alla notifica della chiamata in arrivo.

Lo smartphone su cui abbiamo sviluppato l'applicazione è un Samsung Galaxy A5.

Passaggio 1: parte hardware

Parte hardware
Parte hardware

La nostra architettura è abbastanza semplice.

Collegare i pin NeoPixel Ring alla scheda nRF51822 come segue:

  • Inout Data pin del NeoPixel Ring alla porta 3 dell'uC.
  • Vcc del NeoPixel Ring ai 3.3V dell'uC.
  • GND del NeoPixel Ring al GND dell'uC.

Puoi notare che non usiamo il pin Output Data del NeoPixel Ring. Questo perché i pin Input Data dei tre NeoPixel Ring che utilizziamo in questo progetto sono tutti collegati alla stessa porta della scheda nRF51822 (pin 3).

Passaggio 2: parte software

Parte software
Parte software
Parte software
Parte software
Parte software
Parte software

1. La comunicazione Bluetooth Low Energy:

In una comunicazione BLE, il server (che è nel nostro caso l'uC) e il client (lo smartphone) si scambiano dati utilizzando transazioni GATT. In tali transazioni, i dati sono organizzati gerarchicamente in sezioni chiamate servizi, che raggruppano parti di dati utente concettualmente correlate chiamate caratteristiche. Nel nostro caso, l'incapsulamento dei dati è semplice poiché abbiamo solo un'informazione da passare dal client al server (vedi l'immagine sopra).

  • lato server: per poter utilizzare la scheda nrf51822 come server BLE, installare prima la libreria "BLEPeripheral.h" sull'IDE Arduino. Questa libreria fornisce funzioni pronte all'uso per la creazione dei servizi, delle caratteristiche e della pubblicità.
  • lato client: per avviare una comunicazione BLE in Android Studio, configurare prima i permessi BLE nel file manifest. Quindi, nel file activity_main.xml, aggiungi 4 pulsanti: scansione, arresto scansione, connessione e disconnessione che consentiranno all'applicazione di cercare dispositivi BLE nelle vicinanze, interrompere la scansione, connettersi e disconnettersi a un dispositivo. Nel file main_activity.java, implementa le funzioni associate ai pulsanti precedenti: startScanning(), stopscanning(), connectToDeviceSelected(), disconnettereDeviceSelected(). Infine, implementa le funzioni di callback che vengono chiamate quando lo stato del client cambia.

2. Gestione delle notifiche

  • lato client (su Android Studio): Per ascoltare le notifiche provenienti dallo smartphone, implementare un listener di notifiche che si attiva quando si verifica una notifica nella barra di stato. Questo ascoltatore di notifiche invierà un "messaggio", chiamato intento, all'attività principale quando una notifica viene pubblicata o rimossa. Questo "messaggio" contiene un codice di notifica che aiuta a identificare l'applicazione che ha pubblicato la notifica. Per elaborare la notifica nell'attività principale, creare un ricevitore di trasmissione che riceverà il messaggio dall'ascoltatore della notifica. Quindi, a seconda del codice di notifica, viene inviato al server un carattere diverso.
  • lato server (su Arduino IDE): viene visualizzata la notifica con la priorità più alta.

Fase 3: Fase 3: Allegati

Qui troverai tutto il codice sorgente.

Consigliato: