Inhoudsopgave:

Licht bamboe (verbonden lamp): 3 stappen
Licht bamboe (verbonden lamp): 3 stappen

Video: Licht bamboe (verbonden lamp): 3 stappen

Video: Licht bamboe (verbonden lamp): 3 stappen
Video: Dit gebeurt er als je een week geen ondergoed draagt 2024, November
Anonim
Licht Bamboe (Verbonden Lamp)
Licht Bamboe (Verbonden Lamp)

Hallo en welkom!

Light Bamboo is een connected lamp die oplicht wanneer er een melding binnenkomt op de Android-smartphone waarmee hij is verbonden. Het doel van deze instructable is om u de ontwerpfase van het project te laten zien: van de hardware-architectuur tot de Bluetooth Low Energy (BLE)-verbinding en het bouwen van de Android-applicatie.

Voor onze lamp hebben we gekozen voor een plastic plant voor een cool decorerend ontwerp. Voor dit project zijn de meldingen die worden weergegeven afkomstig van de volgende applicaties: oproepen, sms/mms, facebook, messenger, instagram, whatsapp ang gmail. Voor elk type melding wordt één lichte kleur toegekend.

Voor dit project heb je nodig:

  • Een uC met een geïntegreerde BLE-module: nFR51822 RedBearLab
  • 3 NeoPixel Ring (12 RGB-LED's)
  • Een Android-smartphone
  • Android Studio

Elke melding heeft een specifieke prioriteit, afhankelijk van het belang ervan. Zo is een inkomende oproep notificatie belangrijker dan een Facebook notificatie. In dat geval wordt de kleur van de LED's gekoppeld aan de melding van een inkomende oproep.

De smartphone waarop we de applicatie hebben ontwikkeld is een Samsung Galaxy A5.

Stap 1: Hardware-onderdeel

Hardware-onderdeel
Hardware-onderdeel

Onze architectuur is vrij eenvoudig.

Sluit de NeoPixel Ring-pinnen als volgt aan op de nRF51822-kaart:

  • Inout Data pin van de NeoPixel Ring naar poort 3 van de uC.
  • Vcc van de NeoPixel Ring naar de 3.3V van de uC.
  • GND van de NeoPixel Ring naar de GND van de uC.

Je merkt dat we de Output Data pin van de NeoPixel Ring niet gebruiken. Dat komt omdat de Input Data-pinnen van de drie NeoPixel Rings die we in dit project gebruiken allemaal zijn verbonden met dezelfde poort van het nRF51822-bord (pin 3).

Stap 2: Softwareonderdeel

Softwareonderdeel
Softwareonderdeel
Softwareonderdeel
Softwareonderdeel
Softwareonderdeel
Softwareonderdeel

1. De Bluetooth Low Energy-communicatie:

Bij een BLE-communicatie wisselen de server (in ons geval de uC) en de client (de smartphone) gegevens uit via GATT-transacties. Bij die transacties zijn de gegevens hiërarchisch georganiseerd in secties die services worden genoemd en die conceptueel gerelateerde stukjes gebruikersgegevens groeperen die kenmerken worden genoemd. In ons geval is het inkapselen van gegevens eenvoudig, omdat we maar één informatie van de client naar de server hoeven door te geven (zie de afbeelding hierboven).

  • aan de serverkant: Om het nrf51822-bord als een BLE-server te kunnen gebruiken, installeert u eerst de "BLEPeripheral.h" -bibliotheek op de Arduino IDE. Deze bibliotheek biedt kant-en-klare functies voor het maken van de services en kenmerken en advertenties.
  • aan de clientzijde: om een BLE-communicatie in Android Studio te starten, configureert u eerst de BLE-machtigingen in het manifestbestand. Voeg vervolgens in het activity_main.xml-bestand 4 knoppen toe: scannen, scannen stoppen, verbinden en loskoppelen waarmee de toepassing kan scannen naar BLE-apparaten in de buurt, de scan kan stoppen, verbinding kan maken en de verbinding met een apparaat kan verbreken. Implementeer in het bestand main_activity.java de functies die zijn gekoppeld aan de vorige knoppen: startScanning(), stopscanning(), connectToDeviceSelected(), disconnectDeviceSelected(). Implementeer ten slotte de callback-functies die worden aangeroepen wanneer de status van de client verandert.

2. Beheer van meldingen

  • aan de clientzijde (op Android Studio): Om te luisteren naar de meldingen die van de smartphone komen, implementeert u een meldingslistener die wordt geactiveerd wanneer een melding in de statusbalk voorkomt. Deze notificatielistener stuurt een "bericht", een intentie genaamd, naar de hoofdactiviteit wanneer een notificatie wordt gepost of verwijderd. Dit "bericht" bevat een meldingscode die helpt bij het identificeren van de toepassing die de melding heeft geplaatst. Als u de melding in de hoofdactiviteit wilt verwerken, maakt u een uitzendontvanger die het bericht van de meldingsluisteraar ontvangt. Vervolgens wordt, afhankelijk van de meldingscode, een ander teken naar de server gestuurd.
  • aan de serverzijde (op Arduino IDE): de melding met de hoogste prioriteit wordt weergegeven.

Stap 3: Stap 3: Bijlagen

Hier vindt u alle codebronnen.

Aanbevolen: