INHOUDSOPGAWE:

Ligte bamboes (gekoppelde lamp): 3 stappe
Ligte bamboes (gekoppelde lamp): 3 stappe

Video: Ligte bamboes (gekoppelde lamp): 3 stappe

Video: Ligte bamboes (gekoppelde lamp): 3 stappe
Video: Узнав это СЕКРЕТ, ты никогда не выбросишь пластиковую бутылку! ТАКОГО ЕЩЕ НИКТО НЕ ВИДЕЛ! 2024, November
Anonim
Ligte bamboes (gekoppelde lamp)
Ligte bamboes (gekoppelde lamp)

Hallo en welkom!

Ligte bamboes is 'n gekoppelde lamp wat brand wanneer 'n kennisgewing ontvang word op die Android -slimfoon waarmee dit gekoppel is. Die doel van hierdie instruksies is om u die ontwerpstadium van die projek te wys: van die hardeware -argitektuur tot die Bluetooth Low Energy (BLE) -verbinding en die Android -toepassingsgebou.

Vir ons lamp het ons 'n plastiekplant gekies vir 'n koel versierontwerp. Die kennisgewings wat vir hierdie projek verskyn, kom van die volgende toepassings: oproepe, sms/mms, facebook, messenger, instagram, whatsapp en gmail. Een ligte kleur word toegeskryf vir elke tipe kennisgewing.

Vir hierdie projek benodig u:

  • 'N UC met 'n geïntegreerde BLE -module: nFR51822 RedBearLab
  • 3 NeoPixel -ring (12 RGB -LED's)
  • 'N Android -slimfoon
  • Android Studio

Elke kennisgewing het 'n spesifieke prioriteit, afhangende van die belangrikheid daarvan. Byvoorbeeld, 'n inkomende oproepkennisgewing is belangriker as 'n Facebook -kennisgewing. In hierdie geval word die kleur van die LED's gekoppel aan die inkomende oproepkennisgewing.

Die slimfoon waarop ons die toepassing ontwikkel het, is 'n Samsung Galaxy A5.

Stap 1: Hardeware -deel

Hardeware deel
Hardeware deel

Ons argitektuur is redelik eenvoudig.

Koppel die NeoPixel -ringpenne soos volg aan die nRF51822 -bord:

  • Inout Data -pen van die NeoPixel -ring na poort 3 van die uC.
  • Vcc van die NeoPixel -ring tot die 3.3V van die uC.
  • GND van die NeoPixel Ring tot die GND van die uC.

U kan sien dat ons nie die Output Data -pen van die NeoPixel Ring gebruik nie. Dit is omdat die invoerdata -penne van die drie NeoPixel -ringe wat ons in hierdie projek gebruik, almal gekoppel is aan dieselfde poort van die nRF51822 -bord (pen 3).

Stap 2: sagteware -deel

Sagteware -onderdeel
Sagteware -onderdeel
Sagteware -onderdeel
Sagteware -onderdeel
Sagteware -onderdeel
Sagteware -onderdeel

1. Die Bluetooth Lae Energie -kommunikasie:

In 'n BLE -kommunikasie ruil die bediener (wat in ons geval die uC is) en die kliënt (die slimfoon) data uit met GATT -transaksies. In hierdie transaksies word die data hiërargies georganiseer in afdelings genaamd dienste, wat konseptueel verwante stukke gebruikersdata genaamd kenmerke groepeer. In ons geval is die inkapseling van data eenvoudig, aangesien ons slegs een inligting van die kliënt na die bediener moet deurgee (sien die prent hierbo).

  • aan die bedienerkant: Om die nrf51822 -bord as 'n BLE -bediener te kan gebruik, installeer eers die "BLEPeripheral.h" -biblioteek op die Arduino IDE. Hierdie biblioteek bied funksies wat gereed is om te gebruik om dienste en eienskappe en advertensies te skep.
  • aan die kliëntkant: Om 'n BLE -kommunikasie in Android Studio te begin, moet u eers die BLE -toestemmings in die Manifest -lêer opstel. Voeg dan in die activity_main.xml -lêer 4 knoppies by: skandeer, stop skandering, koppel en ontkoppel, waardeur die toepassing kan soek na nabygeleë BLE -toestelle, stop die skandering, koppel en koppel aan 'n toestel. Implementeer in die main_activity.java -lêer die funksies wat met die vorige knoppies verband hou: startScanning (), stopscanning (), connectToDeviceSelected (), disconnectDeviceSelected (). Ten slotte, implementeer die terugbelfunksies wat gebel word wanneer die toestand van die kliënt verander.

2. Kennisgewingsbestuur

  • aan die kant van die kliënt (op Android Studio): Om 'n kennisgewing van die slimfoon af te luister, implementeer 'n kennisgewingsluisteraar wat geaktiveer word wanneer 'n kennisgewing in die statusbalk voorkom. Hierdie luisteraar na kennisgewings sal 'n 'boodskap', 'n bedoeling ', na die hoofaktiwiteit stuur wanneer 'n kennisgewing geplaas of verwyder word. Hierdie 'boodskap' bevat 'n kennisgewingkode wat help om die toepassing te identifiseer wat die kennisgewing geplaas het. Om die kennisgewing in die hoofaktiwiteit te verwerk, skep 'n uitsendingsontvanger wat die boodskap van die kennisgewingsluisteraar sal ontvang. Afhangende van die kennisgewingkode, word 'n ander karakter dan na die bediener gestuur.
  • aan die bedienerkant (aan Arduino IDE): die kennisgewing met die hoogste prioriteit word vertoon.

Stap 3: Stap 3: Bylaes

Hier vind u al die kodebronne.

Aanbeveel: