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, Novembar
Anonim
Svijetli bambus (spojena lampa)
Svijetli bambus (spojena lampa)

Pozdrav i dobrodošli!

Light bamboo je spojena lampica koja svijetli kada se primi obavještenje na Android pametnom telefonu na koji je povezan. Cilj ovog uputstva je da vam pokaže fazu dizajna projekta: od hardverske arhitekture do Bluetooth Low Energy (BLE) veze i izgradnje Android aplikacija.

Za našu svjetiljku odabrali smo plastičnu biljku za cool 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 projekat trebat će vam:

  • UC sa integrisanim 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 o hardveru

Hardverski deo
Hardverski deo

Naša arhitektura je prilično jednostavna.

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

  • Ulazni pin za podatke NeoPixel prstena na port 3 uC -a.
  • Vcc NeoPixel prstena na 3.3V uC.
  • GND NeoPixel prstena na GND uC.

Primijetili ste da ne koristimo pin izlaznih podataka NeoPixel prstena. To je zato što su svi pinovi ulaznih podataka tri NeoPixel prstena koje koristimo u ovom projektu povezani na isti port ploče nRF51822 (pin 3).

Korak 2: Softverski dio

Softverski deo
Softverski deo
Softverski deo
Softverski deo
Softverski deo
Softverski deo

1. Bluetooth niskoenergetska komunikacija:

U BLE komunikaciji, server (koji je u našem slučaju uC) i klijent (pametni telefon) razmjenjuju podatke koristeći GATT transakcije. U tim transakcijama podaci su hijerarhijski organizirani u odjeljke koji se nazivaju usluge, a 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 servera: Da biste mogli koristiti nrf51822 ploču kao BLE server, prvo instalirajte "BLEPeripheral.h" biblioteku na Arduino IDE. Ova biblioteka nudi funkcije spremne za upotrebu za kreiranje usluga i karakteristika te oglašavanje.
  • na strani klijenta: Da biste započeli BLE komunikaciju u Android Studiju, prvo konfigurirajte dozvole BLE u datoteci Manifest. Zatim u datoteku activity_main.xml dodajte 4 gumba: skeniranje, zaustavljanje skeniranja, povezivanje i prekidanje 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 (). Konačno, implementirajte funkcije povratnog poziva koje se pozivaju kada se promijeni stanje klijenta.

2. Upravljanje obavještenjima

  • na strani klijenta (na Android Studiju): Da biste slušali obavijesti koje dolaze sa pametnog telefona, implementirajte osluškivač obavijesti koji se aktivira kada se obavijest pojavi na statusnoj traci. Ovaj slušalac obavijesti će poslati "poruku", koja se naziva namjera, u glavnu aktivnost kada se objavi ili ukloni obavijest. 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 primiti poruku od slušatelja obavijesti. Zatim se, ovisno o kodu obavijesti, na server šalje drugačiji znak.
  • na strani servera (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čuje se: