- Установка необходимых пакетов для связи Bluetooth:
- Сопряжение устройств с Raspberry Pi через Bluetooth:
- Принципиальная электрическая схема:
- Управление светодиодом с помощью Android-приложения 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. Здесь мы используем протокол Bluetooth RFCOMM для беспроводной связи.
Программирование для 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 и начать работу с Raspberry Pi. Итак, теперь нам сначала нужно обновить Raspbian, используя следующие команды:
sudo apt-get update sudo apt-get upgrade
Затем нам нужно установить несколько пакетов, связанных с Bluetooth:
sudo apt-get установить bluetooth blueman bluez
Затем перезагрузите Raspberry Pi:
перезагрузка sudo
BlueZ - это проект с открытым исходным кодом и официальный стек протоколов Linux Bluetooth. Он поддерживает все основные протоколы Bluetooth и теперь стал частью официального ядра Linux.
Blueman предоставляет интерфейс рабочего стола для управления устройствами Bluetooth.
Наконец, нам нужна библиотека Python для связи Bluetooth, чтобы мы могли отправлять и получать данные через RFCOMM с использованием языка Python:
sudo apt-get install python-bluetooth
Также установите библиотеки поддержки GPIO для Raspberry Pi:
sudo apt-get install python-rpi.gpio
Теперь мы закончили установку необходимых пакетов для связи Bluetooth в Raspberry Pi.
Сопряжение устройств с Raspberry Pi через Bluetooth:
Подключить устройства Bluetooth, например мобильный телефон, к Raspberry Pi очень просто. Здесь мы соединили наш Android-смартфон с Raspberry Pi. Ранее мы установили BlueZ в Pi, который предоставляет утилиту командной строки под названием «bluetoothctl» для управления нашими устройствами Bluetooth. Но перед этим подключите USB-ключ Bluetooth к Raspberry Pi и проверьте, обнаружен он или нет, используя следующую команду:
lsusb
Теперь откройте утилиту bluetoothctl с помощью следующей команды:
sudo bluetoothctl
Вы можете проверить все команды утилиты bluetoothctl , набрав «help» . На данный момент нам нужно ввести следующие команды в указанном порядке:
# включение # агент включен # обнаружение при # возможность подключения # сканирование при
После последней команды «сканирование включить» вы увидите свое устройство Bluetooth (мобильный телефон) в списке. Убедитесь, что на вашем мобильном телефоне включен Bluetooth и его видят находящиеся поблизости устройства. Затем скопируйте MAC-адрес вашего устройства и выполните сопряжение с помощью данной команды:
пара
Затем вам будет предложено ввести пароль или PIN-код в консоли терминала, затем введите пароль и нажмите клавишу ВВОД. Затем введите тот же код доступа в свой мобильный телефон, когда будет предложено, и теперь вы успешно подключены к Raspberry Pi. Мы также объяснили весь этот процесс в нашем видео, приведенном в конце.
Как было сказано ранее, вы также можете использовать интерфейс рабочего стола для сопряжения мобильного телефона. После установки Blueman вы увидите значок Bluetooth в правой части рабочего стола Raspberry Pi, как показано ниже, с помощью которого вы можете легко выполнить сопряжение.
Принципиальная электрическая схема:
Принципиальная схема очень проста, мы просто подключили светодиод к PIN 40 (GPIO 21) Raspberry Pi с резистором 220 Ом:
Управление светодиодом с помощью Android-приложения BlueTerm:
Теперь, после подключения мобильного телефона, нам нужно установить приложение Android для связи с Raspberry Pi с помощью последовательного адаптера Bluetooth. Как было сказано ранее, протокол RFCOMM / SPP имитирует последовательную связь через Bluetooth, поэтому мы установили здесь приложение BlueTerm, которое поддерживает этот протокол.
Вы также можете использовать любое другое приложение Bluetooth Terminal, которое поддерживает связь через разъем RFCOMM.
Теперь, после загрузки и установки приложения BlueTerm, запустите указанную ниже программу Python с терминала и одновременно подключите сопряженное устройство raspberrypi из приложения BlueTerm.
После успешного подключения вы увидите connected: raspberrypi в правом верхнем углу приложения, как показано ниже:
Теперь вы можете просто ввести «1» или «0» из приложения BlueTerm, чтобы сделать вывод GPIO ВЫСОКИМ и НИЗКИМ соответственно, что по очереди включает и выключает светодиод, подключенный к этому выводу. Нажмите «q», чтобы выйти из программы. Вы можете использовать клавиатуру Google Voice Typing для управления GPIO с помощью голоса. Ознакомьтесь с полной демонстрацией в видео, приведенном в конце.
Вот как вы можете управлять контактом GPIO по беспроводной сети с помощью приложения для Android через Bluetooth. Также проверьте, как использовать Bluetooth с Arduino.
Объяснение программирования:
Программа Python для управления GPIO Raspberry Pi с помощью приложения для Android очень проста и не требует пояснений. Только нам нужно немного узнать о коде, относящемся к связи Bluetooth RFCOMM. Сначала нам нужно импортировать библиотеку сокетов Bluetooth, которая позволяет нам управлять Bluetooth с помощью языка Python; мы установили библиотеку для того же самого в предыдущем разделе.
импортировать Bluetooth
Ниже приведен код, отвечающий за связь по Bluetooth:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM) port = 1 server_socket.bind (("", порт)) server_socket.listen (1) client_socket, address = server_socket.accept () print "Accepted connection from", адрес пока 1: данные = client_socket.recv (1024)
Здесь мы можем понять их построчно:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM): создание сокета для связи Bluetooth RFCOMM.
server_socket.bind (("", порт): - Сервер связывает скрипт на хосте '' с портом.
server_socket.listen (1) : сервер прослушивает одно соединение за раз.
client_socket, address = server_socket.accept () : Сервер принимает запрос на соединение от клиента и назначает MAC-адрес переменной address, client_socket - это сокет клиента
data = client_socket.recv (1024): получить данные через клиентский сокет client_socket и назначить их переменной data . Одновременно можно получить не более 1024 символов.
Наконец, после всего программирования, закройте соединение клиента и сервера, используя приведенный ниже код:
client_socket.close () server_socket.close ()
Весь остальной код прост и не требует пояснений. Проверьте полный код ниже. Попробуйте изменить этот проект, и вы сможете использовать его для управления многими другими вещами по беспроводной сети, например, с помощью реле, вы можете управлять бытовой техникой или также можете управлять автомобилем-роботом через телефон Android.