Sadržaj:

Svijetli bambus (spojena lampa): 3 koraka
Svijetli bambus (spojena lampa): 3 koraka

Video: Svijetli bambus (spojena lampa): 3 koraka

Video: Svijetli bambus (spojena lampa): 3 koraka
Video: Электрика в квартире своими руками. Финал. Переделка хрущевки от А до Я. #11 2024, Studeni
Anonim
Svijetli bambus (spojena lampa)
Svijetli bambus (spojena lampa)

Pozdrav i dobrodošli!

Svjetlosni bambus je spojena lampica koja svijetli kada se primi obavijest na Android pametnom telefonu na koji je spojen. Cilj ovog uputstva je prikazati fazu projektiranja projekta: od hardverske arhitekture do Bluetooth Low Energy (BLE) veze i izgradnje Android aplikacija.

Za našu svjetiljku odabrali smo plastičnu biljku za hladan dizajn ukrašavanja. Za ovaj projekt prikazane su obavijesti iz sljedećih aplikacija: pozivi, sms/mms, facebook, messenger, instagram, whatsapp gmail. Za svaku vrstu obavijesti pripisuje se jedna svijetla boja.

Za ovaj projekt trebat će vam:

  • UC s integriranim BLE modulom: nFR51822 RedBearLab
  • 3 NeoPixel prstena (12 RGB LED dioda)
  • Android pametni telefon
  • Android Studio

Svaka obavijest ima određeni prioritet, ovisno o važnosti. Na primjer, obavijest o dolaznom pozivu važnija je od obavijesti na Facebooku. U tom slučaju boja LED dioda bit će pridružena obavijesti o dolaznom pozivu.

Pametni telefon na kojem smo razvili aplikaciju je Samsung Galaxy A5.

Korak 1: Dio hardvera

Dio hardvera
Dio hardvera

Naša je arhitektura vrlo jednostavna.

Priključite pinove NeoPixel prstena na ploču nRF51822 na sljedeći način:

  • Ulazni podatkovni pin NeoPixel prstena na priključak 3 uC -a.
  • Vcc NeoPixel prstena na 3.3V uC.
  • GND prstena NeoPixel do GND uC -a.

Možete primijetiti da ne koristimo pin izlaznih podataka NeoPixel prstena. To je zato što su sve pinove ulaznih podataka tri NeoPixel prstena koje koristimo u ovom projektu svi spojeni na isti port na ploči nRF51822 (pin 3).

Korak 2: Dio softvera

Softverski dio
Softverski dio
Softverski dio
Softverski dio
Softverski dio
Softverski dio

1. Bluetooth niskoenergetska komunikacija:

U BLE komunikaciji poslužitelj (što je u našem slučaju uC) i klijent (pametni telefon) razmjenjuju podatke pomoću GATT transakcija. U tim transakcijama podaci su hijerarhijski organizirani u odjeljke nazvane usluge, koji grupiraju konceptualno povezane dijelove korisničkih podataka koji se nazivaju karakteristike. U našem slučaju, enkapsulacija podataka je jednostavna jer imamo samo jednu informaciju za prosljeđivanje od klijenta do poslužitelja (pogledajte gornju sliku).

  • na strani poslužitelja: Da biste mogli koristiti ploču nrf51822 kao BLE poslužitelj, najprije instalirajte knjižnicu "BLEPeripheral.h" na Arduino IDE. Ova knjižnica nudi funkcije spremne za upotrebu za stvaranje usluga i karakteristika te oglašavanje.
  • na strani klijenta: Da biste započeli BLE komunikaciju u Android Studiju, najprije konfigurirajte dopuštenja BLE u datoteci Manifest. Zatim u datoteku activity_main.xml dodajte 4 gumba: skeniranje, zaustavljanje skeniranja, povezivanje i prekid veze koji će aplikaciji omogućiti da traži obližnje BLE uređaje, zaustavi skeniranje, poveže se i prekine vezu s uređajem. U datoteci main_activity.java implementirajte funkcije povezane s prethodnim gumbima: startScanning (), stopcanning (), connectToDeviceSelected (), disconnectDeviceSelected (). Na kraju, implementirajte funkcije povratnog poziva koje se pozivaju kada se promijeni stanje klijenta.

2. Upravljanje obavijestima

  • na strani klijenta (u Android Studiju): Da biste slušali obavijesti koje dolaze sa pametnog telefona, implementirajte slušatelja obavijesti koji se aktivira kada se obavijest pojavi na statusnoj traci. Ovaj slušatelj obavijesti poslat će "poruku", nazvanu namjera, glavnoj aktivnosti kada se obavijest objavi ili ukloni. Ova "poruka" sadrži kôd obavijesti koji pomaže identificirati aplikaciju koja je objavila obavijest. Za obradu obavijesti u glavnoj aktivnosti stvorite prijemnik za emitiranje koji će primati poruku od slušatelja obavijesti. Zatim se, ovisno o kodu obavijesti, na poslužitelj šalje drugačiji znak.
  • na strani poslužitelja (na Arduino IDE -u): prikazuje se obavijest koja ima najveći prioritet.

Korak 3: Korak 3: Prilozi

Ovdje ćete pronaći sav izvor koda.

Preporučeni: