Hc 06 прошивка. Что такое bluetooth-модуль? Создание ведомого ожидающего подключения ведущего

Пока готовится небольшой, но довольно сложный обзор, я решил немного отвлечься и написать про Bluetooth-UART модуль.
Относительно недавно я делал серию обзоров, посвященную одному из основных приборов радиолюбителя, лабораторному блоку питания. Когда уже писался обзор USB-RS232 адаптера, то я уже собирался на этом и закончить. Но потом подумал, а зачем в 21 веке использовать провода для управления блоком питания. Продолжение об этом эксперименте читайте под катом.

Как я выше написал, во время работы над последним обзором из серии посвященной лабораторному блоку питания



И косвенно
я решил было уже закрыть эту тему, но потом подумал, а зачем мне лишний кабель на рабочем столе. Нет, если устройство установлено стационарно, то кабель куда лучше, дешевле, надежнее и т.п. но если блок питания я использую относительно редко (по крайней мере гораздо реже паяльника, например), то лишний кабель, который к тому же может попасть под тот же паяльник, мне совсем будет неудобен.
Подумал и заказал платку Bluetooth адаптера.

Но будем последовательны.
Платка была заказана 26 июня, 28 числа пришло уведомление, что продавец отправил мою посылку, а уже 29 она начала отслеживаться, на мой взгляд очень оперативно. 11 июля я получил свою посылку на почте, на мой взгляд довольно оперативно. Правда после этого она месяц лежала у меня нетронутой, не было времени ею заниматься, но вот недавно у меня наконец то дошли руки поэкспериментировать с ней.
Пришла она в беленьком конвертике (уже так привык к желтым, что было даже непривычно).

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

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

С лицевой стороны видно сам Bluetooth и плату-адаптер, на которую он установлен. На этой плате установлен стабилизатор питания (сам Bluetooth модуль питается от 3.3 Вольта) и светодиод индикации установки связи (при установленной связи светит непрерывно, при отсутствии моргает). В принципе ничего не мешает использовать Bluetooth модуль отдельно от платы-адаптера (есть в продаже и в таком исполнении), но мне так было удобнее.

Дальше надо было этот модуль как то запустить, подал питание, включил в BlueSoleil поиск устройств, почти сразу увидел новое устройство в окружении, кликнул, ввел стандартный для этого модуля код 1234, на плате непрерывно засветился светодиод, а в BlueSoleil стала активной кнопка последовательных портов.
После клика по этой кнопке, меня радостно уведомили, что у меня теперь есть COM5.
Первым делом решил проверить ток, потребляемый данным устройством.

У устройства есть 2 режима, активный и спящий, с низким потреблением.
В спящий режим устройство автоматически переходит через 5 секунд неактивности, просыпается при поступлении любой команды.
В рабочем режиме потребление от 5 Вольт чуть больше, чем 20мА.

В спящем режиме чуть больше чем 4мА. Думаю, что в этом режиме, больше половины это светодиод и стабилизатор 3.3, если их исключить, то ток будет еще меньше.

После этого я соединил контакты RX и TX модуля между собой и проверил наличие эха в терминале (я использую Putty). Связь проходит без проблем, Проверил дальность, в пределах комнаты работает, если для кого то важно, то могу проверить на большей дистанции, но проверка не будет объективной, так как дальность зависит и от Bluetooth адаптера в компьютере.

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

Система команд модулей (не всех, так как система команд зависит от прошивки, есть HC-05 и Linor), У прошивки HC-05 (модули HC-03/HC-05) одни команды (их много), у прошивки Linvor (модули HC-04/HC-06) другие команды (всего три AT-команды). Также, различна методика работы с AT-командами.

Кстати, при отправке команды модулю, надо ее отсылать целиком, т.е. сначала набрать всю команду, потом отослать, иначе модуль команду не воспримет. Я сначала попробовал это делать при помощи терминала от Bray, получилось без проблем, но было не очень удобно.

Полазив по инету еще, вылез на с довольно удобной программой конфигурирования этих модулей.
Подключил модуль через .
Все завелось без проблем, кстати по умолчанию настройки модуля стандартные для многих устройств - 9600,n,8,1
Из программы я узнал, что модуль мой с версией прошивки 1.8, хорошо это или плохо я не знаю, пишу просто для информирования, вдруг кому-то будет полезно.

Сразу переименовал мой модуль, назвав его по имени , в который я собирался его устанавливать.
В общем открыл блок питания, отключил уже установленный адаптер COM-USB, подключил четыре проводка, запустил программу работы с блоком питания, и тут ОБЛОМ. :((((
Программа не видит мой блок питания, при том, что эхо проходит без проблем.
Потыкавшись и так и эдак я выяснил, что команда от программы в блок питания приходит, мало того, даже блок питания отвечает, но родная программа в упор не видит ответа от БП.
Расстроился я сильно, и решил использовать такой бонус как Звонок другу.
Мой товарищ работает программистом, и мы иногда делаем некоторые проекты в паре, я аппаратную часть, он программную.
И здесь он меня удивил, так как оказалось, что он, почитав мой обзор блока питания, решил сам написать программу для управления этим БП, но как полагается, с блэкджеком и «девушками», а точнее с графиками, большими индикаторами, возможностью добавления режимов заряда аккумуляторов с корректным окончанием заряда, ведением логов и т.п…
А самое интересное было то, что дла того, что бы легче было писать программу для работы с БП, он написал Эмулятор этого БП.
Т.е. он почитав систему команд БП, сделал виртуальный БП. Типичный подход программиста, напомнило - CPU not found! Press any key to emulation. :)))
Но самым удивительным было то, что с этой программой Bluetooth заработал без проблем.
Т.е. так случайно получилось, что программа, написанная в процессе работы с эмулятором БП, работает лучше, чем родная от производителя.
Ниже скриншоты программы, это пока тестовые версии, еще без довесков, но уже подающие признаки жизни, а самое главное, корректно работающие с Bluetooth адаптером (с ЮСБ так же работает без проблем).
По скриншотам видно, что программа еще сыровата. График автомасштабируется, потому при 12 Вольт он показывает максимум.



Здесь я попытался показать, что программа работает через Bluetooth, уж извините, как смог. :)

Программа будет дорабатываться. Скорее всего будет добавлена в этот обзор или в один из последующих, если он будет связан с этой темой (не дает мне моя жажда улучшать разные вещи, остановиться на том, что уже имею).

Резюме.
Адаптер работает без проблем, нареканий или замечаний нет, пробовал оставить на сутки, ничего не виснет, не греется. Не могу судить насчет потребляемого тока, меня более чем устроило, как и дальность работы. Цена вполне адекватная.
Минусов пока не обнаружил.

В дальнейших планах допиливание ПО (хотя это скорее в планах программиста), а я хочу доработать плату адаптера COM-USB так, что бы можно было использовать оба варианта подключения (естественно не одновременно) и что бы это переключение переходило автоматически. Теоретически, сигналы от модулей можно развязать банальными диодными развязками, но руки до этого еще не дошли.

На всякий случай для конфигурирования этих модулей.

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

Надеюсь мой обзор будет кому нибудь полезен.

Вместо котика.

Планирую купить +56 Добавить в избранное Обзор понравился +78 +144

Очень часто в ваших проектах возникает необходимость в дистанционном управлении или передачи данных с ваших телефонных гаджетов.

Один из самых популярных и распространенных методов обмена данными посредством Bluetooth.

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

Нам понадобится:

  • Набор проводов ПАПА-МАМА
  • HC-06 Bluetooth

Подключать Bluetooth модуль к микроконтроллеру Arduino удобнее всего с помощью проводков ПАПА-МАМА .

Arduino Bluetooth
Pin 1 (TX) RXD
Pin 0 (RX) TXD
GND GND
5V VCC

Будьте внимательны, подключать подключать нужно TX -> RXD ,RX -> TXD .

Теперь необходимо записать пробный код программы:

Во время загрузки скетча необходимо что бы Bluetooth модуль был отключен от микроконтроллера arduino. В противном случае скетч не запишется, потому что связь с Bluetooth модулем происходит по одному и томуже порту RX и TX, что и USB.

Int val; int LED = 13; void setup() { Serial.begin(9600); pinMode(LED, OUTPUT); digitalWrite(LED, HIGH); } void loop() { if (Serial.available()) { val = Serial.read(); // При символе "1" включаем светодиод if (val == "1") { digitalWrite(LED, HIGH); } // При символе "0" выключаем светодиод if (val == "0") { digitalWrite(LED, LOW); } } }

После того как скетч записан и Bluetooth модуль подключен к Arduino, можно перейти к следующему шагу.

Подключение Bluetooth к телефону

Желательно в качестве источника питания для arduino использовать не USB, а внешний Блок питания на 9 В.

  1. Включаем Bluetooth на телефоне и ищем новые устройства
  2. Находим в списке расстройств "HC-06" и подключаемся к нему.
  3. Телефон спросит пин-код. необходимо ввести "1234 " или "0000 "
  4. Ура. Устройство подключено.

Теперь нужно скачать bluetooth terminal на ваш телефон. Мы рассмотрим на примере платформы Android.



Вы можете установить разные bluetooth терминалы, как правило они отличаются только разными дизайнами, функционал от этого не меняется. Так же можно найти и терминал и для продуктов ios.

После того как мы установили терминал, запускаем его выбираем наш bluetooth модуль HC-06 и подключаемся к нему.

Пришло время попробовать проект в деле. Пишем в терминале цифру "0" и отправляем. Светодиод L который находится на плате arduino рядом с pin 13, должен погаснуть. Теперь отправим через терминал цифру "1" и светодиод L должен зажечься.

Демонстрация работы:


Домашняя работа:

  • Изменить скетч так, что бы светодиод зажигался и потухал с помощью одной и той же команды например "G".
  • Дописать скетч и научить его преобразовывать текстовые данные приходящие через блютус в цифровые и реализовать димер, зажигать светодиод с помощью ШИМ, на заданную яркость от 0 до 254 приходящую через bluetooth.

Мы заняты разработкой приложения под Android для управления нагрузками на Arduino. Но, как вы все понимаете, просто там одно к другому не подключишь - нужен канал связи, а какой у нас самый доступный и дешманский канал? Конечно же bluetooth! О нём дальше и пойдёт речь.
Сегодня решаем производственные вопросы - подключаем Bluetooth модуль HC-06. Его главное отличие от HC-05 в том, что он урезан и предоставляет только необходимый минимум возможностей.

В целом, HC-06 можно рассматривать как беспроводной удлинитель UART. Поскольку мы подключаясь к нему с ПК через Bluetooth видим его как COM порт и подключаясь к контактам мы имеем чистый UART. Практически всё, что идёт с одной стороны - выходит с другой. За исключением AT команд со стороны контактов.

AT команды - это наследие старых модемов ещё из 1977 года. Представляют они из себя короткие строковые команды, например «AT», «AT-NAME», «AT-PIN». Обычно ввод команды завершается клавишей Enter. Но в этот раз всё немного иначе, и команда целиком должна быть получена, примерно, в течение одной секунды. По этой причине, для настройки нам не подойдут программы позволяющие писать напрямую с клавиатуры в порт (можно попробовать из буфера обмена, но есть шанс на облом). Нам нужна возможность послать по сигналу строку целиком.

Вооружившись COM Port Toolkit , мы выставляем скорость в 9600 и соответствующий номер порта. Далее готовим первую строку «AT». Отправляем и получаем на неё ответ «OK». Это уже хороший знак. Мы не перепутали RX и TX и не ошиблись со скоростью. Дальше вам наверняка захочется дать своё название модулю. Пишем: «AT-NAMEhome» и получаем в ответ что-то типа «OKhome». Меняем код доступа так: «AT-PIN010203», и получаем: «OKsetpin»
Ну что же. На этом начальная настройка закончена.

Не пропустите обновления! Подписывайтесь на нашу группу

Хотели бы вы организовать беспроводное включение/выключение света в доме? Если да, то для подобного проекта можно использовать Arduino, bluetooth модуль HC-06, реле и знания основ схемотехники.

В этой статье мы рассмотрим основы взаимодействия bluetooth модуля HC-06 с Arduino. Рассмотрим примеры передачи и приема данных через блютуз на примере включения/выключения светодиода.

Для реализации более серьезных автоматизированных систем вроде "умного дома", эти основы будут как нельзя кстати.

Начать работать с HC-06 достаточно просто. Все, что вам надо знать - расположение контактов для подключения. На HC-06 шесть контактов: wakeup, VCC, GND, TXD, RXD и State. На этапе, используем 4 контакта: VCC, GND, TXD и RXD.


Ниже показано как именно подключается Bluetooth модуль к Arduino.


HC-06 выступает в роли последовательного порта, через который вы передаете и принимаете данные. То есть, используя окно серийного монитора в Arduino IDE или Bluetooth приложение на вашем компьютере или телефоне, вы можете контролировать и управлять вашим проектом. Например, в качестве терминала можно использовать Teraterm. Перед загрузкой скетча на Arduino , отключите модуль HC-06. Так как модуль производит обмен данными с помощью контактов tx/rx, загрузить скетч не получится. После загрузки скетча можете подключать bluetooth модуль.

Echo скетч для Arduino и HC-06

Данный скетч дает вам возможность отсылать строку на Arduino через bluetooth и получать ответ, который отображается в серийном мониторе.

Примечание . Если вы используете Arduino Mega, измените строку кода while(Serial.available()); на while(Serial.available()>0);. В противном случае, скетч не будет отрабатывать.

LED скетч для Arduino и HC-06

Эта программа дает возможность включать/выключать светодиод, отправляя команды на Arduino через Bluetooth.

Взаимодействие HC-06 с компьютером

На видео ниже показано как подключить HC-06 к персональному компьютеру иди другму устройству с поддержкой bluetooth.

Примечание . На видео скачано, что программа, которую вы используете в качестве серийного монитора (Teraterm в данном конкретном случае), подключается к INCOMING (входящему) com порту. Это не правильно. Надо использовать OUTGOING (исходящий) com порт.

После подключения HC-06, откройте Teraterm или другой подходящий терминал. Выберите серийный порт, который отвечает за обмен данными с HC-06 (более детальные пояснения по этому поводу есть на видео).

После успешного подключения HC-06, можете отправлять данные на Arduino и обратно. Если вы загрузили второй скетч, вы сможете включать/выключать светодиод, отправляя символы “n” и “f” соответственно.

Пример Echo

Пример LED

Сфера применения HC-06 по сути безгранична. Можно управлять любыми роботизированными системами и процессами. Надеемся, что приведенные основы работы с bluetooth модулем HC-06 будут вам полезны в проектах на Arduino.

Оставляйте Ваши комментарии, вопросы и делитесь личным опытом ниже. В дискуссии часто рождаются новые идеи и проекты!

Всем привет!

Есть модификация модуля HC-05 с 6ногами, (State,RX,TX,GND,VCC,EN), очень популярная сейчас на Алиэкспресс, так вот, для нее не нужно припаивать проводок на 34пин (KEY) и подавать туда 3.3в, чтобы включить работу RX-TX на выводах необходимо подать 3.3в. на разъем EN а не на key, после этого такой модуль начинает работать как положено начинает отвечать на AT команды отправленные с компьютера или ардуины по пинам. С трудом нашел эту информацию в одном описании этого модуля на странице товара на алиекспресс.
Короче все также как с KEY в этой статье, только 3.3в. подаем на EN! (Enter).
Привожу описание на англ.

First, the module parameters:
1.PCB Dimensions: 37.3mm (length) * 15.5mm (W)
2 Weight:. 3.5g
(3) Input voltage: 3.6V—6V, 7V ban over
4 power anti-reverse, reverse module does not work
5 leads to 6 feet: EN / VCC / GND / RXD / TXD / STATE (Bluetooth status leads to the foot, is not connected to the output low, after connecting output high)
6 with the connection status indicator, LED flash means no Bluetooth connection; LED flashing slowly that enter the AT command mode
7 onboard 3.3V regulator chip, the input voltage DC 3.6V-6V; When unpaired, current of about 30mA (because LED lights flashing, the current state of change); After successful pairing, the current is about 10mA
8 Interface level 3.3V, you can directly connect a variety of microcontroller (/51/AVR/PIC/ARM/MSP430 etc.), 5V microcontroller can also be directly connected. Directly connected to the microcontroller serial port, not through the MAX232 chip!
9 open area effective transmission distance of 10 meters, over 10 meters are possible, but do not guarantee the quality of the connection
10. After successful pairing, can be used as a full-duplex serial port. Do not need to know anything about the Bluetooth protocol, but only supports 8 data bits, 1 stop bit, no parity communication format. This is the most common communication format that does not support other formats!
11 Press the key to give the Bluetooth module is energized to enter AT mode, set parameters and query information
12 can be switched master and slave mode via AT commands
13 modules default baud rate is 9600, the default passkey is 1234, the default name for the HC-05
14 protection with transparent shrink tube
Second, wiring methods:
VCC: positive power supply
GND: power supply is negative
RXD: Receive side, the Bluetooth module receives data sent to the other device; TXD terminal normally connected to the other device to send
TXD: sending end, the Bluetooth module to send data to other devices; RXD terminal normally connected to other devices receiving
EN: Enable, then you need to enter AT mode 3.3V

Похожие публикации