- Создаем Android-приложение для управления домашним роботом через Bluetooth
- Что для этого потребуется
- Подключение Bluetooth-модуля к Arduino
- Установка Android SDK
- Создание приложения
- Работа приложения
- digitalhack’s blog
- Pages
- Saturday, May 5, 2012
- Android Example — Bluetooth Simple SPP Client and Server
- Android bluetooth spp example
- About
Создаем Android-приложение для управления домашним роботом через Bluetooth
Что для этого потребуется
В качестве Bluetooth-модуля лучше всего использовать HC-05. Его легко купить в китайском интернет магазине или на eBay. Модуль питается от 3.3 В, но его линии I/O могут работать и с 5-вольтовой логикой, что позволяет подключать его UART к Arduino.
Подключение Bluetooth-модуля к Arduino
Так теперь нам нужно подключить нашу Arduino с Bluetooth. Если на Arduino нет вывода с 3.3В , а только 5В то нужен будет поставить стабилизатор чтобы снизить питание. Назначение выводов HC-05 легко найти в интернете. Для использования рекомендуем вам сделать плату с выведенными линиями питания, Rx и Tx. Подключение к Arduino необходимо производить в следующем порядке:
- вывод Arduino 3.3В или (5В через стабилизатор!) — к 12 пину модуля Bluetooth
- вывод Arduino GND — к 13 пину модуля Bluetooth
- вывод Arduino TX — к 2 пину модуля RX Bluetooth
- вывод Arduino RX — к 1 пину модуля TX Bluetooth
После подключения необходимо проверить работоспособность Bluetooth модуля. Подключим Светодиод к 12 выводу Arduino и загрузим на плату следующий скетч:
Теперь скачиваем из Play Market программу Bluetooth-терминал и устанавливаем его. Включаем нашу Arduino. В приложении Нажимаем кнопку меню->Connect a device-Secure.
Тем самым ваше устройство начнём искать Bluetooth поблизости. Наш модуль должен называться HC-05. Вам потребуется выписать его MAC-адрес, так он понадобится в дальнейшем. Как только он обнаружит устройство HC-05 выберите его. Пароль, если потребуется: 1234 (это стандартный код). После того как вы подключились к нему у вас должно вывести сообщение которое пришло в Bluetooth терминал от Arduino: “Press 1 to LED ON or 0 to LED OFF..” Далее введите 1 и нажмите отправить. Тем самым вы посылаете цифру 1 через Bluetooth на Arduino. Как только он примет цифру 1 должен загореться светодиод подключенный к 12 выводу Arduino. После введите цифру 0 и светодиод должен погаснуть. Если всё получилось переходим дальше.
Установка Android SDK
Скачиваем с официального сайта программу для создания приложений для android любых моделей. Распаковываем архив, запускаем SDK Manager.exe и устанавливаем программу. Вам предложат установить API, и версию android для которой вы в дальнейшем будете устанавливать приложения.
Android SDK Manager
После нажимаем кнопку Install, ждём когда завершиться установка и закрываем окно.
Заходим в саму программу, она находиться в папке eclipse/eclipse.exe. После открытия программы в диалоговом окне необходимо указать директорию для хранения будущих проектов. Лучше создавать папку на локальном диске, используя при этом только латинские буквы.
Создание приложения
Выбираем File->New->Project.
Так как мы создаём приложение для android, выбираем Android-> Android Application Project, и нажимаем Next
Следующее диалоговое окно:
Application Name -> пишем имя приложение,
Project Name -> пишем имя проекта,
Package Name -> Ни чего не пишем он создается автоматически!
Minimum Required SDK -> это минимальные требование указываем нашу версию Android у меня 4.1 её я и выбираю.
Target SDK -> выбираем вашу версию Android
Compile with -> выбираем вашу версию Android
Theme: для начала я бы советовал выбрать None.
Нажимаем Next.
В следующем окне ничего менять не нужно. Просто жмем Next.
Далее нам предлагают создать свою иконку для приложения, можете изменить стандартный ярлык загрузив свою картинку, я же для начала предлагаю просто нажать Next.
В следующем необходимо выбрать пункт меню Blank Activity и нажимать Next.
Жмем Finish и через несколько секунд открывается главное окно нашей программы. Выбираем вкладку Activity_main.xml и видим наш редактор:
- Файлы нашего проекта.
- Run Запуск эмулятора для проверки программы на наличие ошибок
- Панель кнопок текста и многое другое от сюда вы будите выбирать что вам нужно и добавлять в качестве элементов приложения
- Для выбора размера дисплея вашего телефона или планшета
- Выбор ориентации. Два вида: горизонтальный и вертикальный
- API уровень (лучше не трогать)
- Тут будет отображаться всё то что вы добавили в приложение, так же тут можно переименовать ваши добавленные элементы или удалять их.
- Показывает свойства элемента, его размер цвет и т.д., так же тут можно редактировать элемент
- Показывает наличие ошибок.
- Выбор редактирования (графический либо текстовой). Для начинающих конечно лучше пользоваться графическим режимом
- Окно вашего приложения , можно видеть интерфейс будущего приложения
Теперь добавим две кнопки в интерфейс приложения. Выбираем элемент Button и переносим его на форму.
Справа вверху мы видим объекты которые мы добавили. Так же важно, какой из объектов выбран в данный момент. Справа внизу можно редактировать кнопку, давайте изменим текст подписи кнопки и его цвет.
Для этого в поле свойств элемента «Text» введите, вместо button1, значение «ВКЛ», а у button2 — “ВЫКЛ”. Должно получиться вот так:
Мы можем запустить только что созданное приложение на эмуляторе. Идем в настройки запуска «Run» → Run Configurations», в левой части нажимаем на «Android Application». Появляется новая конфигурация «New_configuration». В правой части окна выбираем вкладку «Target» и выбираем опцию «Launch on all compatible devices/AVD» и добавляем устройство. Проверяем что кнопки появились и их можно нажимать. Если всё хорошо — продолжаем дальше.
Теперь в файлах проекта выбираем bin->AndroidManifest.hml
Теперь нажмём снизу на AndroudManifest.hml
В этот файл нам нужно будет добавить две строки:
Они будут запрашивать включение Bluetooth при старте приложение, если он будет выключен приложение попросит пользователя его включить. Добавить его нужно сюда:
Далее откроем другой файл: src->com.example(name)
В этом файле и будет наш основной код. Все его содержимое нужно удалить и вставить вот этот код:
ОБЯЗАТЕЛЬНО! Введите вместо 00:00:00:00:00 МАС вашего Bluetooth модуля, который можно узнать через Bluetooth терминал.
Ваше приложение готово. Теперь нам нужно проверить, как оно поведёт себя на устройстве. Запустите для этого симулятор. Если он запустился нормально без ошибок, то в папке, где вы создавали свой проект, будет создан файл с вашей программой. Его необходимо скопировать и установить на свое устройство.
Работа приложения
При нажатии на кнопку “Вкл” ваше Android-устройство передаст через Bluetooth цифру 1 и, как только Arduino примет цифру 1, светодиод загорится. При нажатии на кнопку “Выкл” передается цифра 2 и светодиод выключится, как показано на видео в начале статьи. Всё просто))
Источник
digitalhack’s blog
My trials and tribulations in the electronic world.
Pages
Saturday, May 5, 2012
Android Example — Bluetooth Simple SPP Client and Server
This example has both a client and a server. The client runs on Android and in my case I ran the server on Windows 7 x64. I tested both java server and a perl server.
A useful freeware tool for listing the services / UUIDs on a device is Medieval Software’s Bluetooth Network Scanner.
I have included the files that have content that is key to setting up the application.
You should be able to create a new Android project in eclipse and then copy the code included below into the appropriate file.
Below the code attachments you will find a screen capture of what it looks like running on my Acer A100.
If you have any suggestions or questions please post them as comments.
Android SPP Client
The Android application is based on this post: Serial over Bluetooth simple test client. from anddev.org.
ConnectTest.java
goes in
\src\com\example\connecttest\
strings.xml goes in
\res\values\ main.xml
goes in
\res\layout\
AndroidManifest.xml
goes in
Screen Capture from Acer A100
The java server was based on this the SimpleSPPSever example from JSR-82 Sample : SPP Server and Client. To get to run on Windows I used the bluecove-2.1.1-SNAPSHOT.jar library.
SimpleSPPServer.java
goes in
\src\
Screen Capture from PC
The perl server was built using the Net::Bluetooth module.
SimpleSPPServer.pl
- As the SDK Emulator doesn’t emulate bluetooth this example will not run in the emulator.
- This example is built upon the work of others. I post it here not as an example of original work but rather as a complete working example for reference. If I didn’t appropriately credit you for your work please let me know and I will add you.
Источник
Android bluetooth spp example
⚠ WARNING: This project is no longer being maintained
Android-BluetoothSPPLibrary
Bluetooth Serial Port Profile which comfortable to developer application to communication with microcontroller or android device via bluetooth.
This libraly include all important methods for serial port profile on bluetooth communication. It has built-in bluetooth device list.
• It’s very easy to use
• Solve the lack of data like as «abcdefg» which divided to «abc» and «defg» when receive these data
• Auto add LF (0x0A) and CR (0x0D) when send data to connection device
• No need to create layout for bluetooth device list to select device for connection. You can use built-in layout in this library and you can customize layout if you want
• Auto connection supported
• Listener for receive data from connection device
• Import this library to your workspace and include in to your android project For Eclipse ADT : Download this library and import into your workspace and include this library to your project For Android Studio : Use Gradle to download this library from Maven
• Declare permission for library
• Declare BluetoothSPP like this
• Check if bluetooth is now available
• Check if bluetooth is not enable when activity is onStart
• if bluetooth is ready call this method to start service
For connection with android device
For connection with any microcontroller which communication with bluetooth serial port profile module
• Stop service with
• Intent to choose device activity
don’t forget declare library activty like this
• After intent to choose device activity and finish that activity. You need to check result data on onActivityResult
• If you want to send any data. boolean parameter is mean that data will send with ending by LF and CR or not. If yes your data will added by LF & CR
• Listener for data receiving
• Listener for bluetooth connection atatus
• Listener when bluetooth connection has changed
• Using auto connection
• Listener for auto connection
• Customize device list’s layout by create layout which include
list view with id name = «list_devices»
button with id name = «button_scan»
But if you don’t need to create layout file. You just want to change only text on device list layout. You can use bundle to change text on device list
- Connection Dialog
- Add Insecure Connection
- Fix bug on this issue https://github.com/akexorcist/Android-BluetoothSPPLibrary/issues/21
- Merge the code from https://github.com/akexorcist/Android-BluetoothSPPLibrary/pull/14 for a problem of auto connection
- Human Readable Log https://github.com/akexorcist/Android-BluetoothSPPLibrary/issues/19
Copyright (c) 2014 Akexorcist
Licensed under the Apache License, Version 2.0 (the «License»); you may not use this file except in compliance with the License. You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an «AS IS» BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
About
[UNMAINTAINED][Android] Bluetooth Serial Port Profile which comfortable to developer application to communication with microcontroller via bluetooth
Источник