- Instalarea pachetelor necesare pentru comunicarea Bluetooth:
- Asocierea dispozitivelor cu Raspberry Pi prin Bluetooth:
- Diagrama circuitului:
- Controlul aparatului AC cu aplicația Android BlueTerm:
- Explicație de programare:
Raspberry Pi este foarte popular pentru proiectele IoT datorită capacității sale perfecte de comunicare fără fir prin internet. Raspberry Pi 3 are Wi-Fi și Bluetooth încorporate, iar Bluetooth este un protocol de comunicație wireless foarte popular. Așadar, astăzi vom controla aparatele electrocasnice prin telefon inteligent folosind Raspberry Pi 3 și Bluetooth.
Aici folosim Raspberry Pi 3 care are Bluetooth încorporat, deci nu este nevoie să folosim niciun dongle USB extern USB. În afară de aceasta, avem nevoie doar de module de releu pentru acest proiect de automatizare wireless acasă. Aici folosim protocolul RFCOMM Bluetooth pentru comunicații fără fir.
Programarea pentru Bluetooth în Python urmează modelul de programare socket și comunicațiile între dispozitivele Bluetooth se realizează prin socket RFCOMM. RFCOMM (Radio Frequency Communication) este un protocol Bluetooth care furnizează porturi seriale RS-232 emulate și denumit și Emulare port serial. Profilul portului serial Bluetooth se bazează pe acest protocol. RFCOMM este foarte popular în aplicațiile Bluetooth datorită suportului larg și API-ului disponibil public. Este legat de protocolul L2CAP.
Dacă aveți Raspberry Pi 2, atunci trebuie să utilizați dongle Bluetooth extern sau modulul Bluetooth HC-06. Verificați proiectele noastre anterioare pentru utilizarea acestor dispozitive Bluetooth externe: Controlul Raspberry Pi GPIO utilizând aplicația Android prin Bluetooth și LED-uri controlate prin voce folosind Raspberry Pi. Verificați, de asemenea, proiectele noastre anterioare Raspberry Pi, împreună cu câteva proiecte IoT bune.
Instalarea pachetelor necesare pentru comunicarea Bluetooth:
Înainte de a începe, trebuie să instalăm câteva software pentru configurarea comunicării Bluetooth în Raspberry Pi. Ar trebui să aveți un card de memorie instalat Raspbian Jessie gata cu Raspberry Pi. Consultați acest articol pentru a instala sistemul de operare Raspbian și pentru a începe să utilizați Raspberry Pi. Deci, acum trebuie mai întâi să actualizăm Raspbian folosind comenzile de mai jos:
sudo apt-get update sudo apt-get upgrade
Apoi, trebuie să instalăm câteva pachete legate de Bluetooth:
sudo apt-get install bluetooth blueman bluez
Apoi reporniți Raspberry Pi:
sudo reboot
BlueZ este un proiect open source și un stack oficial de protocol Linux Bluetooth. Acceptă toate protocoalele de bază Bluetooth și devine acum parte a Linux Kernel oficial.
Blueman oferă interfața desktop pentru a gestiona și controla dispozitivele Bluetooth.
În cele din urmă, avem nevoie de Python Library pentru comunicarea Bluetooth, astfel încât să putem trimite și primi date prin RFCOMM folosind limbajul Python:
sudo apt-get install python-bluetooth
Instalați, de asemenea, bibliotecile de suport GPIO pentru Raspberry Pi:
sudo apt-get install python-rpi.gpio
Acum am terminat cu instalarea pachetelor necesare pentru comunicarea Bluetooth în Raspberry Pi.
Asocierea dispozitivelor cu Raspberry Pi prin Bluetooth:
Împerecherea dispozitivelor Bluetooth, cum ar fi telefonul mobil, cu Raspberry Pi este foarte ușoară. Aici ne-am asociat telefonul inteligent Android cu Raspberry Pi. Am instalat anterior BlueZ în Pi, care oferă un utilitar de linie de comandă numit „bluetoothctl” pentru a gestiona dispozitivele noastre Bluetooth.
Acum deschideți utilitarul bluetoothctl prin comanda de mai jos:
sudo bluetoothctl
Puteți verifica toate comenzile utilitarului bluetoothctl tastând „help” . Deocamdată trebuie să introducem mai jos comenzile în ordinea dată:
# pornire # agent activat # descoperibil pe # asociat pe # scanare activată
După ultima comandă „scan on”, veți vedea dispozitivul dvs. Bluetooth (telefon mobil) în listă. Asigurați-vă că mobilul dvs. are Bluetooth activat și vizibil de dispozitivele din apropiere. Apoi copiați adresa MAC a dispozitivului dvs. și asociați-o utilizând comanda dată:
pereche
Apoi vi se va solicita codul de acces sau PIN în consola terminalului, apoi tastați codul de acces acolo și apăsați Enter. Apoi tastați aceeași parolă în telefonul mobil când vi se solicită și acum sunteți asociat cu succes cu Raspberry Pi. De asemenea, am explicat acest întreg proces în videoclipul prezentat în ghidul anterior de control GPIO. Iată linkul direct YouTube.
După cum am spus mai devreme, puteți utiliza și interfața desktop pentru a asocia telefonul mobil. După instalarea Blueman, veți vedea o pictogramă Bluetooth în partea dreaptă a desktopului dvs. Raspberry Pi, așa cum se arată mai jos, cu ajutorul căreia puteți face cu ușurință asocierea.
Diagrama circuitului:
Diagrama circuitului pentru această automatizare casnică controlată Bluetooth bazată pe Raspberry Pi este foarte simplă, tocmai am conectat semnalul de intrare al modulului de releu Pin la PIN 40 (GPIO 21) al Raspberry Pi și alți doi Pin (Vcc și GND al modulului de releu) la Pinul 2 și 6 din Raspberry Pi 3. Apoi am conectat un bec AC CFL la releu așa cum se arată în schema circuitului:
Dacă sunteți nou în releu și doriți să aflați mai multe despre releu și conexiunile sale cu aparatul de curent alternativ, consultați acest articol.
Controlul aparatului AC cu aplicația Android BlueTerm:
Acum, după analizarea telefonului mobil, trebuie să instalăm o aplicație Android pentru comunicarea cu Raspberry Pi utilizând un adaptor serial Bluetooth, astfel încât să putem controla pinii GPIO ai Raspberry Pi. După cum am spus mai devreme, protocolul RFCOMM / SPP emulează comunicarea serială prin Bluetooth, așa că am instalat aici aplicația BlueTerm care acceptă acest protocol.
Puteți utiliza, de asemenea, orice altă aplicație Bluetooth Terminal care acceptă comunicarea prin socket RFCOMM.
Acum, după descărcarea și instalarea aplicației BlueTerm, rulați programul Python de mai jos de la terminal și conectați dispozitivul raspberrypi asociat din aplicația BlueTerm în același timp.
După o conexiune reușită, veți vedea conectat: raspberrypi în colțul din dreapta sus al aplicației, după cum se arată mai jos:
Acum puteți introduce doar „1” sau „0” din aplicația BlueTerm pentru a face pinul GPIO HIGH și respectiv LOW, care la rândul său declanșează modulul de releu conectat la acest pin, care controlează suplimentar becul AC conectat la releu. Apăsați „q” pentru a ieși din program. Puteți utiliza tastatura Google Voice Typing pentru a controla GPIO folosind Voice. Verificați demo-ul complet în videoclipul prezentat la final.
Deci, astfel puteți controla fără fir aparatul AC folosind o aplicație Android prin Bluetooth. De asemenea, verificați Cum să utilizați Bluetooth cu Arduino.
Explicație de programare:
Programul Python pentru controlul Raspberry Pi GPIO cu aplicația Android este foarte simplu și se explică de la sine. Doar trebuie să aflăm puțin despre codul legat de comunicarea Bluetooth RFCOMM. Mai întâi trebuie să importăm biblioteca de socket Bluetooth care ne permite să controlăm Bluetooth cu limbajul Python; am instalat biblioteca pentru același lucru în secțiunea anterioară.
import Bluetooth
Mai jos este codul responsabil pentru comunicarea Bluetooth:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM) port = 1 server_socket.bind (("", port)) server_socket.listen (1) client_socket, address = server_socket.accept () print "Conexiune acceptată de la", adresa în timp ce 1: date = client_socket.recv (1024)
Aici le putem înțelege rând cu rând:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM): Se creează soclu pentru comunicarea RFCOMM Bluetooth.
server_socket.bind (("", port): - Serverul leagă scriptul de pe gazda '' la port.
server_socket.listen (1) : Serverul ascultă să accepte o conexiune la un moment dat.
client_socket, address = server_socket.accept () : Serverul acceptă cererea de conectare a clientului și atribuie adresa Mac la adresa variabilă , client_socket este soclul clientului
data = client_socket.recv (1024): Primiți date prin soclul client client_socket și alocați-le datelor variabile. Se pot primi maximum 1024 de caractere odată.
În cele din urmă, după toată programarea, închideți conexiunea client și server folosind codul de mai jos:
client_socket.close () server_socket.close ()
Toate celelalte coduri sunt ușoare și se explică de la sine. Verificați codul complet de mai jos. Încercați să modificați acest proiect și îl puteți folosi pentru a controla multe alte lucruri fără fir, Robot car prin telefonul Android sau vă puteți folosi vocea pentru a controla luminile.
Verificați, de asemenea, numeroasele noastre tipuri de proiecte de automatizări casnice folosind diferite tehnologii și microcontrolere, cum ar fi: