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

TextPlayBulb: REST Enabled PlayBulb Using Raspberry Pi 3, BLE and Telegram: 3 Steps
TextPlayBulb: REST Enabled PlayBulb Using Raspberry Pi 3, BLE and Telegram: 3 Steps

Βίντεο: TextPlayBulb: REST Enabled PlayBulb Using Raspberry Pi 3, BLE and Telegram: 3 Steps

Βίντεο: TextPlayBulb: REST Enabled PlayBulb Using Raspberry Pi 3, BLE and Telegram: 3 Steps
Βίντεο: Using Alexa, IFTTT and the Watson IoT Platform to control (ble) devices 2024, Ιούλιος
Anonim
TextPlayBulb: REST Enabled PlayBulb Using Raspberry Pi 3, BLE and Telegram
TextPlayBulb: REST Enabled PlayBulb Using Raspberry Pi 3, BLE and Telegram

Αυτό το εκπαιδευτικό δείχνει πώς μπορείτε να συνδεθείτε σε μια λάμπα LED PlayBulb Color bluetooth χρησιμοποιώντας Python, βιβλιοθήκη Raspberry Pi 3 και Bluetooth και να επεκτείνετε τα χειριστήρια μέσω REST API για σενάριο IoT, και ως αναπήδηση, το έργο δείχνει επίσης πώς να επεκτείνετε το REST API για τον έλεγχο του PlayBulb σας μέσω προγράμματος -πελάτη κειμένου IM, π.χ. Τηλεγράφημα, όπως να μιλάτε στο αυτοματοποιημένο σπίτι σας μέσω κειμένου.

Αυτό το έργο βασίζεται σε 3 ενότητες:

  1. pyBulbDriver: Συνδεθείτε στο PlayBulb μέσω BLE gatttool και python.
  2. pyBulbServer: Χρησιμοποιώντας το pyBulbDriver για να εκθέσετε το στοιχείο ελέγχου λάμπας μέσω REST API.
  3. pyBulbMessenger: Σύνδεση σε bot τηλεγράφου για αποστολή και λήψη εντολών μέσω προγράμματος -πελάτη telegram που είναι εγκατεστημένο σε οποιοδήποτε έξυπνο τηλέφωνο και χρήση του REST API για την έκδοση εντολών στο PlayBulb.

Μπορείτε να κλωνοποιήσετε το έργο μέσω του git repository:

Στόχος του Έργου:

Για να δημιουργήσετε ένα βασικό εργαλείο για την αλληλεπίδραση με το λαμπτήρα σας μέσω διαφορετικών τρόπων, όπως η αποστολή μηνυμάτων προς το παρόν, τα μελλοντικά σενάρια θα μπορούσαν να περιλαμβάνουν εντολές ομιλίας, χειρονομίες στη λάμπα … κλπ.

Άλλοι πόροι που χρησιμοποιούνται για τη δημιουργία αυτού του εκπαιδευτικού:

  • Πρωτόκολλο Bluetooth PlayBulb Color:
  • Σύνδεση Python με Playbulb μέσω Bluetooth:
  • Ρύθμιση του bot τηλεγράφου:

Συνεισφορά

Το pyBulbDriver επεκτείνεται για να είναι πιο ευέλικτο και παραμετροποιημένο για ευκολία μελλοντικής επέκτασης, δημιουργώντας ένα σενάριο που θα σας επιτρέψει να παίζετε με γραπτά μηνύματα στη λάμπα σας. Απλή διεπαφή για δοκιμές και αναπαραγωγή.

Περιορισμός

Το πρόγραμμα οδήγησης είναι γραμμένο για το PlayBulb Color, για άλλους τύπους PlayBulb π.χ. Πρωτότυπο ή κερί, ο κωδικός bluetooth στο pyBulbDriver πρέπει να αλλάξει σύμφωνα με το προαναφερθέν πρωτόκολλο.

Πρέπει να καταχωρίσετε έναν λογαριασμό τηλεγράφου και να λάβετε ένα κλειδί api, το οποίο προσθέτετε στο pyBulbMessenger.py, ακολουθήστε τη ρύθμιση του bot τηλεγράφου σε άλλους πόρους.

Βήμα 1: Ρύθμιση του έργου

1. Λήψη του κλειδιού API από το Telegram

> Ακολουθήστε την τρέχουσα οδηγία για να λάβετε το κλειδί API σας

> Προσθέστε το κλειδί api σε μεταβλητή api στο pyBulbMessenger.py

2. Ρύθμιση του ονόματος PlayBulb στο pyBulbDriver

> Για να βρείτε το gatttool τη συσκευή εγγραφής, ορίστε το όνομα της συσκευής σας για σάρωση χρησιμοποιώντας το pyBulbDriver.scanForBulb ("PLAYBULB COLOR"). Μπορείτε να βρείτε ένα παράδειγμα στο pyBulbServer.py για να ρυθμίσετε τον διακομιστή REST

3. Για να ξεκινήσει το έργο

> Πρέπει πρώτα να ξεκινήσετε το pyBulbServer.py και μετά να το ακολουθήσετε το pyBulbMessenger.py για την αποστολή μηνυμάτων. Μπορείτε να δοκιμάσετε τις εντολές pyBulbServer χρησιμοποιώντας το CURL.

4. Απαιτούμενο υλικό:

> Raspberry Pi 3 και PlayBulb Color ή PlayBulb Candle

> Εγκατάσταση Telegram για Android ή iOS

5. Εγκατάσταση του Rasberry Pi 3 LE Bluetooth:

www.elinux.org/RPi_Bluetooth_LE

Βήμα 2: Περιήγηση στον κώδικα

pyBulbDriver.py

Το pyBulbDriver περιέχει τις κατηγορίες προγραμμάτων οδήγησης για σύνδεση στο PlayBulb μέσω BLE

Το pyBulbDriver μπορεί επίσης να χρησιμοποιηθεί για οποιαδήποτε άλλα γενικά έργα, καθώς περιέχει μόνο τον κώδικα για τη σάρωση και τη ρύθμιση των συνδέσεων playBulb.

Τα κύρια API για διεπαφή εφαρμογής χρήστη:

  • scanForBulb (devicename: String)> Για σάρωση του PlayBulb ή του PlayBulbs μέσω του ονόματος της συσκευής τους
  • setBulbColor (s: int, r: int, g: int, b: int)> Για να ορίσετε τις τιμές φωτεινότητας και χρώματος RGB (0 έως 255)
  • setBulbEffect (s: int, r: int, g: int, b: int, mode: int, onbeat: int, offbeat: int)> Παρόμοιο με το setBulbColor, αλλά περιλαμβάνει τον τύπο του εφέ και την ταχύτητα Για να μάθετε περισσότερα, ελέγξτε την ενότητα Εφέ του πρωτοκόλλου χρώματος

Σε αυτήν την τάξη θα βρείτε επίσης άλλες βοηθητικές μεθόδους που προορίζονται για έλεγχο ακεραιότητας δεδομένων και όχι για διεπαφή χρήστη

  • convertRGBToHexaCmd (s, r, g, b)
  • convertIntToHex (αριθμός)
  • checkModeAndSpeed (λειτουργία, offbeat, onbeat)
  • έλεγχοι RGBInBounds (s, r, g, b)

pyBulbServer.py

Το pyBulbServer εκθέτει τη διεπαφή εφαρμογής χρήστη σε υπερσυνδέσμους RESTful χρησιμοποιώντας PUT και JSON για αποστολή και λήψη δεδομένων στο pyBulbDriver. Επίσης η σάρωση και η αρχικοποίηση της σύνδεσης BLE γίνεται όταν ο διακομιστής είναι ενεργοποιημένος.

Το pyBulbResource (Resource) διοχετεύει τις κλήσεις στον διακομιστή REST χρησιμοποιώντας χρώμα και εφέ για να ορίσει την εντολή bulb.

Παράδειγμα Για εντολή εφέ:

127.0.0.1/bulb/effect

JSON POST> {data ':' {"s": 0, "r": 255, "g": 255, "b": 255, "m": 1, "on": 15, "off": 15 } '}

pyBulbMessenger.py

Τέλος, το pyBulbMessenger είναι υπεύθυνο για τη διασύνδεση του bot bot του Telegram που είναι συνδεδεμένο με τον πελάτη τηλεφώνου σας. Για περισσότερες λεπτομέρειες σχετικά με τον τρόπο ρύθμισης παραμέτρων και σύνδεσης σε ένα τηλεγράφημα bot ελέγξτε

Το cmdHandler (bot, ενημέρωση) είναι το σημείο όπου οι εντολές κειμένου ορίζονται και συνδέονται με το PlayBulb μέσω του RESTful API.

Προς το παρόν το έργο έχει μόνο κείμενο, ένας άλλος στόχος είναι επίσης η αποστολή εγγεγραμμένων φωνητικών μηνυμάτων που θα αποστέλλονται σε έναν αναγνωριστή ομιλίας για να ενεργοποιήσουν άλλες εντολές (Δεν έχει υλοποιηθεί ακόμα).

Βήμα 3: Συμπέρασμα

Ο τρέχων σχεδιασμός αρχιτεκτονικής αφορούσε περισσότερο την απλοποίηση παρά την επεκτασιμότητα. Εξακολουθεί να λείπει η συνδεσιμότητα της ομάδας, καθώς και περισσότερες εφαρμογές που αφορούν την αποστολή μηνυμάτων στον λαμπτήρα είτε για άμεση εντολή είτε για παιχνιδιάρικη αλληλεπίδραση, είναι ακόμη υπό έρευνα.

Με την εγγραφή σας στο git repo ή μετά, θα βρείτε περισσότερες λεπτομέρειες σχετικά με αυτές τις ενημερώσεις. Ο λόγος για ένα τέτοιο έργο ήταν η διασύνδεση του playBulb και η δημιουργία μιας διεπαφής RESTful για ευκολία ανάπτυξης σε ένα IoT (σενάριο internet of things), αλλά και το άνοιγμα της ευκαιρίας για τη χρήση διαφορετικών τρόπων μέσω του τηλεγράφου IM Client, όπως εικόνες, φωνή και κείμενο για αλληλεπίδραση με συσκευές από ερευνητική σκοπιά.

Συνιστάται: