Πίνακας περιεχομένων:

Ελαφρύ μπαμπού (συνδεδεμένος λαμπτήρας): 3 βήματα
Ελαφρύ μπαμπού (συνδεδεμένος λαμπτήρας): 3 βήματα

Βίντεο: Ελαφρύ μπαμπού (συνδεδεμένος λαμπτήρας): 3 βήματα

Βίντεο: Ελαφρύ μπαμπού (συνδεδεμένος λαμπτήρας): 3 βήματα
Βίντεο: My First yarn haul from a seller on Etsy | Yarn Unboxing | Bag O Day Crochet Subtitles Available 2024, Νοέμβριος
Anonim
Light Bamboo (Συνδεδεμένος λαμπτήρας)
Light Bamboo (Συνδεδεμένος λαμπτήρας)

Γειά σας και καλώς ήρθατε!

Το ελαφρύ μπαμπού είναι μια συνδεδεμένη λάμπα που ανάβει όταν λαμβάνεται μια ειδοποίηση στο smartphone Android στο οποίο είναι συνδεδεμένο. Ο στόχος αυτού του οδηγού είναι να σας δείξει το στάδιο σχεδιασμού του έργου: από την αρχιτεκτονική υλικού, έως τη σύνδεση Bluetooth Low Energy (BLE) και το κτίριο εφαρμογών Android.

Για τη λάμπα μας, επιλέξαμε ένα πλαστικό φυτό για ένα δροσερό σχέδιο διακόσμησης. Για αυτό το έργο, οι ειδοποιήσεις που εμφανίζονται προέρχονται από τις ακόλουθες εφαρμογές: κλήσεις, sms/mms, facebook, messenger, instagram, whatsapp ang gmail. Για κάθε τύπο ειδοποίησης αποδίδεται ένα ανοιχτόχρωμο χρώμα.

Για αυτό το έργο, θα χρειαστείτε:

  • Ένα uC με ενσωματωμένη μονάδα BLE: nFR51822 RedBearLab
  • 3 δαχτυλίδι NeoPixel (12 LED RGB)
  • Ένα smartphone Android
  • Android Studio

Κάθε ειδοποίηση έχει μια συγκεκριμένη προτεραιότητα, ανάλογα με τη σημασία της. Για παράδειγμα, μια ειδοποίηση εισερχόμενης κλήσης είναι πιο σημαντική από μια ειδοποίηση Facebook. Σε αυτή την περίπτωση, το χρώμα των LED θα συσχετιστεί με την ειδοποίηση εισερχόμενης κλήσης.

Το smartphone στο οποίο αναπτύξαμε την εφαρμογή είναι ένα Samsung Galaxy A5.

Βήμα 1: Μέρος υλικού

Μέρος υλικού
Μέρος υλικού

Η αρχιτεκτονική μας είναι αρκετά απλή.

Συνδέστε τις καρφίτσες NeoPixel Ring στην πλακέτα nRF51822 ως εξής:

  • Καρφίτσα εισόδου δεδομένων του NeoPixel Ring στη θύρα 3 του uC.
  • Vcc του δακτυλίου NeoPixel στο 3,3V του uC.
  • GND του δακτυλίου NeoPixel στο GND του uC.

Μπορείτε να παρατηρήσετε ότι δεν χρησιμοποιούμε την καρφίτσα δεδομένων εξόδου του δακτυλίου NeoPixel. Αυτό συμβαίνει επειδή οι ακίδες δεδομένων εισόδου των τριών NeoPixel Rings που χρησιμοποιούμε σε αυτό το έργο είναι όλες συνδεδεμένες στην ίδια θύρα της πλακέτας nRF51822 (pin 3).

Βήμα 2: Μέρος λογισμικού

Μέρος λογισμικού
Μέρος λογισμικού
Μέρος λογισμικού
Μέρος λογισμικού
Μέρος λογισμικού
Μέρος λογισμικού

