Obsah:

Lehký bambus (připojená lampa): 3 kroky
Lehký bambus (připojená lampa): 3 kroky

Video: Lehký bambus (připojená lampa): 3 kroky

Video: Lehký bambus (připojená lampa): 3 kroky
Video: КОПАЕМ ОТ ДУШИ! ► Смотрим Shovel Knight: Treasure Trove 2024, Listopad
Anonim
Světlý bambus (připojená lampa)
Světlý bambus (připojená lampa)

Ahoj a vítejte!

Light bamboo je připojená lampa, která se rozsvítí, když je na smartphonu Android, ke kterému je připojeno, přijato oznámení. Cílem tohoto pokynu je ukázat vám fázi návrhu projektu: od hardwarové architektury po připojení Bluetooth Low Energy (BLE) a budování aplikací pro Android.

Pro naši lampu jsme vybrali zařízení na výrobu plastů pro chladný dekorační design. U tohoto projektu jsou zobrazená oznámení z následujících aplikací: hovory, sms/mms, facebook, messenger, instagram, whatsapp a gmail. Pro každý typ oznámení je přiřazena jedna světlá barva.

Pro tento projekt budete potřebovat:

  • UC s integrovaným modulem BLE: nFR51822 RedBearLab
  • 3 NeoPixel Ring (12 RGB LED)
  • Chytrý telefon Android
  • Android Studio

Každé oznámení má konkrétní prioritu v závislosti na jeho důležitosti. Například upozornění na příchozí hovor je důležitější než oznámení na Facebooku. V takovém případě bude barva LED diod přiřazena k oznámení o příchozím hovoru.

Smartphone, na kterém jsme aplikaci vyvinuli, je Samsung Galaxy A5.

Krok 1: Hardware část

Hardware část
Hardware část

Naše architektura je celkem jednoduchá.

Připojte kolíky NeoPixel Ring k desce nRF51822 následujícím způsobem:

  • Datový pin Inout NeoPixel Ring na port 3 uC.
  • Vcc NeoPixel Ring na 3,3 V uC.
  • GND prstence NeoPixel na GND uC.

Můžete si všimnout, že nepoužíváme pin výstupních dat prstenu NeoPixel. Důvodem je, že piny vstupních dat tří prstenů NeoPixel, které v tomto projektu používáme, jsou všechny připojeny ke stejnému portu desky nRF51822 (pin 3).

Krok 2: Část softwaru

Softwarová část
Softwarová část
Softwarová část
Softwarová část
Softwarová část
Softwarová část

1. Komunikace Bluetooth s nízkou energií:

V komunikaci BLE si server (což je v našem případě uC) a klient (smartphone) vyměňují data pomocí transakcí GATT. V těchto transakcích jsou data organizována hierarchicky v sekcích nazývaných služby, které seskupují koncepčně související části uživatelských dat nazývané charakteristiky. V našem případě je zapouzdření dat jednoduché, protože z klienta na server máme předat pouze jednu informaci (viz obrázek výše).

  • na straně serveru: Abyste mohli desku nrf51822 používat jako server BLE, nejprve nainstalujte do IDE Arduino knihovnu „BLEPeripheral.h“. Tato knihovna poskytuje funkce připravené k použití pro vytváření služeb a charakteristik a reklamy.
  • na straně klienta: Chcete -li zahájit komunikaci BLE v aplikaci Android Studio, nejprve nakonfigurujte oprávnění BLE v souboru Manifest. Poté do souboru activity_main.xml přidejte 4 tlačítka: skenování, zastavení skenování, připojení a odpojení, které umožní aplikaci vyhledávat blízká zařízení BLE, zastavit skenování, připojit a odpojit zařízení. V souboru main_activity.java implementujte funkce, které jsou spojeny s předchozími tlačítky: startScanning (), stopcanning (), connectToDeviceSelected (),connectDeviceSelected (). Nakonec implementujte funkce zpětného volání, které se zavolají, když se změní stav klienta.

2. Správa oznámení

  • na straně klienta (v aplikaci Android Studio): Chcete -li poslouchat oznámení přicházející ze smartphonu, implementujte přijímač oznámení, který se aktivuje, když se ve stavovém řádku objeví oznámení. Tento posluchač oznámení odešle „zprávu“, nazývanou záměr, hlavní aktivitě, když je oznámení zveřejněno nebo odstraněno. Tato „zpráva“obsahuje kód oznámení, který pomáhá identifikovat aplikaci, která oznámení zveřejnila. Chcete -li zpracovat oznámení v hlavní aktivitě, vytvořte přijímač vysílání, který obdrží zprávu od posluchače oznámení. V závislosti na kódu oznámení je pak na server odeslán jiný znak.
  • na straně serveru (na Arduino IDE): zobrazí se oznámení, které má nejvyšší prioritu.

Krok 3: Krok 3: Přílohy

Zde najdete veškerý zdroj kódu.

Doporučuje: