- Инсталиране на необходимите пакети за Bluetooth комуникация:
- Сдвояване на устройства с Raspberry Pi през Bluetooth:
- Електрическа схема:
- Контрол на светодиода с 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 донгъл. Освен това се нуждаем само от резистор (220R) и светодиод, за да демонстрираме управлението на GPIO. Тук използваме RFCOMM Bluetooth протокол за безжична комуникация.
Програмирането за Bluetooth в Python следва модела за програмиране на сокета, а комуникацията между Bluetooth устройствата се осъществява чрез RFCOMM сокет. RFCOMM (Радиочестотна комуникация) е Bluetooth протокол, който осигурява емулирани RS-232 серийни портове и наричан също като емулация на сериен порт. Профилът на Bluetooth серийния порт се основава на този протокол. RFCOMM е много популярен в Bluetooth приложенията поради широката си поддръжка и публично достъпния API. Той е обвързан с протокол L2CAP.
Също така използвахме Bluetooth модул HC-06 в предишния ни проект: Светодиоди с гласово управление, използващи 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 е проект с отворен код и официален стек протокол за Linux Bluetooth. Той поддържа всички основни 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 Smart телефон с Raspberry Pi. Преди това сме инсталирали BlueZ в Pi, който предоставя помощна програма за команден ред, наречена „bluetoothctl“, за да управлява нашите Bluetooth устройства. Но преди това свържете вашия USB Bluetooth ключ с Raspberry Pi и проверете дали е открит или не, като използвате командата по-долу:
lsusb
Сега отворете помощната програма bluetoothctl чрез команда по-долу:
sudo bluetoothctl
Можете да проверите всички команди на помощната програма bluetoothctl , като напишете „помощ“ . Засега трябва да въведем команди отдолу в даден ред:
# включване # агент включен # откриваем на # по възможност при # сканиране включен
След последната команда „сканиране включено“, ще видите вашето Bluetooth устройство (мобилен телефон) в списъка. Уверете се, че мобилният ви телефон е включен и видим от близките устройства. След това копирайте MAC адреса на вашето устройство и го сдвоете с помощта на дадена команда:
двойка
След това ще бъдете подканени да въведете парола или ПИН във вашата терминална конзола, след това въведете парола там и натиснете enter. След това въведете същата парола в мобилния си телефон, когато бъдете подканени и вече сте успешно сдвоени с Raspberry Pi. Обяснихме и целия този процес в нашето видео, дадено в края.
Както беше казано по-рано, можете също да използвате Desktop интерфейс, за да сдвоите мобилния телефон. След като инсталирате Blueman, ще видите икона на Bluetooth в дясната страна на работния плот на Raspberry Pi, както е показано по-долу, с помощта на която можете лесно да направите сдвояването.
Електрическа схема:
Схемата е много проста, току-що свързахме LED към PIN 40 (GPIO 21) на Raspberry Pi с резистор от 220 Ohm:
Контрол на светодиода с Android App BlueTerm:
След като анализираме мобилния телефон, трябва да инсталираме приложение за Android за комуникация с Raspberry Pi с помощта на Bluetooth сериен адаптер. Както беше казано по-рано, протоколът RFCOMM / SPP емулира серийна комуникация през Bluetooth, затова инсталирахме тук приложението BlueTerm, което поддържа този протокол.
Можете също така да използвате всяко друго приложение за Bluetooth терминал, което поддържа комуникация чрез RFCOMM сокет.
Сега, след като изтеглите и инсталирате на BlueTerm App, стартира по-долу дава Python програма от терминала и да свържете в двойка raspberrypi устройството от BlueTerm App в същото време.
След успешна връзка ще видите свързан: raspberrypi в горния десен ъгъл на приложението, както е показано по-долу:
Сега можете просто да въведете „1“ или „0“ от приложението BlueTerm, за да направите GPIO пина HIGH и LOW съответно, което на свой ред включва и изключва светодиода, свързан към този щифт. Натиснете 'q', за да излезете от програмата. Можете да използвате клавиатурата за въвеждане на Google Voice, за да контролирате GPIO с помощта на вашия Voice. Проверете пълната демонстрация във видеото, дадено в края.
Така че по този начин можете безжично да управлявате GPIO Pin с помощта на приложение за 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 () print "Приета връзка от", адрес докато 1: данни = 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 е сокетът на клиента
data = client_socket.recv (1024): Получавайте данни чрез клиентския сокет client_socket и ги присвоявайте на променливата data . Максимално 1024 знака могат да бъдат получени едновременно.
И накрая след цялото програмиране, затворете връзката клиент и сървър, като използвате кода по-долу:
client_socket.close () server_socket.close ()
Всички останали кодове са лесни и очевидни. Проверете пълния код по-долу. Опитайте се да модифицирате този проект и можете да го използвате, за да контролирате много други неща безжично, като например с помощта на релета можете да контролирате домакинските уреди или да управлявате автомобил-робот чрез телефон с Android.