- Εγκατάσταση απαιτούμενων πακέτων για επικοινωνία Bluetooth:
- Σύζευξη συσκευών με Raspberry Pi μέσω Bluetooth:
- Διάγραμμα κυκλώματος:
- Έλεγχος LED με Android App BlueTerm:
- Επεξήγηση προγραμματισμού:
Το Raspberry Pi είναι πολύ δημοφιλές για έργα IoT λόγω της απρόσκοπτης δυνατότητάς του για ασύρματη επικοινωνία μέσω διαδικτύου. Το Raspberry Pi 3 διαθέτει ενσωματωμένο Wi-Fi και Bluetooth και το Bluetooth είναι ένα πολύ δημοφιλές πρωτόκολλο ασύρματης επικοινωνίας. Έτσι, σήμερα πρόκειται να ελέγξουμε το Raspberry Pi GPIO Pin μέσω μιας εφαρμογής Android χρησιμοποιώντας Bluetooth.
Εδώ χρησιμοποιούμε το Raspberry 2 Pi Model B που δεν διαθέτουν ενσωματωμένο Bluetooth, οπότε χρησιμοποιούμε ένα απλό USB Bluetooth dongle. Εκτός από αυτό χρειαζόμαστε μόνο μια αντίσταση (220R) και ένα LED για να δείξουμε τον έλεγχο GPIO. Εδώ χρησιμοποιούμε το πρωτόκολλο Bluetooth RFCOMM για ασύρματη επικοινωνία.
Ο προγραμματισμός για Bluetooth στο Python ακολουθεί το μοντέλο προγραμματισμού υποδοχής και οι επικοινωνίες μεταξύ των συσκευών Bluetooth πραγματοποιούνται μέσω της υποδοχής RFCOMM. Το RFCOMM (Radio Frequency Communication) είναι ένα πρωτόκολλο Bluetooth που παρέχει προσομοιωμένες σειριακές θύρες RS-232 και ονομάζεται επίσης Serial Port Emulation. Το προφίλ σειριακής θύρας Bluetooth βασίζεται σε αυτό το πρωτόκολλο. Το RFCOMM είναι πολύ δημοφιλές στις εφαρμογές Bluetooth λόγω της ευρείας υποστήριξης και του διαθέσιμου στο κοινό API. Συνδέεται με το πρωτόκολλο L2CAP.
Έχουμε χρησιμοποιήσει επίσης την ενότητα Bluetooth HC-06 στο προηγούμενο έργο μας: Φωνητικά LED με χρήση Raspberry Pi. Ελέγξτε επίσης τα προηγούμενα Έργα Raspberry Pi μαζί με μερικά καλά έργα IoT.
Εγκατάσταση απαιτούμενων πακέτων για επικοινωνία Bluetooth:
Πριν ξεκινήσουμε, πρέπει να εγκαταστήσουμε μερικά λογισμικά για τη ρύθμιση της επικοινωνίας Bluetooth στο Raspberry Pi. Θα πρέπει να έχετε εγκατεστημένη μια κάρτα μνήμης Raspbian Jessie με το Raspberry Pi. Ελέγξτε αυτό το άρθρο για να εγκαταστήσετε το Raspbian OS και να ξεκινήσετε με το Raspberry Pi. Τώρα λοιπόν πρέπει πρώτα να ενημερώσουμε το Raspbian χρησιμοποιώντας τις παρακάτω εντολές:
sudo apt-get ενημέρωση sudo apt-get αναβάθμιση
Τότε πρέπει να εγκαταστήσουμε μερικά πακέτα που σχετίζονται με το Bluetooth:
sudo apt-get εγκατάσταση bluetooth blueman bluez
Στη συνέχεια, επανεκκινήστε το Raspberry Pi:
επανεκκίνηση sudo
Το BlueZ είναι ένα έργο ανοιχτού κώδικα και μια επίσημη στοίβα πρωτοκόλλου Bluetooth Linux. Υποστηρίζει όλα τα βασικά πρωτόκολλα Bluetooth και τώρα γίνονται μέρος του επίσημου πυρήνα Linux.
Το Blueman παρέχει τη διεπαφή επιφάνειας εργασίας για τη διαχείριση και τον έλεγχο των συσκευών Bluetooth.
Τέλος, χρειαζόμαστε τη βιβλιοθήκη python για επικοινωνία Bluetooth, ώστε να μπορούμε να στέλνουμε και να λαμβάνουμε δεδομένα μέσω RFCOMM χρησιμοποιώντας τη γλώσσα Python:
sudo apt-get εγκατάσταση python-bluetooth
Εγκαταστήστε επίσης τις βιβλιοθήκες υποστήριξης GPIO για το Raspberry Pi:
sudo apt-get εγκατάσταση python-rpi.gpio
Τώρα τελειώσαμε με την εγκατάσταση των απαιτούμενων πακέτων για επικοινωνία Bluetooth στο Raspberry Pi.
Σύζευξη συσκευών με Raspberry Pi μέσω Bluetooth:
Η σύζευξη συσκευών Bluetooth, όπως το κινητό τηλέφωνο, με το Raspberry Pi είναι πολύ εύκολη. Εδώ έχουμε συνδυάσει το έξυπνο τηλέφωνο Android με το Raspberry Pi. Προηγουμένως έχουμε εγκαταστήσει το BlueZ στο Pi, το οποίο παρέχει ένα βοηθητικό πρόγραμμα γραμμής εντολών που ονομάζεται "bluetoothctl" για τη διαχείριση των συσκευών Bluetooth. Αλλά πριν από αυτό, συνδέστε το USB Bluetooth dongle με το Raspberry Pi και ελέγξτε αν ανιχνεύεται ή όχι, χρησιμοποιώντας την παρακάτω εντολή:
lsusb
Τώρα ανοίξτε το βοηθητικό πρόγραμμα bluetoothctl με την παρακάτω εντολή:
sudo bluetoothctl
Μπορείτε να ελέγξετε όλες τις εντολές του βοηθητικού προγράμματος bluetoothctl πληκτρολογώντας «βοήθεια» . Προς το παρόν πρέπει να εισαγάγουμε τις παρακάτω εντολές με δεδομένη σειρά:
# power on # agent on # Discoverable on # pairable on # scan on
Μετά την τελευταία εντολή "σάρωση ενεργοποιημένη", θα δείτε τη συσκευή Bluetooth (κινητό τηλέφωνο) στη λίστα. Βεβαιωθείτε ότι το κινητό σας έχει ενεργοποιήσει και ορατό το Bluetooth από κοντινές συσκευές. Στη συνέχεια, αντιγράψτε τη διεύθυνση MAC της συσκευής σας και αντιστοιχίστε τη χρησιμοποιώντας τη δεδομένη εντολή:
ζεύγος
Στη συνέχεια, θα σας ζητηθεί κωδικός πρόσβασης ή Pin στην κονσόλα τερματικού σας και στη συνέχεια πληκτρολογήστε τον κωδικό πρόσβασης εκεί και πατήστε enter. Στη συνέχεια, πληκτρολογήστε τον ίδιο κωδικό πρόσβασης στο κινητό σας τηλέφωνο όταν σας ζητηθεί και τώρα έχετε συνδυαστεί με επιτυχία με το Raspberry Pi. Εξηγήσαμε επίσης όλη αυτή τη διαδικασία στο βίντεό μας που δόθηκε στο τέλος.
Όπως ειπώθηκε προηγουμένως, μπορείτε επίσης να χρησιμοποιήσετε τη διεπαφή επιφάνειας εργασίας για τη σύζευξη του κινητού τηλεφώνου. Μετά την εγκατάσταση του Blueman, θα δείτε ένα εικονίδιο Bluetooth στη δεξιά πλευρά της επιφάνειας εργασίας Raspberry Pi όπως φαίνεται παρακάτω, χρησιμοποιώντας το οποίο μπορείτε εύκολα να κάνετε τη σύζευξη.
Διάγραμμα κυκλώματος:
Το διάγραμμα κυκλώματος είναι πολύ απλό, απλώς συνδέσαμε ένα LED στο PIN 40 (GPIO 21) του Raspberry Pi με μια αντίσταση 220 Ohm:
Έλεγχος LED με Android App BlueTerm:
Τώρα μετά το paring του κινητού τηλεφώνου, πρέπει να εγκαταστήσουμε μια εφαρμογή Android για επικοινωνία με το Raspberry Pi χρησιμοποιώντας έναν Bluetooth Serial Adapter. Όπως προαναφέρθηκε, το πρωτόκολλο RFCOMM / SPP μιμείται σειριακή επικοινωνία μέσω Bluetooth, επομένως εγκαταστήσαμε εδώ την εφαρμογή BlueTerm που υποστηρίζει αυτό το πρωτόκολλο.
Μπορείτε επίσης να χρησιμοποιήσετε οποιαδήποτε άλλη εφαρμογή Bluetooth Terminal που υποστηρίζει επικοινωνία μέσω της υποδοχής RFCOMM.
Τώρα μετά τη λήψη και την εγκατάσταση της εφαρμογής BlueTerm, εκτελέστε το παρακάτω πρόγραμμα Python από το τερματικό και συνδέστε την αντιστοιχισμένη συσκευή raspberrypi από την εφαρμογή BlueTerm ταυτόχρονα.
Μετά την επιτυχή σύνδεση θα δείτε συνδεδεμένο: raspberrypi στην επάνω δεξιά γωνία της εφαρμογής όπως φαίνεται παρακάτω:
Τώρα μπορείτε απλά να εισαγάγετε «1» ή «0» από την εφαρμογή BlueTerm για να κάνετε τον ακροδέκτη GPIO HIGH και LOW αντίστοιχα, ο οποίος με τη σειρά του ανάβει και σβήνει το LED συνδεδεμένο σε αυτόν τον πείρο. Πατήστε 'q' για έξοδο από το πρόγραμμα. Μπορείτε να χρησιμοποιήσετε το Πληκτρολόγιο πληκτρολόγησης Google Voice για να ελέγξετε το GPIO χρησιμοποιώντας το Voice σας. Ελέγξτε την πλήρη επίδειξη στο βίντεο που δίνεται στο τέλος.
Έτσι μπορείτε να ελέγχετε ασύρματα το Pin GPIO χρησιμοποιώντας μια εφαρμογή Android μέσω Bluetooth. Ελέγξτε επίσης πώς να χρησιμοποιήσετε το Bluetooth με το Arduino.
Επεξήγηση προγραμματισμού:
Το πρόγραμμα Python για τον έλεγχο του Raspberry Pi GPIO με εφαρμογή Android είναι πολύ απλό και αυτονόητο. Μόνο που πρέπει να μάθουμε λίγα για τον κώδικα που σχετίζεται με την επικοινωνία Bluetooth RFCOMM. Πρώτα πρέπει να εισαγάγουμε τη βιβλιοθήκη υποδοχής Bluetooth που μας επιτρέπει να ελέγξουμε το Bluetooth με τη γλώσσα Python. έχουμε εγκαταστήσει τη βιβλιοθήκη για το ίδιο στην προηγούμενη ενότητα.
εισαγωγή Bluetooth
Παρακάτω είναι ο υπεύθυνος κωδικός για την επικοινωνία Bluetooth:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM) port = 1 server_socket.bind (("", port)) server_socket.listen (1) client_socket, address = server_socket.accept () εκτύπωση "Αποδεκτή σύνδεση από", διεύθυνση ενώ 1: data = client_socket.recv (1024)
Εδώ μπορούμε να τους καταλάβουμε κάθε γραμμή:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM): Δημιουργία υποδοχής για επικοινωνία Bluetooth RFCOMM.
server_socket.bind (("", port): - Ο διακομιστής συνδέει το σενάριο στον κεντρικό υπολογιστή "" στη θύρα
server_socket.listen (1) : Ο διακομιστής ακούει να δέχεται μία σύνδεση κάθε φορά.
client_socket, address = server_socket.accept () : Ο διακομιστής δέχεται το αίτημα σύνδεσης του πελάτη και εκχωρεί τη διεύθυνση mac στη μεταβλητή διεύθυνση, το client_socket είναι η υποδοχή του
δεδομένων = client_socket.recv (1024): Λήψη δεδομένων μέσω της υποδοχής πελάτη client_socket και να την αντιστοιχίσετε με τα μεταβλητά δεδομένα . Μπορείτε να λάβετε έως 1024 χαρακτήρες κάθε φορά.
Τέλος, μετά από όλο τον προγραμματισμό, κλείστε τη σύνδεση πελάτη και διακομιστή χρησιμοποιώντας τον παρακάτω κώδικα:
client_socket.close () server_socket.close ()
Όλος ο άλλος κωδικός είναι εύκολος και αυτονόητος. Ελέγξτε τον πλήρη κωδικό παρακάτω. Προσπαθήστε να τροποποιήσετε αυτό το έργο και μπορείτε να το χρησιμοποιήσετε για να ελέγξετε πολλά άλλα πράγματα ασύρματα, όπως με τη χρήση ρελέ μπορείτε να ελέγχετε τις οικιακές συσκευές ή μπορείτε επίσης να ελέγχετε ένα αυτοκίνητο ρομπότ μέσω τηλεφώνου android.