- Εγκατάσταση απαιτούμενων πακέτων για επικοινωνία Bluetooth:
- Σύζευξη συσκευών με Raspberry Pi μέσω Bluetooth:
- Διάγραμμα κυκλώματος:
- Έλεγχος συσκευής AC με εφαρμογή Android BlueTerm:
- Επεξήγηση προγραμματισμού:
Το Raspberry Pi είναι πολύ δημοφιλές για έργα IoT λόγω της απρόσκοπτης δυνατότητάς του για ασύρματη επικοινωνία μέσω διαδικτύου. Το Raspberry Pi 3 διαθέτει ενσωματωμένο Wi-Fi και Bluetooth και το Bluetooth είναι ένα πολύ δημοφιλές πρωτόκολλο ασύρματης επικοινωνίας. Έτσι, σήμερα πρόκειται να ελέγξουμε τις οικιακές συσκευές μέσω έξυπνου τηλεφώνου χρησιμοποιώντας το Raspberry Pi 3 και το Bluetooth.
Εδώ χρησιμοποιούμε το Raspberry Pi 3 που έχουν ενσωματωμένο Bluetooth, οπότε δεν χρειάζεται να χρησιμοποιήσουμε κανένα εξωτερικό dongle USB USB. Εκτός από αυτό, χρειαζόμαστε μόνο μονάδες ρελέ για αυτό το έργο ασύρματου οικιακού αυτοματισμού. Εδώ χρησιμοποιούμε το πρωτόκολλο Bluetooth RFCOMM για ασύρματη επικοινωνία.
Ο προγραμματισμός για Bluetooth στο Python ακολουθεί το μοντέλο προγραμματισμού υποδοχής και οι επικοινωνίες μεταξύ των συσκευών Bluetooth πραγματοποιούνται μέσω της υποδοχής RFCOMM. Το RFCOMM (Radio Frequency Communication) είναι ένα πρωτόκολλο Bluetooth που παρέχει προσομοιωμένες σειριακές θύρες RS-232 και ονομάζεται επίσης Serial Port Emulation. Το προφίλ σειριακής θύρας Bluetooth βασίζεται σε αυτό το πρωτόκολλο. Το RFCOMM είναι πολύ δημοφιλές στις εφαρμογές Bluetooth λόγω της ευρείας υποστήριξης και του διαθέσιμου στο κοινό API. Συνδέεται με το πρωτόκολλο L2CAP.
Εάν έχετε Raspberry Pi 2, τότε πρέπει είτε να χρησιμοποιήσετε εξωτερικό dongle Bluetooth ή μονάδα Bluetooth HC-06. Ελέγξτε τα προηγούμενα έργα μας για τη χρήση αυτών των εξωτερικών συσκευών Bluetooth: Έλεγχος του Raspberry Pi GPIO χρησιμοποιώντας εφαρμογή Android μέσω Bluetooth και 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.
Τώρα ανοίξτε το βοηθητικό πρόγραμμα bluetoothctl με την παρακάτω εντολή:
sudo bluetoothctl
Μπορείτε να ελέγξετε όλες τις εντολές του βοηθητικού προγράμματος bluetoothctl πληκτρολογώντας «βοήθεια» . Προς το παρόν πρέπει να εισαγάγουμε τις παρακάτω εντολές με δεδομένη σειρά:
# power on # agent on # Discoverable on # pairable on # scan on
Μετά την τελευταία εντολή "σάρωση ενεργοποιημένη", θα δείτε τη συσκευή Bluetooth (κινητό τηλέφωνο) στη λίστα. Βεβαιωθείτε ότι το κινητό σας έχει ενεργοποιήσει και ορατό το Bluetooth από κοντινές συσκευές. Στη συνέχεια, αντιγράψτε τη διεύθυνση MAC της συσκευής σας και αντιστοιχίστε τη χρησιμοποιώντας τη δεδομένη εντολή:
ζεύγος
Στη συνέχεια, θα σας ζητηθεί κωδικός πρόσβασης ή Pin στην κονσόλα τερματικού σας και στη συνέχεια πληκτρολογήστε τον κωδικό πρόσβασης εκεί και πατήστε enter. Στη συνέχεια, πληκτρολογήστε τον ίδιο κωδικό πρόσβασης στο κινητό σας τηλέφωνο όταν σας ζητηθεί και τώρα έχετε συνδυαστεί με επιτυχία με το Raspberry Pi. Έχουμε εξηγήσει επίσης όλη αυτή τη διαδικασία στο βίντεο που δόθηκε στο προηγούμενο πρόγραμμα εκμάθησης του GPIO. Εδώ είναι ο άμεσος σύνδεσμος YouTube.
Όπως ειπώθηκε προηγουμένως, μπορείτε επίσης να χρησιμοποιήσετε τη διεπαφή επιφάνειας εργασίας για τη σύζευξη του κινητού τηλεφώνου. Μετά την εγκατάσταση του Blueman, θα δείτε ένα εικονίδιο Bluetooth στη δεξιά πλευρά της επιφάνειας εργασίας Raspberry Pi όπως φαίνεται παρακάτω, χρησιμοποιώντας το οποίο μπορείτε εύκολα να κάνετε τη σύζευξη.
Διάγραμμα κυκλώματος:
Το διάγραμμα κυκλώματος για αυτόν τον αυτοματοποιημένο οικιακό έλεγχο με βάση το Raspberry Pi είναι πολύ απλό, απλώς συνδέσαμε το σήμα εισόδου του Relay Module Pin στο PIN 40 (GPIO 21) του Raspberry Pi και άλλα δύο Pin (Vcc και GND της μονάδας ρελέ) στα Pin 2 και 6 του Raspberry Pi 3. Στη συνέχεια, έχουμε συνδέσει έναν λαμπτήρα AC CFL με το ρελέ όπως φαίνεται στο διάγραμμα κυκλώματος:
Εάν είστε νέοι στο Relay και θέλετε να μάθετε περισσότερα σχετικά με το Relay και τις συνδέσεις του με τη συσκευή AC, ανατρέξτε σε αυτό το άρθρο.
Έλεγχος συσκευής AC με εφαρμογή Android BlueTerm:
Τώρα μετά την απομάκρυνση του κινητού τηλεφώνου, πρέπει να εγκαταστήσουμε μια εφαρμογή Android για επικοινωνία με το Raspberry Pi χρησιμοποιώντας έναν σειριακό προσαρμογέα Bluetooth, έτσι ώστε να μπορούμε να ελέγχουμε τις ακίδες GPIO του Raspberry Pi. Όπως προαναφέρθηκε, το πρωτόκολλο RFCOMM / SPP μιμείται σειριακή επικοινωνία μέσω Bluetooth, επομένως εγκαταστήσαμε εδώ την εφαρμογή BlueTerm που υποστηρίζει αυτό το πρωτόκολλο.
Μπορείτε επίσης να χρησιμοποιήσετε οποιαδήποτε άλλη εφαρμογή Bluetooth Terminal που υποστηρίζει επικοινωνία μέσω της υποδοχής RFCOMM.
Τώρα μετά τη λήψη και την εγκατάσταση της εφαρμογής BlueTerm, εκτελέστε το παρακάτω πρόγραμμα Python από το τερματικό και συνδέστε την αντιστοιχισμένη συσκευή raspberrypi από την εφαρμογή BlueTerm ταυτόχρονα.
Μετά την επιτυχή σύνδεση θα δείτε συνδεδεμένο: raspberrypi στην επάνω δεξιά γωνία της εφαρμογής όπως φαίνεται παρακάτω:
Τώρα μπορείτε απλώς να εισαγάγετε «1» ή «0» από την εφαρμογή BlueTerm για να φτιάξετε τον ακροδέκτη GPIO HIGH και LOW αντίστοιχα, το οποίο με τη σειρά του ενεργοποιεί τη μονάδα Relay που είναι συνδεδεμένη σε αυτόν τον πείρο, η οποία ελέγχει περαιτέρω τον λαμπτήρα AC που είναι συνδεδεμένος στο ρελέ. Πατήστε 'q' για έξοδο από το πρόγραμμα. Μπορείτε να χρησιμοποιήσετε το Πληκτρολόγιο πληκτρολόγησης Google Voice για να ελέγξετε το GPIO χρησιμοποιώντας το Voice σας. Ελέγξτε την πλήρη επίδειξη στο βίντεο που δίνεται στο τέλος.
Έτσι μπορείτε να ελέγχετε ασύρματα τη συσκευή AC χρησιμοποιώντας μια εφαρμογή 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 ()
Όλος ο άλλος κωδικός είναι εύκολος και αυτονόητος. Ελέγξτε τον πλήρη κωδικό παρακάτω. Προσπαθήστε να τροποποιήσετε αυτό το έργο και μπορείτε να το χρησιμοποιήσετε για να ελέγξετε πολλά άλλα πράγματα ασύρματα, Robot car μέσω τηλεφώνου Android ή μπορείτε να χρησιμοποιήσετε τη φωνή σας για τον έλεγχο των φώτων.
Ελέγξτε επίσης τους πολλούς τύπους Έργων οικιακών αυτοματισμών χρησιμοποιώντας διαφορετικές τεχνολογίες και μικροελεγκτές όπως: