Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
Hei og velkommen!
Light bamboo er en tilkoblet lampe som lyser når en melding mottas på Android -smarttelefonen som den er koblet til. Målet med denne instruksen er å vise deg designfasen av prosjektet: fra maskinvarearkitekturen til Bluetooth Low Energy (BLE) -forbindelsen og Android -applikasjonsbygningen.
Til lampen vår valgte vi et plastanlegg for et kult dekorasjonsdesign. For dette prosjektet er varslene som vises fra følgende applikasjoner: samtaler, sms/mms, facebook, messenger, instagram, whatsapp ang gmail. En lys farge tilskrives hver type melding.
For dette prosjektet trenger du:
- En uC med en integrert BLE -modul: nFR51822 RedBearLab
- 3 NeoPixel -ring (12 RGB -lysdioder)
- En Android -smarttelefon
- Android Studio
Hver melding har en bestemt prioritet, avhengig av viktigheten. For eksempel er et varsel om innkommende anrop viktigere enn et Facebook -varsel. I så fall vil fargene på lysdiodene knyttes til varslingen om innkommende anrop.
Smarttelefonen som vi utviklet applikasjonen på er en Samsung Galaxy A5.
Trinn 1: Maskinvaredel
Arkitekturen vår er ganske enkel.
Koble NeoPixel -ringpinnene til nRF51822 -kortet som følger:
- Inout Datapinne på NeoPixel -ringen til port 3 på uC.
- Vcc av NeoPixel Ring til 3.3V av uC.
- GND for NeoPixel Ring til GND for uC.
Du kan legge merke til at vi ikke bruker Output Data -pinnen til NeoPixel Ring. Det er fordi Input Data -pinnene til de tre NeoPixel -ringene vi bruker i dette prosjektet alle er koblet til den samme porten på nRF51822 -kortet (pin 3).
Trinn 2: Programvaredel
1. Bluetooth lavenergikommunikasjon:
I en BLE -kommunikasjon utveksler serveren (som i vårt tilfelle uC) og klienten (smarttelefonen) data ved hjelp av GATT -transaksjoner. I disse transaksjonene er dataene organisert hierarkisk i seksjoner kalt tjenester, som grupperer konseptuelt relaterte deler av brukerdata kalt egenskaper. I vårt tilfelle er datakapslingen enkel siden vi bare har én informasjon som skal overføres fra klienten til serveren (se bildet ovenfor).
- på serversiden: For å kunne bruke nrf51822 -kortet som en BLE -server, må du først installere "BLEPeripheral.h" -biblioteket på Arduino IDE. Dette biblioteket inneholder funksjoner som er klare til bruk for å lage tjenester og egenskaper og reklame.
- på klientsiden: For å starte en BLE -kommunikasjon i Android Studio må du først konfigurere BLE -tillatelsene i Manifest -filen. Deretter, i filen activity_main.xml, legger du til 4 knapper: skann, stopp skanning, koble til og fra, slik at programmet kan søke etter BLE -enheter i nærheten, stoppe skanningen, koble til og koble fra en enhet. I filen main_activity.java implementerer du funksjonene som er knyttet til de forrige knappene: startScanning (), stopscanning (), connectToDeviceSelected (), disconnectDeviceSelected (). Til slutt implementerer du tilbakeringingsfunksjonene som blir ringt opp når klientens tilstand endres.
2. Varslingshåndtering
- på klientsiden (på Android Studio): For å lytte etter varslene som kommer fra smarttelefonen, implementer du en varsellytter som aktiveres når et varsel skjer i statuslinjen. Denne varsellytteren sender en "melding", kalt en hensikt, til hovedaktiviteten når et varsel legges ut eller fjernes. Denne "meldingen" inneholder en varslingskode som hjelper deg med å identifisere applikasjonen som postet varselet. For å behandle varselet i hovedaktiviteten, opprett en kringkastingsmottaker som vil motta meldingen fra varsellytteren. Avhengig av varslingskoden sendes et annet tegn til serveren.
- på serversiden (på Arduino IDE): varselet som har høyest prioritet vises.
Trinn 3: Trinn 3: Vedlegg
Her finner du all kodekilde.