Spisu treści:

Jasny bambus (podłączona lampa): 3 kroki
Jasny bambus (podłączona lampa): 3 kroki

Wideo: Jasny bambus (podłączona lampa): 3 kroki

Wideo: Jasny bambus (podłączona lampa): 3 kroki
Wideo: Jak podłączyć oświetlenie ogrodowe od A do Z automatyczne lampy Wi-Fi bez betonu - Fox Corner 2024, Listopad
Anonim
Jasny bambus (podłączona lampa)
Jasny bambus (podłączona lampa)

Cześć i witaj!

Light bamboo to podłączona lampa, która zapala się po otrzymaniu powiadomienia na smartfonie z systemem Android, do którego jest podłączona. Celem tej instrukcji jest pokazanie etapu projektowania projektu: od architektury sprzętowej, przez połączenie Bluetooth Low Energy (BLE) i budowę aplikacji na Androida.

Do naszej lampy wybraliśmy plastikową roślinę, aby uzyskać fajny projekt dekoracyjny. W przypadku tego projektu wyświetlane powiadomienia pochodzą z następujących aplikacji: połączenia, sms/mms, facebook, messenger, instagram, WhatsApp ang gmail. Do każdego rodzaju powiadomienia przypisany jest jeden jasny kolor.

Do tego projektu będziesz potrzebować:

  • A uC ze zintegrowanym modułem BLE: nFR51822 RedBearLab
  • 3 pierścienie NeoPixel (12 diod LED RGB)
  • Smartfon z Androidem
  • Studio Android

Każde powiadomienie ma określony priorytet, w zależności od jego ważności. Na przykład powiadomienie o połączeniu przychodzącym jest ważniejsze niż powiadomienie na Facebooku. W takim przypadku kolor diod LED zostanie powiązany z powiadomieniem o połączeniu przychodzącym.

Smartfon, na którym stworzyliśmy aplikację, to Samsung Galaxy A5.

Krok 1: Część sprzętowa

Część sprzętowa
Część sprzętowa

Nasza architektura jest dość prosta.

Podłącz piny NeoPixel Ring do płyty nRF51822 w następujący sposób:

  • Inout Data pin pierścienia NeoPixel Ring do portu 3 uC.
  • Vcc pierścienia NeoPixel do 3,3 V uC.
  • GND pierścienia NeoPixel do GND uC.

Możesz zauważyć, że nie używamy pinu Output Data pierścienia NeoPixel. Dzieje się tak, ponieważ piny danych wejściowych trzech pierścieni NeoPixel, których używamy w tym projekcie, są wszystkie podłączone do tego samego portu płyty nRF51822 (pin 3).

Krok 2: Część oprogramowania

Część oprogramowania
Część oprogramowania
Część oprogramowania
Część oprogramowania
Część oprogramowania
Część oprogramowania

1. Komunikacja Bluetooth Low Energy:

W komunikacji BLE serwer (w naszym przypadku jest to uC) i klient (smartfon) wymieniają dane za pomocą transakcji GATT. W tych transakcjach dane są zorganizowane hierarchicznie w sekcje zwane usługami, które grupują powiązane pojęciowo fragmenty danych użytkownika zwane cechami. W naszym przypadku enkapsulacja danych jest prosta, ponieważ mamy tylko jedną informację do przekazania od klienta do serwera (patrz obrazek powyżej).

  • po stronie serwera: Aby móc używać płyty nrf51822 jako serwera BLE, najpierw zainstaluj bibliotekę "BLEPeripheral.h" na Arduino IDE. Ta biblioteka zawiera gotowe do użycia funkcje do tworzenia usług i charakterystyk oraz reklamy.
  • po stronie klienta: Aby rozpocząć komunikację BLE w Android Studio, najpierw skonfiguruj uprawnienia BLE w pliku Manifest. Następnie w pliku activity_main.xml dodaj 4 przyciski: skanuj, zatrzymaj skanowanie, połącz i rozłącz, które pozwolą aplikacji na skanowanie w poszukiwaniu pobliskich urządzeń BLE, zatrzymanie skanowania, połączenie i rozłączenie z urządzeniem. W pliku main_activity.java zaimplementuj funkcje, które są powiązane z poprzednimi przyciskami: startScanning(), stopscanning(), connectToDeviceSelected(), DisconnectDeviceSelected(). Na koniec zaimplementuj funkcje zwrotne, które są wywoływane, gdy stan klienta się zmieni.

2. Zarządzanie powiadomieniami

  • po stronie klienta (w Android Studio): Aby nasłuchiwać powiadomień przychodzących ze smartfona, zaimplementuj nasłuchiwanie powiadomień, które jest aktywowane, gdy powiadomienie pojawi się na pasku stanu. Ten detektor powiadomień wyśle „wiadomość”, zwaną intencją, do głównej aktywności, gdy powiadomienie zostanie opublikowane lub usunięte. Ta „wiadomość” zawiera kod powiadomienia, który pomaga zidentyfikować aplikację, która wysłała powiadomienie. Aby przetworzyć powiadomienie w działaniu głównym, utwórz odbiornik emisji, który odbierze wiadomość od odbiornika powiadomień. Następnie, w zależności od kodu powiadomienia, na serwer wysyłany jest inny znak.
  • po stronie serwera (na Arduino IDE): wyświetlane jest powiadomienie o najwyższym priorytecie.

Krok 3: Krok 3: Aneksy

Tutaj znajdziesz całe źródło kodu.

Zalecana: