- Instal·lació dels paquets necessaris per a la comunicació Bluetooth:
- Emparellament de dispositius amb Raspberry Pi per Bluetooth:
- Esquema de connexions:
- Control de l'aparell de CA amb l'aplicació Android BlueTerm:
- Explicació de la programació:
Raspberry Pi és molt popular per als projectes IoT a causa de la seva capacitat de comunicació sense fils a través d’Internet. Raspberry Pi 3 té Wi-Fi i Bluetooth incorporats, i el Bluetooth és un protocol de comunicació sense fils molt popular. Per tant, avui controlarem els electrodomèstics mitjançant el telèfon intel·ligent mitjançant Raspberry Pi 3 i Bluetooth.
Aquí fem servir Raspberry Pi 3 que té Bluetooth integrat, de manera que no necessitem utilitzar cap dongle Bluetooth USB extern. A part, només necessitem mòduls de retransmissió per a aquest projecte domòtic sense fils. Aquí estem utilitzant el protocol RFCOMM Bluetooth per a la comunicació sense fils.
La programació per Bluetooth a Python segueix el model de programació de sòcol i les comunicacions entre els dispositius Bluetooth es fan mitjançant el sòcol RFCOMM. RFCOMM (Radio Frequency Communication) és un protocol Bluetooth que proporcionava ports sèrie RS-232 emulats i també anomenat emulació de port sèrie. El perfil del port sèrie Bluetooth es basa en aquest protocol. RFCOMM és molt popular a les aplicacions Bluetooth a causa del seu ampli suport i de l'API disponible públicament. Està vinculat al protocol L2CAP.
Si teniu Raspberry Pi 2, cal que utilitzeu un dongle Bluetooth extern o un mòdul Bluetooth HC-06. Consulteu els nostres projectes anteriors per utilitzar aquests dispositius Bluetooth externs: controlar Raspberry Pi GPIO mitjançant l’aplicació d’Android mitjançant Bluetooth i LED controlats per veu mitjançant Raspberry Pi. Consulteu també els nostres anteriors projectes de Raspberry Pi juntament amb alguns bons projectes IoT.
Instal·lació dels paquets necessaris per a la comunicació Bluetooth:
Abans de començar, hem d’instal·lar alguns programes per configurar la comunicació Bluetooth a Raspberry Pi. Hauríeu de tenir instal·lada una targeta de memòria Raspbian Jessie amb Raspberry Pi. Consulteu aquest article per instal·lar el sistema operatiu Raspbian i començar a utilitzar Raspberry Pi. Per tant, ara hem d’actualitzar primer Raspbian mitjançant les ordres següents:
sudo apt-get update sudo apt-get upgrade
A continuació, hem d’instal·lar alguns paquets relacionats amb Bluetooth:
sudo apt-get install bluetooth blueman bluez
A continuació, reinicieu el Raspberry Pi:
sudo reiniciar
BlueZ és un projecte de codi obert i una pila oficial de protocols Bluetooth de Linux. Admet tots els protocols Bluetooth bàsics i ara passa a formar part del nucli oficial de Linux.
Blueman proporciona la interfície d'escriptori per gestionar i controlar els dispositius Bluetooth.
Finalment, necessitem la biblioteca Python per a la comunicació Bluetooth per poder enviar i rebre dades mitjançant RFCOMM mitjançant el llenguatge Python:
sudo apt-get install python-bluetooth
Instal·leu també les biblioteques de suport GPIO per a Raspberry Pi:
sudo apt-get install python-rpi.gpio
Ara hem acabat d’instal·lar els paquets necessaris per a la comunicació Bluetooth a Raspberry Pi.
Emparellament de dispositius amb Raspberry Pi per Bluetooth:
Emparellar dispositius Bluetooth, com el telèfon mòbil, amb Raspberry Pi és molt fàcil. Aquí hem emparellat el nostre telèfon intel·ligent Android amb Raspberry Pi. Anteriorment hem instal·lat BlueZ a Pi, que proporciona una utilitat de línia d’ordres anomenada “bluetoothctl” per gestionar els nostres dispositius Bluetooth.
Ara obriu la utilitat bluetoothctl mitjançant l'ordre següent:
sudo bluetoothctl
Podeu comprovar totes les ordres de la utilitat bluetoothctl escrivint "ajuda" . De moment, hem d’introduir a continuació les ordres en un ordre determinat:
# engegada # agent activada # descoberta el # emparellable en # escaneig activada
Després de l'última ordre "scan on", veureu el dispositiu Bluetooth (telèfon mòbil) a la llista. Assegureu-vos que el dispositiu mòbil tingui el Bluetooth activat i visible pels dispositius propers. A continuació, copieu l'adreça MAC del vostre dispositiu i emparegeu-la mitjançant l'ordre donada:
parella
A continuació, se us demanarà la contrasenya o el PIN a la consola del terminal, a continuació, escriviu la contrasenya i premeu Retorn A continuació, escriviu la mateixa contrasenya al vostre telèfon mòbil quan se us demani i ja estigueu sincronitzat amb Raspberry Pi. També hem explicat tot aquest procés al vídeo presentat a l’anterior Tutorial de control de GPIO. Aquí teniu l’enllaç directe de YouTube.

Com s’ha dit anteriorment, també podeu utilitzar la interfície d’escriptori per emparellar el telèfon mòbil. Després d’instal·lar Blueman, veureu una icona Bluetooth al costat dret de l’escriptori Raspberry Pi, tal com es mostra a continuació, amb la qual podeu fer fàcilment l’aparellament.

Esquema de connexions:
El diagrama de circuits per a aquesta automatització domèstica controlada per Bluetooth basada en Raspberry Pi és molt senzill, acabem de connectar el senyal d’entrada del mòdul de relé Pin al PIN 40 (GPIO 21) de Raspberry Pi i altres dos pins (Vcc i GND del mòdul de relé) al pin 2 i 6 de Raspberry Pi 3. Després hem connectat una bombeta AC CFL al relé tal com es mostra al diagrama del circuit:

Si no coneixeu el relé i voleu obtenir més informació sobre el relé i les seves connexions amb l’aparell de corrent altern, consulteu aquest article.

Control de l'aparell de CA amb l'aplicació Android BlueTerm:
Ara, després d’haver analitzat el telèfon mòbil, hem d’instal·lar una aplicació d’Android per comunicar-nos amb Raspberry Pi mitjançant un adaptador de sèrie Bluetooth, de manera que puguem controlar els pins GPIO de Raspberry Pi. Com ja es va dir anteriorment, el protocol RFCOMM / SPP emula la comunicació en sèrie mitjançant Bluetooth, de manera que hem instal·lat aquí l' aplicació BlueTerm que admet aquest protocol.

També podeu utilitzar qualsevol altra aplicació de terminal Bluetooth que admeti la comunicació mitjançant el sòcol RFCOMM.
Ara, després de descarregar i instal·lar l'aplicació BlueTerm, executeu el programa Python que s'indica a continuació des del terminal i connecteu el dispositiu raspberrypi emparellat des de l'aplicació BlueTerm alhora.

Després de la connexió correcta, veureu connectat: raspberrypi a l'extrem superior dret de l'aplicació, tal com es mostra a continuació:


Ara només podeu introduir '1' o '0' des de l'aplicació BlueTerm per fer el pin GPIO HIGH i LOW respectivament, que al seu torn activa el mòdul de relé connectat a aquest pin, que controla encara més la bombeta de CA connectada al relé. Premeu 'q' per sortir del programa. Podeu utilitzar el teclat de mecanografia de veu de Google per controlar el GPIO mitjançant la vostra veu. Consulteu la demostració completa al vídeo que apareix al final.

Així doncs, és així com podeu controlar sense fils l’aparell de CA mitjançant una aplicació per Android mitjançant Bluetooth. Consulteu també Com utilitzar Bluetooth amb Arduino.
Explicació de la programació:
El programa Python per al control de Raspberry Pi GPIO amb aplicació per a Android és molt senzill i s’explica per si mateix. Només hem d’aprendre poc sobre el codi relacionat amb la comunicació RFCOMM Bluetooth. Primer, hem d’importar la biblioteca de sòcol Bluetooth que ens permet controlar Bluetooth amb llenguatge Python; hem instal·lat la biblioteca per a la mateixa a la secció anterior.
importar Bluetooth
A continuació es mostra el codi responsable de la comunicació Bluetooth:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM) port = 1 server_socket.bind (("", port)) server_socket.listen (1) client_socket, address = server_socket.accept () imprimeix "Connexió acceptada des de", adreça mentre que 1: data = client_socket.recv (1024)
Aquí els podem entendre línia per línia:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM): crea socket per a la comunicació RFCOMM Bluetooth.
server_socket.bind (("", port): - El servidor vincula l'script de l'amfitrió '' al port.
server_socket.listen (1) : el servidor escolta com acceptar una connexió cada vegada.
client_socket, address = server_socket.accept () : el servidor accepta la sol·licitud de connexió del client i assigna l'adreça mac a l' adreça variable , client_socket és el sòcol del client
data = client_socket.recv (1024): rebeu dades a través del socket client_socket del client i assigneu-les a les dades variables. Es poden rebre un màxim de 1024 caràcters alhora.
Finalment, després de tota la programació, tanqueu la connexió client i servidor utilitzant el codi següent:
client_socket.close () server_socket.close ()
La resta de codi és fàcil i s’explica per si mateix. Consulteu el codi complet a continuació. Intenta modificar aquest projecte i el pots utilitzar per controlar moltes altres coses sense fils, Robot car a través del telèfon Android o pots utilitzar la teva veu per controlar els llums.
Consulteu també els nostres molts tipus de projectes domòtics amb diferents tecnologies i microcontroladors com:
