- Установка необходимых пакетов для связи Bluetooth:
- Сопряжение устройств с Raspberry Pi через Bluetooth:
- Принципиальная электрическая схема:
- Управление устройством переменного тока с помощью Android-приложения BlueTerm:
- Объяснение программирования:
Raspberry Pi очень популярен для проектов IoT из-за возможности беспрепятственной беспроводной связи через Интернет. Raspberry Pi 3 имеет встроенный Wi-Fi и Bluetooth, а Bluetooth - очень популярный протокол беспроводной связи. Итак, сегодня мы собираемся управлять бытовой техникой через смартфон с помощью Raspberry Pi 3 и Bluetooth.
Здесь мы используем Raspberry Pi 3 со встроенным Bluetooth, поэтому нам не нужно использовать внешний USB-ключ Bluetooth. Кроме того, для этого проекта беспроводной домашней автоматизации нам нужны только релейные модули. Здесь мы используем протокол Bluetooth RFCOMM для беспроводной связи.
Программирование для Bluetooth в Python следует модели программирования сокетов, а связь между устройствами Bluetooth осуществляется через сокет RFCOMM. RFCOMM (Radio Frequency Communication) - это протокол Bluetooth, который обеспечивает эмуляцию последовательных портов RS-232 и также называется эмуляцией последовательного порта. Профиль последовательного порта Bluetooth основан на этом протоколе. RFCOMM очень популярен в приложениях Bluetooth из-за его широкой поддержки и общедоступного API. Он привязан к протоколу L2CAP.
Если у вас есть Raspberry Pi 2, вам нужно либо использовать внешний Bluetooth-ключ, либо Bluetooth-модуль HC-06. Ознакомьтесь с нашими предыдущими проектами по использованию этих внешних Bluetooth-устройств: Управление Raspberry Pi GPIO с помощью приложения Android через Bluetooth и светодиоды с голосовым управлением с помощью 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.
Теперь откройте утилиту bluetoothctl с помощью следующей команды:
sudo bluetoothctl
Вы можете проверить все команды утилиты bluetoothctl , набрав «help» . На данный момент нам нужно ввести следующие команды в указанном порядке:
# включение # агент включен # обнаружение при # возможность подключения # сканирование при
После последней команды «сканирование включить» вы увидите свое устройство Bluetooth (мобильный телефон) в списке. Убедитесь, что на вашем мобильном телефоне включен Bluetooth и его видят находящиеся поблизости устройства. Затем скопируйте MAC-адрес вашего устройства и выполните сопряжение с помощью данной команды:
пара
Затем вам будет предложено ввести пароль или PIN-код в консоли терминала, затем введите пароль и нажмите клавишу ВВОД. Затем введите тот же код доступа в свой мобильный телефон, когда будет предложено, и теперь вы успешно подключены к Raspberry Pi. Мы также объяснили весь этот процесс в видео, приведенном в предыдущем руководстве по управлению GPIO. Вот прямая ссылка на YouTube.
Как было сказано ранее, вы также можете использовать интерфейс рабочего стола для сопряжения мобильного телефона. После установки Blueman вы увидите значок Bluetooth в правой части рабочего стола Raspberry Pi, как показано ниже, с помощью которого вы можете легко выполнить сопряжение.
Принципиальная электрическая схема:
Принципиальная схема этой управляемой через Bluetooth домашней автоматизации на базе Raspberry Pi очень проста: мы просто подключили контакт входного сигнала модуля реле к контакту 40 (GPIO 21) Raspberry Pi, а два других контакта (Vcc и GND модуля реле) к контактам 2 и 6. Raspberry Pi 3. Затем мы подключили лампочку AC CFL к реле, как показано на принципиальной схеме:
Если вы новичок в Relay и хотите узнать больше о Relay и его соединениях с устройством переменного тока, ознакомьтесь с этой статьей.
Управление устройством переменного тока с помощью Android-приложения BlueTerm:
Теперь, после подключения мобильного телефона, нам нужно установить приложение Android для связи с Raspberry Pi с помощью последовательного адаптера Bluetooth, чтобы мы могли управлять контактами GPIO Raspberry Pi. Как было сказано ранее, протокол RFCOMM / SPP имитирует последовательную связь через Bluetooth, поэтому мы установили здесь приложение BlueTerm, которое поддерживает этот протокол.
Вы также можете использовать любое другое приложение Bluetooth Terminal, которое поддерживает связь через разъем RFCOMM.
Теперь, после загрузки и установки приложения BlueTerm, запустите указанную ниже программу Python с терминала и одновременно подключите сопряженное устройство raspberrypi из приложения BlueTerm.
После успешного подключения вы увидите connected: raspberrypi в правом верхнем углу приложения, как показано ниже:
Теперь вы можете просто ввести «1» или «0» из приложения BlueTerm, чтобы сделать вывод GPIO ВЫСОКИМ и НИЗКИМ соответственно, что, в свою очередь, запускает модуль реле, подключенный к этому выводу, который дополнительно управляет лампочкой переменного тока, подключенной к реле. Нажмите «q», чтобы выйти из программы. Вы можете использовать клавиатуру Google Voice Typing для управления 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 или можете использовать свой голос для управления освещением.
Также проверьте наши многочисленные типы проектов домашней автоматизации с использованием различных технологий и микроконтроллеров, таких как: