Как сделать веб-приложение для вашего собственного bluetooth low energy девайса?

Содержание

Что такое bluetooth модуль и его назначение

Bluetooth протокол необходим для быстрой передачи данных на небольших расстояниях. Но значительно чаще его применяют в проектах, с целью наладить управление микроконтроллером с близких расстояний. Соответственно, он будет удобен для построения тех же умных домов, если дополнить аппаратную составляющую приложением на смартфон.

Таким образом, первичное и главное назначение Ардуино блютуз – связь с вашим ПК и\или Андроидом по соответствующему протоколу. Это позволяет не только управлять разнообразными датчиками на микроконтроллере, но и, в случае необходимости, обновлять прошивку.

Полностью перепрошить устройство с его помощью не получится. Помимо этого, Android Arduino bluetooth может обеспечить связь между несколькими МК и приборами. Естественно, для этого на каждом из них должен быть установлен независимый модуль. HC-05 позволяет проложить несколько мостов по типу USAR-bluetooth-USART. При этом само устройство будет восприниматься в качестве ответного на USART. А организовывать связь уже будет аппаратная часть вашего проекта.

Модуль HC-06

У блютуз модуля под Ардуино, есть несколько преимуществ, перед стандартными дополнениями под другие МК:

  1. Инженеру нет необходимости изучать технологию протокола блютуз, чтобы написать софт или начать использовать уже готовые библиотеки.
  2. Простота использования в целом. Вам не нужно будет паять отдельную плату под распределение мощностей, просто подсоедините устройство к уже готовому МК через пины.
  3. Обширный выбор библиотек. Так как Ардуино имеет низкий порог вхождения, под все его модули можно найти большое количество библиотек, разного назначения. Но стоит отметить, что весомая их часть – бесполезны, ибо не работают или работают крайне плохо. Ведь пишет их сообщество, которое не изучало основы алгоритмизации и, в большинстве своём, в принципе, плохо разбирается в программировании. Из-за этого, во многих ситуациях, просто модифицировать чужой софт – не лучшее решение, и значительно проще написать свой.

Сфера же применения RC car Arduino bluetooth – огромна и ограничена лишь вашей фантазией. Например, вы можете купить обычную китайскую гарнитуру, припаять к ней пару модулей под Ардуино, так как они могут функционировать и без МК, и загрузить одну из готовых библиотек. После таких манипуляций наушники можно будет использовать в беспроводном режиме и исчезнет проблема с запутывающимися или гнущимися проводами. Это одна из банальных проблем реализации данного протокола в проекте, на деле их тысячи.

Предназначается bluetooth аудио модуль для бытового и коммерческого применения, чему способствуют его характеристики. Также стоит учитывать, что если вы собираетесь в дальнейшем связываться по одноимённому протоколу с ПК, то на большинстве современных устройств необходимо будет докупить блютуз по USB. Но вы можете также спаять его из МК, создав собственный bluetooth модуль для компьютера. Естественно, это не относится к ноутбукам, где поголовно устанавливаются одноимённые передатчики, и никак модифицировать их уже не требуется.

HM-11. Non break out version.

For a future project I wanted a Bluetooth module that was as small as possible and the HM-11 without a breakout board looked suitable. However, After playing with them for a while I decided to stick with Bluetooth v2 and will use a HC-05 without the breakout board instead.

Basically the same as the HM-10 but in a small package.

CC2540 or CC2541 chip.
Bluetooth version 4.0
Firmware HMSoft V540
Default baud rate is 9600
Default PIN is 000000
Default name is HMSOFT
AT commands need to be uppercase
The HM-11 does not like line end characters (\r\n).

The HM-11 is Bluetooth 4.0 BLE only and not compatible with Bluetooth 2.0 or 2.1. The model I received includes the CC2541 chip as opposed to the CC2540 chip.

Pins

Since there is no break out board all pins are 3.3v

The minimum connections to get the modules working are TX, RX, VCC and GND. I also added a LED to pin 15 so that I had visual confirmation that the module was on. The extra white wire is attached to pin 16 (SYSTEM KEY) but this is not connected in the below photos. The wire is single core wire wrap wire which I find very convenient for this kind of work.

The HM-11 is operationally the same as the HM-10 and there is more information in the HM-10 guide.

HC-05 zs-040 hc01.com V2.1

Another version of the HC-05 on the zs-040 breakout board but this ones uses the real HC SMD Bluetooth board (you can tell by the logo and the blue LED).

The hardware is basically the same as the HC-06. The difference is the firmware. The HC-05s can operate as MASTER or SLAVE devices.

These start in communication mode and need to be put in to AT mode by bringing pin 34 HIGH. This can be done by closing the small button switch as you power the modules. When in AT mode the baud rate is set to 38400.
Unlike the other zs-040 HC-05 modules I have it looks like bringing pin 34 HIGH after the modules have started does not put them in AT mode. I haven’t really investigated this properly though.

Uses the CSR BC04 (BC417) chip
Bluetooth version v2.0 + EDR
Firmware hc01.comV2.1. by Wavesen.
Default communication baud rate is 9600
AT mode baud rate is 38400
Default PIN is 1234
Default name is HC-05
The small Bluetooth boards have a blue LED at the top left.

The EN pin when briefly brought LOW, breaks an active connection and resets the module.
The STATE pin goes HIGH when a connection is made.

AT commands require the nl/cr line endings and can be in upper case or lower case.

Downloads

Chinese data sheetEnglish data sheetChinese AT command guideEnglish AT command guide

As with the HC-06s the Chinese data sheets are more up-to-date than the English ones.

Further Information

Guangzhou HC website (Chinese only but google translate works)Website download page (Chinese only again). Note the English docs are not as up-to-date as the Chinese docs.Wavesen product page.Only the first photo shows the the correct (with LED) version. The other photos still show the the older no blue LED version.

HM-10

There are 2 versions of the HM-10; the S version and the C version. There are slight component differences and the HM-10C does not have the pads along the bottom (26 pads instead of 34) but operationally they are the same. More details here.

The HM-10Cs I have have the Keyes branding.

HM-10S

HM-10C

When compared to other Bluetooth modules the pins are reversed and there is a BRK pin rather then a EN or KEY pin.

The STATE pin is connected to the on board LED. Blinking when waiting for pairing or a connection. Solid on when connected and just after pairing.
The BRK pin allows you to reset a connection. When there is an active connection, bring the BRK pin momentarily LOW breaks the connection. When there is no connection making the BRK HIGH or LOW has no effect.

CC2540 or CC2541 chip.
Bluetooth version 4.0
Firmware HMSoft V540
Default baud rate is 9600
Default PIN is 000000
Default name is HMSOFT
AT commands need to be uppercase
The HM-10 does not like line end characters (\r\n).

The HM-10 is a Bluetooth 4.0 BLE module and not compatible with Bluetooth 2.0 or 2.1. The model I received includes the CC2541 chip as opposed to the CC2540 chip.

For more information see the HM-10 Bluetooth 4 BLE Modules post

Getting Started

Determining what modules you have and what firmware they are running is key to getting them to work and there are various things you can use to find more information.
1. Markings on the board or the breakout board.
2. Number and type of pins on the breakout board.
3. The type of Bluetooth.
4. The chip(s) used.
5. Talking to the module.

But the first thing you should do is try it. Power it up, make sure it works and see what name it transmits. If it transmits “HC-06” or “HC-05” you know it will be Bluetooth 2.0 or 2.1. HMSoft, AT-09, BT05, CC2540, CC2541 all mean BLE.

I am an Android user (sorry I can’t help with IOS) so all the examples will be from Android devices.

On Android devices (that have Bluetooth), all Bluetooth 2.0/2.1 devices should show up in Settings => Bluetooth => Scan for devices. BLE modules may or may not show up depending on the Android device you have and the version of Android it is running.

For BLE you should use one of the many BLE apps. I generally use BLE Scanner or B-BLE but there are many others.

Markings on the board / breakout board

There are many different modules available and a few have become fairly popular. These general have a brand or some kind of marking on the board; either on the small SMD Bluetooth board or the breakout board. Commons ones are:

  • zs-040
  • FC-114
  • JY-MCU
  • CZ-HC-0x
  • SJ
  • Keyes Bluetooth 4.0
  • HM-10

Of course, some of these are pretty obvious. If your module has HM-10 clearly stamped on it the chances are it’s a HM-10. It gets tricky when there are no markings or when the same board gets used again. I now have several different modules (BT 2 and BT 4) that all use the zs-040 breakout board and modules using the FCC-114 boards have at least 2 different firmwares.

Number and type of pins on the breakout board

The number and type of pins can give you some information. For Bluetooth 2 modules HC-05s tend to have 6 pins and HC-06s tend to have 4 pins.
The pin labels can also help. Besides the common TX,RX, GND and vcc, there may be EN, WAKEUP, STATE, BRK, KEY, or LED pins

Type of Bluetooth and chip used

This should be obvious but you never know. The chances are, if you bought a BLE module then you will get a BLE module just maybe not the HM-10 you thought you ordered. If you are not sure, start it up and use a Android device to scan and see what appears. The chip used on the small Bluetooth board (the daughter board) can help. Google the chip name and you will soon have a datasheet.

Talking to the module

To configure any of the modules you need to talk to it using a serial UART connection (see below for more on this). This can also be frustrating because different modules have different requirements for the format of the AT command. Some require uppercase, some lowercase. Some like line ending characters, other do not. Most default to 9600 baud rate but some have a different rate (38400 is also common). When trying new modules I have kind of settled on the following routine.

I start with 9600, line endings, and uppercase. If no joy, I try lower case. If no joy, I remove the line endings and try uppercase again. After going through the various options at 9600 I try 38400. 9600 and 38400 are the 2 most frequent baud rates. If I still don’t get anywhere I will try the other baud rates.

I will also cycle the power while connected with a serial connection. Some modules, like the ones that use a Bolutek firmware, have a start up message.

Getting garbage characters is a sign that you have the wrong baud rate.

SPP-C HC-06 / BT06 HC-06

I purchased 2 sets. One set sold as SPP-Cs and one sold as BT-06s. Both have the same firmware and show up as either BT-04A or ??04-A

When I purchased these I only saw them on taobao and I only saw the HC-06 versions. Now there are HC-05 versions and both the HC-06 and HC-05 are available on the usual sites like ebay and dx.com. The sites I have checked show the same incorrect data sheets as you get from the taobao sellers. Next time I order I may add a couple of the HC-05s to see if there is any difference.

Uses the zs-040 breakout board and has the Bolutek Bluetooth V2.1 version firmware. These are HC-06 slave only modules and the ones I have are 4 pin versions; no STATE pin, no EN pin.

Features the Beken BK3231 chip which is a Bluetooth 3.0 HID device.
Bluetooth v2.1 + EDR
Default baud rate is 9600.
Default PIN is 1234.
Firmware is reported as BOLUTEK Firmware V2.2, Bluetooth V2.1
The firmware is by Bolutek so AT+HELP gets you a list of the available commands.
The modules report themselves as BT04-A or ??04-A

Default to AT mode when powered on. AT commands require line ending characters (\r\n).

If you open the serial monitor and then cycle the power to the module you get

+READY
+PAIRABLE

AT+HELP gets you a list of the available commands

Not sure if this is a full list or if the firmware is different to other “Bolutek Bluetooth v2.1 firmwares. If you Google this you quickly find data sheets that show a different command set.

Sony Z3 Compact:
Listed in Settings => Scan for Bluetooth devices as BT04-A. Can be paired the same as other Bluttooth v2 modules. Once paired they can connect to a Bluetooth 2/2.1 serial terminal app.

Huawei honor pro 4
Takes a while to show up in Settings => Scan for Bluetooth devices. Initally listed by the mac address which then changed to ??04-A.

Windows 8.1
Able connect to a PC running Windows 8.1 with Bluetooth and show up as BT04-A

Pins


PO 5 MCU-INT goes HIGH when a connection is made.
The LED blinks 800ms / 800 ms off when waiting for pairing or for a connection. When a connection is made the LED turns on (no blink).

Downloads

Bolutek SPP-CA hardware Guide Chinese only. This is for the Bolutek version but looks to be the same as the Beken BK3231 chip version.BK3231 data sheet

Further Information

The BK3231 chip is a highly integrated single-chip Bluetooth HID device. It integrates the high-performance transceiver, rich features baseband processor, and Bluetooth HID profile. Features:
1. Operation voltage from 2.8 V to 3.6 V
2. Bluetooth 2.1 compliant
3. -88dBm sensitivity for 1 Mbps mode and 2 dBm transmit power
4. HID v1.0
5. 16 MHz crystal reference clock

Beken BK3231 product page on the international siteThe Bolutek Chinese website has a SPP-CA module but it has a different layout so I suspect the ones I have are copies or they have repurposed the Bolutek firmware.

Характеристики

Давайте подробнее разберёмся, какие характеристики имеет такой bluetooth модуль для ПК и различных проектов. Сами разработчики заявляют, что выдержали коммерческий стандарт в hc 05. Соответственно, для управления устройством будет достаточно специальной программы на смартфоне или компьютере, которая позволит отправлять и получать данные с датчика. Однако существует ограничение в области применения, ведь устойчивый сигнал, без использования усилителей, можно поймать лишь на 9 метрах от чипа

Учитывайте, что это сырые цифры, в которых во внимание не берутся преграды на пути волн

Сами hc чипы полностью совместимы с любыми адаптерами, что поддерживают SPP. На самой плате устройства размещается небольшая антенна, припаянная к верхнему слою в виде дорожки, похожей на змею. Характеристики девайса заявлены следующие:

  1. Активные частоты радиосвязи находятся в диапазоне 2.4-2.48 ГГц.
  2. Канал приспособлен к адаптивному переключению.
  3. Условная дальность связи – 10 метров, но в этой цифре не учитываются преграды и помехи.
  4. Максимальная скорость при обмене информацией – 115300 бод.
  5. Хранить чип можно в температурном диапазоне от — 40 до +85 градусов, а вот использовать – от -20 до +70.
  6. Для работы необходимо будет напряжение в 3.3 В, что мы рассмотрим чуть ниже.

Адаптеры среднего ценового сегмента

В ТОПе рассмотрены устройства с наилучшим соотношением «качество-стоимость» в пределах 550-1000 рублей.

3 место – TP-LINK UB400

Производитель – TP-LINK, Китай.
Радиус работы – 10 м.
Цена – 670 рублей.

В приборе установлены протоколы технологии Bluetooth версии 4.0. Внешний вид напоминает флеш-накопитель, вставляемый в гаджеты и ПК с помощью USB 2.0. Прошивка подходит для последних версий операционной системы Windows 10; 8.1; 8. Для установки на Windows 7 и XP придётся поискать дополнительные драйвера. При использовании устройства в помещении необходимо соблюдать определённые условия: относительную влажность воздуха от 10% до 90%, конденсата быть не должно; температуру выше нуля до 40 градусов. Адаптер подходит для большинства девайсов: планшетов; смартфонов; контроллеров; Bluetooth-наушников; принтеров, мышек, клавиатур с Bluetooth. Рабочий диапазон по отзывам покупателей меньше. При использовании в другой комнате на расстоянии 6 и более метров возможны зависания и шумовые помехи, если рядом находятся радиоволны других приборов, а устройство используется в колонках или акустической системе. Габаритные размеры миниатюрны как на маленькой флешке: ширина — 14,8 мм, длина — 6,8 мм, высота — 18,9 мм.

TP-LINK UB400
Достоинства:

  • компактный;
  • универсальный;
  • без зарядки;
  • простой в использовании и настраивании.

Недостатки:

  • фактический радиус действия меньше заявленного;
  • старая версия Bluetooth.

2 место – Vention CDDB0

Страна – Vention, Китай.
Дальность действия – 10 м.
Стоимость – 620 рублей.
Адаптер внешне похож на флешку с маленьким полукольцом-державкой. В продаже можно найти разные цвета адаптера: белый, чёрный, голубой, светло-фиолетовый. На одной стороне корпуса из АБС-пластика красуется фирменный логотип Vention. На моделях основных цветов надпись яко голубая, на цветных моделях надпись белая. Контакты покрыты позолотой в 24 карата, проводник выполнен из чистой бескислородной меди. Данные передаются посредством внутренней антенны в диапазоне 10 метров по Bluetooth нескольких версий — 2.0, 2.1, 3.0, 4.0. Внутри используется технология Plug and Play, благодаря которой не надо устанавливать дополнительные драйвера и специальное программное обеспечение. Модель совместима с разными версиями ОС.

Vention CDDB0
Достоинства:

  • необычный дизайн;
  • маленькие размеры;
  • качественная сборка;
  • большая цветовая гамма;
  • соотношение цена –качество соблюдено;
  • простая настройка;
  • стабильность сигнала;
  • отличная совместимость.

Недостатки:

нет поддержки aptx без дополнительных настроек.

1 место – HAMA H-53188

Страна – HAMA, Китай.
Радиус действия – 100 м.
Стоимость – 780 рублей.
Адаптер с большим диапазоном действия. В пределах квартиры среди бетонных и других перекрытий сигнал намного стабильней, чем у обычных устройств. На свежем воздухе прибор можно использовать на расстоянии до 100 метров. Подключается к технике как обычная флешка, через разъём USB 2.0, к беспроводным наушникам – с помощью технологии Bluetooth 4.0. Весит гаджет всего 4 грамма, работает на частоте 2,4 ГГц. Скорость передачи данных составляет 3 Мбит/сек. Для наращивания максимальной пропускной способности, для стабильной работы при подключении нескольких устройств одновременно внутри адаптера установлен и поддерживается метод EDR. Внешне выглядит как маленькая чёрная флешка. На пластиковом корпусе по торцам расположены зазубрины, чтоб устройство не скользило в руке при подключении / отключении. На одной стороне имеется надпись hama. Габариты компактны: длина 23мм, ширина 12мм, толщина 4мм. При покупке оригинального изделия в упаковке найдётся инструкция на трёх языках и диск с драйверами под ОС Windows-7, На 10-й версии ОС адаптер установится автоматически.

HAMA H-53188
Достоинства:

  • большой радиус действия;
  • лучшее соотношение цена-качество;
  • миниатюрные размеры;
  • классический внешний вид;
  • стабильность в работе;
  • поддержка EDR;
  • отличная комплектация оригинального товара.

Недостатки:

не обнаружены.

Общая таблица характеристик

Параметры HAMA H-53188 Vention CDDB0 TP-LINK UB400
Дальность, м 100 10 10
Подключение к устройствам USB 2.0 USB 2.0 USB 2.0
Беспроводное подключение Bluetooth 4.0 Bluetooth 2.0/2.1/3.0/4.0 Bluetooth 4.0
Скорость передачи 3 Мбит/с 3 Мбит/с
Аккумулятор нет нет нет
Размеры, мм 12 х 4 х 23 14 х 6 х 25 14,8 × 6,8 × 18,9
Материал корпуса пластик, металл пластик, медь, позолоченные контакты пластик, металл
Цена, руб 780 620 670

Описание модуля Bluetooth HC 06

Все существующие типы модулей Bluetooth имеют свои особенности, но по функциям и действию они похожи. Одним из видов модулей является Bluetooth HC 06. Со стороны Ардуино модуль выглядит как обычный последовательный интерфейс, поэтому можно сразу наладить взаимодействие с устройством на компьютере.

Основные характеристики модуля:

  • Питание 3,3В – 6 В;
  • Максимальное входное напряжение 5 В;
  • Максимальный ток 45 мА;
  • Скорость передачи данных 1200–1382400 бод;
  • Рабочие частоты 2,40 ГГц – 2,48ГГц;
  • Поддержка спецификации bluetooth версии 2.1;
  • Малое потребление энергии;
  • Высокий уровень защиты данных;
  • Дальность связи 30 м;
  • Для подключения к смартфону используются следующие данные – пароль «1234», скорость передачи данных 9600, имя модуля HС-06.

Модуль имеет следующие контакты:

  • VCC , GND – плюс и минус питания;
  • RX и TX – приемник и передатчик;
  • MCU-INT – выводит статус;
  • Clear (Reset) – сбрасывание и перезагрузка модуля. Последние два вывода обычно не задействованы в работе, поэтому сейчас производятся модули без этих контактов.

Модуль HC-06 используется только в режиме slave, то есть он не может самостоятельно подключаться к другим устройствам Bluetooth. Все настройки для подключения «пароль, скорость передачи данных» можно изменить при помощи АТ-команд.

В комплектацию модуля не входят соединительные провода.

Подключение

В печатной плате установлено несколько контактов под пайку, у торцов устройства. Но напрямую подсоединять провода к контактам девайса не стоит, ведь в плате применяется особая технология, позволяющая максимально компактно впихнуть габариты устройства в вашу систему.

Устанавливать модуль необходимо достаточно плотно, для чего подойдёт стандартный МК или специальные платы, в которых применяются вилки-соединители. Но вы можете приобрести и отдельную плату под девайсы серии hc, или же сделать их самостоятельно, если у вас есть навыки по проектированию и созданию электронных плат.

В подобном девайсе обязательно должен быть соединительный разъем\специальные отверстия для монтажа проводки, а также светодиоды, которые помогут определить, идёт ли ток и работает ли устройство. Помимо прочего, необходимы стабилизаторы, специальный переключатель для reset’а прошивки и преобразователи интерфейсов, по вашему желанию.

При первом подключении важно проверить работоспособность, для этого подойдёт смартфон или ПК. Просто подайте ток на модуль и просканируйте его соответствующими устройствами

Bluetooth в Arduino проектах

Самыми популярными модулями являются устройства на основе чипа BC417. Эта серия называется HC. Модули HC-03 и HC-05 могут быть и сервером соединения, и клиентом, они обладают широким набором АТ команд.

Для подключения к ПК потребуются модуль Bluetooth, плата Ардуино, соединительные провода и компьютер. Скетч для управления платой Ардуино через смартфон и компьютер будет одинаковым, так как в обоих случаях данные в микроконтроллер буду поступать по протоколу UART. Схема подключения Bluetooth-модуля к плате представлена на рисунке. Пин RX на ардуино подключается к TDX, TX – к RDX, GND – к GND, 5V – к VCC.

При загрузке скетча нужно отключить Bluetooth-модуль, иначе будет появляться ошибка доступа к Ардуино.  Также нужно установить на смартфон или планшет, поддерживающий ОС Android, приложение для отправки данных на модуль.  После установки приложения нужно загрузить скетч и подключить модуль к плате Ардуино.  Пример кода мигания светодиода:


int val;

void setup()

{

Serial.begin(9600);

pinMode(13, OUTPUT); // 13 пин – светодиод, объявляется как выход

}

void loop()

{

if (Serial.available()) // проверка поданных команд

{

val = Serial.read();

if (val == '1') {digitalWrite(13, HIGH);} // при 1 включается светодиод

if (val == '0') {digitalWrite(13, LOW);}  // при 0 выключается светодиод

}

}

Теперь нужно настроить соединение телефона и модуля. Для установки соединения нужно зайти в настройки телефона и включить Bluetooth. Как только устройство будет найдено, нужно ввести пароль – обычно это «1234» или «0000». После этого нужно зайти в приложение, нажать на кнопку «подключить Bluetooth» и выбрать нужное устройство. При успешном сопряжении на модуле светодиод начнет мигать медленнее,  примерно 1 раз в 2 секунды.

В скетче светодиод включается и выключается при получении цифр «1» и «0». Кроме цифр также можно использовать буквы латинского алфавита с учетом регистра.

Аналогичным образом можно подключаться к модулю при помощи компьютера. Для этого существуют различные программы, которые подключатся к COM-порту. При запуске программы запрашивают номер порта, скорость  и тип подключения. При успешном подключении на экране появится поле терминала, в которое нужно ввести с клавиатуры цифры/буквы, включающие светодиод.

Заключение

В этой статье мы рассмотрели варианты подключения и работы с одними из самых распространенных Ардуино модулей Bluetooth HC05, HC06. Никаких особенных сложностей с этими модулями у вас быть не должно – просто подключайте его к пинам с аппаратным или программным UART, после чего используйте традиционные библиотеки (Serial для модуля, подключенного к 0, 1 пинам, SoftwareSerial в случае присоединения к другим).

Подключение Bluetooth к вашему Arduino-проекту может существенно увеличить ваши возможности по взаимодействию с другими устройствами. Вы сможете контролировать состояния датчиков и изменять параметры системы без перезагрузки контроллера. И. конечно же, вы сможете без проблем создать роботы и машинки на ардуино, управляемые через bluetooth со смартфона. Будем надеяться, что вы сможете сделать свой первый проект после прочтения этой статьи.