1. Η επικοινωνία Bluetooth χαμηλής ενέργειας:

Σε μια επικοινωνία BLE, ο διακομιστής (που στην περίπτωσή μας είναι το uC) και ο πελάτης (το smartphone) ανταλλάσσουν δεδομένα χρησιμοποιώντας συναλλαγές GATT. Σε αυτές τις συναλλαγές, τα δεδομένα οργανώνονται ιεραρχικά σε ενότητες που ονομάζονται υπηρεσίες, οι οποίες ομαδοποιούν εννοιολογικά συναφή κομμάτια δεδομένων χρήστη που ονομάζονται χαρακτηριστικά. Στην περίπτωσή μας, η ενσωμάτωση δεδομένων είναι απλή, καθώς έχουμε μόνο μία πληροφορία για να περάσουμε από τον πελάτη στον διακομιστή (δείτε την παραπάνω εικόνα).

  • από την πλευρά του διακομιστή: Για να μπορέσετε να χρησιμοποιήσετε τον πίνακα nrf51822 ως διακομιστή BLE, εγκαταστήστε πρώτα τη βιβλιοθήκη "BLEPeripheral.h" στο Arduino IDE. Αυτή η βιβλιοθήκη παρέχει λειτουργίες έτοιμες προς χρήση για τη δημιουργία υπηρεσιών και χαρακτηριστικών και διαφήμισης.
  • από την πλευρά του πελάτη: Για να ξεκινήσετε μια επικοινωνία BLE στο Android Studio, διαμορφώστε πρώτα τα δικαιώματα BLE στο αρχείο Manifest. Στη συνέχεια, στο αρχείο activity_main.xml, προσθέστε 4 κουμπιά: σάρωση, διακοπή σάρωσης, σύνδεση και αποσύνδεση που θα επιτρέψει στην εφαρμογή να σαρώσει κοντινές συσκευές BLE, να σταματήσει τη σάρωση, να συνδεθεί και να αποσυνδεθεί με μια συσκευή. Στο αρχείο main_activity.java, εφαρμόστε τις λειτουργίες που σχετίζονται με τα προηγούμενα κουμπιά: startScanning (), stopcanning (), connectToDeviceSelected (), disconnectDeviceSelected (). Τέλος, εφαρμόστε τις λειτουργίες επανάκλησης που καλούνται όταν αλλάζει η κατάσταση του προγράμματος -πελάτη Το

2. Διαχείριση κοινοποιήσεων

  • από την πλευρά του πελάτη (στο Android Studio): Για να ακούσετε τις ειδοποιήσεις που προέρχονται από το smartphone, εφαρμόστε έναν ακροατή ειδοποιήσεων ο οποίος ενεργοποιείται όταν εμφανιστεί μια ειδοποίηση στη γραμμή κατάστασης. Αυτός ο ακροατής ειδοποιήσεων θα στείλει ένα "μήνυμα", που ονομάζεται πρόθεση, στην κύρια δραστηριότητα όταν δημοσιευτεί ή αφαιρεθεί μια ειδοποίηση. Αυτό το "μήνυμα" περιέχει έναν κωδικό ειδοποίησης που βοηθά στον προσδιορισμό της εφαρμογής που δημοσίευσε την ειδοποίηση. Για να επεξεργαστείτε την ειδοποίηση στην κύρια δραστηριότητα, δημιουργήστε έναν δέκτη μετάδοσης που θα λαμβάνει το μήνυμα από τον ακροατή ειδοποιήσεων. Στη συνέχεια, ανάλογα με τον κωδικό ειδοποίησης, ένας διαφορετικός χαρακτήρας αποστέλλεται στον διακομιστή.
  • στην πλευρά του διακομιστή (στο Arduino IDE): εμφανίζεται η ειδοποίηση που έχει την υψηλότερη προτεραιότητα.

Βήμα 3: Βήμα 3: Παραρτήματα

Εδώ, θα βρείτε όλη την πηγή κώδικα.

Συνιστάται: