- Встановлення необхідних пакетів для зв'язку 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. Тут ми використовуємо протокол 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 та розпочати роботу з Raspberry Pi. Отже, спочатку нам потрібно оновити Raspbian, використовуючи команди нижче:
sudo apt-get update оновлення sudo apt-get
Тоді нам потрібно встановити кілька пакетів, пов’язаних з Bluetooth:
sudo apt-get встановити bluetooth blueman bluez - -
Потім перезавантажте Raspberry Pi:
sudo reboot
BlueZ - це проект із відкритим кодом та офіційний стек протоколів Bluetooth 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 з Raspberry Pi. Раніше ми встановили BlueZ у Pi, яка надає утиліту командного рядка під назвою „bluetoothctl” для управління нашими пристроями Bluetooth. Але перед цим підключіть свій USB-ключ Bluetooth до Raspberry Pi і перевірте, виявлений він чи ні, за допомогою команди нижче:
lsusb
Тепер відкрийте утиліту bluetoothctl за командою нижче:
sudo bluetoothctl
Ви можете перевірити всі команди утиліти bluetoothctl , набравши «довідка» . Наразі нам потрібно ввести нижче команди в заданому порядку:
# увімкнути # агент увімкнути # виявити на # зникне при # сканування увімкнено
Після останньої команди “сканувати увімкнено”, ви побачите у списку свій пристрій Bluetooth (мобільний телефон). Переконайтеся, що на вашому мобільному телефоні ввімкнено Bluetooth і його бачать прилеглі пристрої. Потім скопіюйте MAC-адресу вашого пристрою та з'єднайте її за допомогою даної команди:
пара
Потім вам буде запропоновано ввести пароль або PIN-код на консолі терміналу, потім введіть туди пароль і натисніть клавішу Enter. Потім введіть той самий пароль у своєму мобільному телефоні, коли вам буде запропоновано, і ви успішно з'єднаєтеся з Raspberry Pi. Ми також пояснили весь цей процес у нашому відео, поданому в кінці.
Як було сказано раніше, ви також можете використовувати інтерфейс робочого столу для з'єднання мобільного телефону. Після встановлення Blueman ви побачите піктограму Bluetooth у правій частині робочого столу Raspberry Pi, як показано нижче, за допомогою якої ви можете легко здійснити сполучення.
Кругова діаграма:
Принципова схема дуже проста, ми щойно підключили світлодіод до PIN 40 (GPIO 21) Raspberry Pi з резистором 220 Ом:
Керування світлодіодом за допомогою програми для Android BlueTerm:
Тепер після розбору мобільного телефону нам потрібно встановити додаток Android для спілкування з Raspberry Pi за допомогою послідовного адаптера Bluetooth. Як вже говорилося раніше, протокол RFCOMM / SPP емулює послідовний зв'язок через Bluetooth, тому ми встановили тут додаток BlueTerm, який підтримує цей протокол.
Ви також можете використовувати будь-яку іншу програму терміналу Bluetooth, яка підтримує зв'язок через гніздо RFCOMM.
Тепер після завантаження і установки додатка BlueTerm, запустіть нижче заданий Python програму з терміналу і підключити парне raspberrypi пристрої з BlueTerm App одночасно.
Після успішного підключення ви побачите підключений: raspberrypi у верхньому правому куті програми, як показано нижче:
Тепер ви можете просто ввести "1" або "0" із програми BlueTerm, щоб зробити штифт GPIO ВИСОКИМ і НИЗКИМ відповідно, що по черзі вмикає та вимикає світлодіод, підключений до цього штифта. Натисніть 'q', щоб вийти з програми. Ви можете використовувати клавіатуру Google Voice Typing, щоб керувати GPIO за допомогою вашого Voice. Перевірте повну демонстрацію у відео, поданому в кінці.
Отже, ось як ви можете бездротово керувати GPIO Pin за допомогою програми для Android через Bluetooth. Також перевірте, як використовувати Bluetooth з Arduino.
Пояснення програмування:
Програма Python для управління Raspberry Pi GPIO за допомогою програми для Android дуже проста та зрозуміла. Тільки нам потрібно трохи дізнатися про код, пов’язаний із Bluetooth RFCOMM-спілкуванням. Спочатку нам потрібно імпортувати бібліотеку сокетів Bluetooth, яка дозволяє нам керувати Bluetooth мовою Python; ми встановили бібліотеку для того ж у попередньому розділі.
імпортувати Bluetooth
Нижче наведено код, відповідальний за зв'язок Bluetooth:
server_socket = bluetooth. дані = 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 () : Сервер приймає запит на підключення клієнта та призначає мак-адресу змінній адресі, client_socket - сокет клієнта
data = client_socket.recv (1024): Отримати дані через клієнтський сокет client_socket і призначити їх змінній data . Одночасно може бути отримано максимум 1024 символи.
Нарешті, після програмування, закрийте підключення клієнта та сервера, використовуючи код нижче:
client_socket.close () server_socket.close ()
Весь інший код простий і зрозумілий. Перевірте повний код нижче. Спробуйте змінити цей проект, і ви можете використовувати його для керування багатьма іншими речами по бездротовому режиму, наприклад, за допомогою реле можна керувати побутовою технікою або керувати автомобілем-роботом через телефон Android.