Inhaltsverzeichnis:

Light Bamboo (verbundene Lampe) - Gunook
Light Bamboo (verbundene Lampe) - Gunook

Video: Light Bamboo (verbundene Lampe) - Gunook

Video: Light Bamboo (verbundene Lampe) - Gunook
Video: Modern Lighting Ideas from Bamboo | Make a Beautiful Lamp From Dried Bamboo | Wall Lights Design 2024, November
Anonim
Light Bamboo (Verbundene Lampe)
Light Bamboo (Verbundene Lampe)

Hallo und Willkommen!

Light Bamboo ist eine verbundene Lampe, die aufleuchtet, wenn eine Benachrichtigung auf dem Android-Smartphone eingeht, mit dem sie verbunden ist. Das Ziel dieses instructable ist es, Ihnen die Designphase des Projekts zu zeigen: von der Hardwarearchitektur über die Bluetooth Low Energy (BLE) -Verbindung und das Android-Anwendungsgebäude.

Für unsere Leuchte haben wir uns für ein cooles Deko-Design für eine Kunststoffpflanze entschieden. Für dieses Projekt stammen die angezeigten Benachrichtigungen von den folgenden Anwendungen: Anrufe, SMS/MMS, Facebook, Messenger, Instagram, WhatsApp und Gmail. Jeder Benachrichtigungsart wird eine Lichtfarbe zugeordnet.

Für dieses Projekt benötigen Sie:

  • Ein uC mit integriertem BLE-Modul: nFR51822 RedBearLab
  • 3 NeoPixel-Ring (12 RGB-LEDs)
  • Ein Android-Smartphone
  • Android-Studio

Jede Benachrichtigung hat je nach Wichtigkeit eine bestimmte Priorität. Beispielsweise ist eine Benachrichtigung über einen eingehenden Anruf wichtiger als eine Facebook-Benachrichtigung. In diesem Fall wird die Farbe der LEDs mit der Benachrichtigung über eingehende Anrufe verknüpft.

Das Smartphone, auf dem wir die Anwendung entwickelt haben, ist ein Samsung Galaxy A5.

Schritt 1: Hardware-Teil

Hardware-Teil
Hardware-Teil

Unsere Architektur ist ganz einfach.

Verbinden Sie die NeoPixel-Ring-Pins wie folgt mit der nRF51822-Platine:

  • Inout Data Pin des NeoPixel Rings an Port 3 des uC.
  • Vcc des NeoPixel-Rings auf die 3,3 V des uC.
  • GND des NeoPixel-Rings an GND des uC.

Sie können feststellen, dass wir den Output Data-Pin des NeoPixel-Rings nicht verwenden. Das liegt daran, dass die Input Data-Pins der drei NeoPixel-Ringe, die wir in diesem Projekt verwenden, alle mit demselben Port der nRF51822-Platine (Pin 3) verbunden sind.

Schritt 2: Softwareteil

Softwareteil
Softwareteil
Softwareteil
Softwareteil
Softwareteil
Softwareteil

1. Die Bluetooth Low Energy-Kommunikation:

Bei einer BLE-Kommunikation tauschen der Server (in unserem Fall der uC) und der Client (das Smartphone) Daten über GATT-Transaktionen aus. Bei diesen Transaktionen sind die Daten hierarchisch in Abschnitten, die als Dienste bezeichnet werden, organisiert, die konzeptionell verwandte Teile von Benutzerdaten, die als Merkmale bezeichnet werden, gruppieren. In unserem Fall ist die Datenkapselung einfach, da wir nur eine Information vom Client an den Server übergeben müssen (siehe Abbildung oben).

  • auf der Serverseite: Um das nrf51822 Board als BLE Server nutzen zu können, installieren Sie zunächst die Bibliothek "BLEPeripheral.h" auf der Arduino IDE. Diese Bibliothek stellt gebrauchsfertige Funktionen zur Erstellung der Dienste und Merkmale und Werbung bereit.
  • auf der Client-Seite: Um eine BLE-Kommunikation in Android Studio zu starten, konfigurieren Sie zuerst die BLE-Berechtigungen in der Manifest-Datei. Fügen Sie dann in der Datei activity_main.xml 4 Schaltflächen hinzu: scannen, scannen stoppen, verbinden und trennen, die es der Anwendung ermöglichen, nach BLE-Geräten in der Nähe zu suchen, den Scan zu stoppen, eine Verbindung zu einem Gerät herzustellen und die Verbindung zu einem Gerät zu trennen. Implementieren Sie in der Datei main_activity.java die Funktionen, die den vorherigen Schaltflächen zugeordnet sind: startScanning(), stopscanning(), connectToDeviceSelected(), DisconnectDeviceSelected(). Implementieren Sie schließlich die Callback-Funktionen, die aufgerufen werden, wenn sich der Zustand des Clients ändert.

2. Benachrichtigungsverwaltung

  • auf der Client-Seite (auf Android Studio): Um auf die vom Smartphone kommenden Benachrichtigungen zu hören, implementieren Sie einen Benachrichtigungs-Listener, der aktiviert wird, wenn eine Benachrichtigung in der Statusleiste auftritt. Dieser Benachrichtigungs-Listener sendet eine "Nachricht", eine sogenannte Absicht, an die Hauptaktivität, wenn eine Benachrichtigung veröffentlicht oder entfernt wird. Diese "Nachricht" enthält einen Benachrichtigungscode, der hilft, die Anwendung zu identifizieren, die die Benachrichtigung veröffentlicht hat. Um die Benachrichtigung in der Hauptaktivität zu verarbeiten, erstellen Sie einen Broadcast-Empfänger, der die Nachricht vom Benachrichtigungs-Listener empfängt. Dann wird je nach Benachrichtigungscode ein anderes Zeichen an den Server gesendet.
  • auf der Serverseite (auf Arduino IDE): die Benachrichtigung mit der höchsten Priorität wird angezeigt.

Schritt 3: Schritt 3: Anhänge

Hier finden Sie alle Codequellen.

Empfohlen: