Hc 06 прошивка: Страничка эмбеддера » Перепрошивка HC-06 в HC-05

Страничка эмбеддера » Перепрошивка HC-06 в HC-05

Все знают эти bluetooth модули. Так как схема включения не сложная, по быстренькому подключил модуль к переходнику USB<->UART.

Модуль упорно отказывался работать. Постоянно зависал терминал, а на команды, описанные в даташите, модуль не отвечал.

После недолгих поисков, оказалось, что у этой платки есть несколько прошивок. Итак:

  • Версии HC-04 и HC-06 отвечают на 9600. При этом, разделителем служит таймаут. Да, да, вам нужно очень-очень быстро написать AT (при этом, без никаких /r/n) и через таймаут, модуль ответит OK.
  • Версия HC-05 отвечает на скорости 38400, при этом нужно передавать AT\r\n. Но, кроме того, нужно подтянуть вывод “mode” к питанию – это переводит модуль в командный режим.

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

Питание взял от того-же переходника (в ft232r есть стабилизатор на 3.3 вольта). Я немного упростил ту схему, что гуляет в интернетах. Вот, что получилось:

Подключать нужно 1:1, то есть MOSI к SP_MOSI, итп.

Дальше я нашел компьютер с LPT портом и установил BlueLab. Скачать его можно вот тут, правда придется зарегистрироваться.

После установки голуболаба, нужно прописать путь к нему.

У меня был небольшой фэйл, который отнял довольно много времени. После запуска перепрошивки, голуболаб ругался, на то, что не может найти LPT порт. Проблема решилась переводом LPT порта в режим EPP.

Сам процесс прошивки прост до безобразия – возьмите вот этот архив:


И запустите update.bat, он

  • Считает калибровочные данные из модуля
  • Запишет новую прошивку
  • Запишет калибровочные данные

Модуль перепрошился отлично и начал отвечать на команды HC-05, но проблема с терминалом не исчезла. Как оказалось, во всем виноват сам терминал. Я использовал терминал bray’а. Я не знаю, что он там делает при инициализации, но при попытке отослать любой символ в порт, он наглухо вис.

Я взял другой терминал – termite и… все заработало. Получается, я зря перепрошивал модуль – новые AT команды мне не нужны. Возможно, вам пригодится.

РадиоКот :: Bluetooth по-китайски: теория и практика

РадиоКот >Схемы >Цифровые устройства >Примочки к ПК >

Bluetooth по-китайски: теория и практика

Сегодня помучаем получившие уже достаточно широкое распространение Bluetooth модули HC-04. Думаю, не ошибусь, если скажу, что широкое распространение они получили благодаря нашим китайским друзьям, низкой цене и бесплатной доставке с Dealextreme)))

В простейшем случае модуль представляет собой Bluetooth-RS232 мост: какие байтики на вход послали, такие по радиоканалу и передались – фактически радиоудлинитель порта, все очень просто и легко интегрируется в существующие системы с RS232.

Вообще, у этих модулей достаточно много названий (по крайней мере, в продаже их можно найти под разными именами): HC-04, HC-05, BC04, BC05, BC06, RF-BT0417C, BT0417 и ряд других. Однако общей для все остается основа, а именно – микроконтроллер BC417143B от Cambridge Silicon Radio (CSR). Это решение называется BlueCore4, и все модули на его основе даже внешне очень похожи, поскольку основаны, видимо, на каком-то одном reference-design. Я пересмотрел достаточно много фотографий модулей, отличия минимальны: чуть другое расположение кварца и 1-2 пассивных компонентов, другой типоразмер какого-либо элемента – не более.

BC417143B сам по себе обладает достаточно богатым набором интерфейсов и возможностей:

 

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

Мне с Dealextreme прислали десяток вот таких модулей без опознавательных знаков:

Размеры – 27х13мм, питается железячка от 3,3В, потребляет в процессе установки соединения до 30мА и около 8мА в условиях стабильного коннекта. Поддерживает Bluetooth 2.0. Умеет работать в двух режимах: АТ-команд (для настройки и управления) и передачи данных (просто тупо отдает в эфир все, что получает по последовательному интерфейсу), переключение между режимами – аппаратное (в зависимости от состояния определенной ноги модуля. Скорость UART’a из стандартного ряда 1200 – 115200, настраивается АТ-командами (по умолчанию – 9600 8N1).

Назначение выводов следующее:

 

Или есть вот такая красивая картинка:

 

В простейшем случае для работы достаточно подключить питание и выводы Rx-Tx – все, можно связываться с устройством.

В режим AT-команд модуль переводится подтягиванием вывода PIO11 к питанию с последующим сбросом, в режиме передачи данных этот вывод заземлен или болтается в воздухе.

Собственно, «из коробки» этот модуль не умеет практически ничего, команды ограничены минимальным набором (все команды заканчиваются посылкой символов 0x0D и 0x0A):

AT – ответ ОК

AT+BAUDx, где (х = 1..8, что соответствует скорости 1200..115200) – установка скорости интерфейса, ответ – OKxxx, где xxx – установленная скорость

AT+NAMEname – установить имя модуля name, ответ – OKname

AT+PINxxxx – установить пин-код для соединения хххх, ответ – OKхххх

На этом все. Причем в данном виде модуль не может выступать в качестве инициатора соединения, мастера, он может быть только ведомым. Конечно, применение можно найти, но как-то оно скучно получается.

Варианты? Перепрошивка, что же еще… Но сначала сделаем несколько плат для удобства работы с модулем.

Вариант №1

Схема платы на рисунке:

 

Имеется линейный стабилизатор для питания модуля на 3,3В, все выводы подключены к штыревым разъемам, добавлено несколько статусных светодиодов (на момент изготовления платы я еще не знал, как оно будет работать по факту, поэтому постарался учесть все органы управления и индикации, которые видел на различных схемах включения модулей – отсюда такое изобилие на схеме).

В собранном виде оно выглядит так:

 

Уже после (забегая вперед) перепрошивки модуля была изготовлена плата по второму варианту:

 

Суть та же самая, добавлены кнопки на сброс и переключение режима модуля для удобства экспериментов. Фотографии собранного модуля не успел сделать, сразу в устройство поставил, поэтому скриншот платы для наглядности:

 

На обратной стороне платы расположены цепи питания и внешнего сброса, все остальное – сверху.

Практически по этой же схемы был изготовлен вариант № 3:

 

Здесь вся суть в том, что данная плата предназначена для замены модулей MaxStream  Xbee и XbeePro (это ZigBee, их я иногда тоже использую) и совместима с ними по выводам:

 

Как потом оказалось, такие платки уже даже серийно выпускаются…

Теперь насчет перепрошивки модуля. Многие читатели, уверен, обратили внимание на то, что на всех платах я сохранил SPI-интерфейс модуля: именно через него и осуществляется прошивка. Нужно собрат несложный программатор на LPT-порт компьютера, практически 5 проводков для AVR:

 

По сути, это просто согласование уровней между 5В LPT и 3.3В модулем.

В сборе выглядит вот так:

 

Я установил ряд разъемов для удобства подключения. Для программирования на модуль требуется подать внешнее питание.

Все манипуляции производятся под управлением Casira BlueSuite или Casira BlueLab. Насколько я понимаю, это разработки непосредственно CSR, причем раньше они разрешали регистрироваться у себя на сайте, после чего можно было скачивать это программное обеспечение и всяческие примеры, готовые прошивки и т.п. решения для их продуктов. Однако на данный момент судя по всему это работать перестало (для России, по крайней мере, но если у кого получится – дайте знать). Однако многие вещи остались лежать в Сети, так что при некотором старании все ищется. BlueLab я раздобыл только недавно и еще не пробовал, но это целая среда для разработки собственных приложений плюс документация и примеры, так что при желании там есть, где развернуться. А вот после установки BlueSuite на компе появляется масса всяческих утилит, предназначенных для работы в том числе и с нашим пациентом. Поэтому цепляем модуль к программатору, программатор к компу, подаем питание на модуль, не забывая внимательно следить, чтобы земли были объединены… А то мало ли что;)

Непосредственно для прошивки предназначена Blue Flash:

 

После запуска выбираем способ подключения к модулю (LPT1) и указываем на файл прошивки. Как уже стало понятно, прошивать будем нечто под названием «HC-05».

После этого нажимаем «Stop Processor» (не волнуйтесь, это про модуль, а не про ваш любимый комп)), становятся активными остальные кнопки:

Я бы порекомендовал на всякий случай сохранить имеющуюся прошивку через «Dump», хотя это и не обязательно, в принципе… Ну а дальше жмем «Download» и через пару минут получаем совсем другое устройство. Конечно, можно еще «Verify» жмакнуть, чтоб убедиться, что все хорошо.

Теперь запускаем PSTool.

Первым делом требуется указать способ подключения модуля:

 

Открывается основное окно:

 

В левой части немеряно всяческих параметров, значения которых можно всячески изменять. Настроек реально очень много, так что простор для экспериментов имеется, я, честно говоря, особо не копался.

Стоит сразу изменить адрес устройства:

 

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

Теперь ради интереса можно запустить BlueTest3. Опять же, выбираем способ подключения:

 

И попадаем в основное окно:

 

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

Ради чего все это было. В результате мы получили сильно расширенный набор AT-команд. Теперь можно сканировать эфир, задавать доверенные устройства, изменять класс модуля и многое другое. Одно из самых полезных благоприобретенных качеств – возможность конфигурирования модуля в режим мастера. Т.е. теперь имея два таких модуля можно делать полноценный радиомост без участия третьей стороны. Полное описание команд можно посмотреть в даташите на модуль, доступном в конце статьи.

Один нюанс. На данный момент я перепрошил 4 модуля и после перепрошивки скорость последовательного интерфейса у них почему-то принимала случайное значение: у кого-то 9600, у другого – 115200. Причины явления мне не понятны, но после соответствующей настройки AT-командами все возвращается в нормальное русло. Да, в режиме команд скорость интерфейса – 38400.

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

У меня уже довольно давно была мысль сделать какую-нибудь систему синхронизации времени для нескольких домашних часов в разных помещениях (DS1307, конечно, достаточно точна сама по себе, да и другие микросхемы RTC тоже, но вот кварцы и прочие компоненты часов все же приводят к некоторому убеганию на уровне 10-15с/месяц: не критично, но неаккупратненько как-то). Это вполне себе реализуемо на таких модулях, так почему бы и нет? Итак, нам нужно установить по модулю в каждые часы, время на которых мы хотим изменять, а так же некий передатчик точного времени. В качестве такого передатчика вполне логично использовать компьютер с синхронизацией времени из Сети (конечно, не атомный эталон, ну дык ведь и не для точной промышленности стараемся в данном случае). В принципе, в качестве передатчика вполне подойдет какой-нибудь USB-донгл, но у меня такого не нашлось (да и кроме того хотелось лишний раз повозиться с новыми для меня STM32 и проверить некоторые другие решения), поэтому родилась такая вот схема:

 

Суть в чем: микроконтроллер STM32F100C4T6 одним своим UART смотрит через преобразователь интерфейсов в USB компа, а вторым – в Bluetooth-модуль. Кроме этого имеется кучка индикаторных светодиодов и несколько кнопок (не используются). Также имеется возможность принудительно сбрасывать модуль и переводить его в режим команд/данных – соответствующие выводы подключены к микроконтроллеру.

В качестве USB-RS232 преобразователя применена Atmega8 с софтовой реализацией USB. Честно говоря, не помню, откуда скатал это решение, но все исходники доступны в конце статьи (давно уже лежала на винте эта схема, все никак не доходили руки попробовать, как оно живет). Конечно, решение избыточно, но просто было интересно. Не обязательно использовать именно такой переходник, варианты рассмотрены здесь . Скорости обмена между компом, микроконтроллером и модулем равны и составляют 38400кбит/с. Вот чем мне нравятся STM-ки, так это гибкостью системы тактирования: я поставил кварц на 4.433619 МГц (купил по случаю 1000шт задешево, теперь вот использую)), частота тактирования ядра при этом 26.601714 МГц, но совершенно спокойно получаются любые стандартные скорости обмена по UART.

Все это дело упаковалось в пластиковый корпус BOX-KC01:

 

Печатная плата разрабатывалась непосредственно под него и в собранном виде выглядит как-то так:

USB разъем не устанавливал: miniUSB у меня маловато, а хвостов с USB-A папой на конце много и бесплатно – просто распаял на плату кабель длиной около метра.

Кнопки, как уже сказал, не пригодились, финально все выглядит вот таким образом:

 

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

Итак, контроллер тоже может работать в двух режимах – режиме команд и режиме передачи данных.

Вне зависимости от режима работы все, что появляется на выходе BT-модуля (я имею ввиду его последовательный интерфейс, конечно же), передается на комп. Очевидно, в режиме передачи данных контроллера все, что передается с компа на контроллер попадает на вход BT-модуля и далее в эфир. Переход из режима данных в режим команд происходит, если контроллер получает последовательность из трех символов «+» подряд.

В этом режиме поддерживаются следующие команды (все в символах латиницы):

«с0» - переключение контроллера в режим данных, возвращает «Data Mode OK»

«с1» - сброс ВТ-модуля, возвращает «ВТ Reset OK»

«с2» - переключение ВТ-модуля в режим команд, возвращает «BT Command Mode OK»

«с3» - переключение ВТ-модуля в режим данных, возвращает «BT Data Mode OK»

«с4» - сброс настроек ВТ-модуля, возвращает «BT Reinit Completed»

«с5хххххххххххх» - установка нового адреса ведомого (хххххххххххх – сам адрес), возвращает «Setting New Bind Address Completed»

«с6» - состояние соединения в соответствии с состоянием статусного светодиода ВТ-модуля, возвращает «Connection Passed» или «Connection Failed»

«с9» - сброс контроллера, возвращает «MCU Reset...»

Вот скриншот общения с контроллером:

 

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

 

После этого ВТ-модуль устанавливает соединение с тем устройством, с которым он работал в последний раз перед выключением.

Светодиоды отображают прохождение данных по последовательному интерфейсу BT-модуля и соединению с ПК (Rx и Tx), состояние BT-модуля (Stat, см. даташит), состояние соединения (Conn) и состояние контроллера (Contr. Mode: мигает в режиме команд и повторяет Conn в режиме данных)

С помощью контроллера можно совершенно прозрачно работать с ВТ-модулем, управлять им АТ-командами и проводить всяческие эксперименты посредством любой программы-терминала.

Непосредственно для синхронизации времени на часах была «написана» небольшая программка на HiAsm:

 

Все предельно просто: выбираем ком-порт, на котором висит контроллер, далее соединяемся с целевым устройством ( OrbitLED (пришлось поправить прошивку для работы по UART, см. соответствующую статью ) или GreenClock (один мой уже довольно старый проект, делается по мере наличия времени уже несколько лет, надеюсь, скоро все же выложу его на Радиокоте)) и либо нажимаем «Sync Time» для синхронизации, либо «Set Time» для установки любого другого времени и даты, настроенного в полях «Time and Date Setup».

Назначение кнопок в нижней части окна понятно из их названий. Часть из них вряд ли когда-то понадобится и использовалась исключительно для тестовых целей. Вообще конечно эту программу нужно переделать так, чтобы синхронизация происходила по расписанию в автоматическом режиме. Тогда, поместив ее в автозагрузку на домашнем сервере 24/7, можно полностью решить вопрос одинаковости показаний часов по всей квартире. Именно так я в ближайшее время поступить и собираюсь.

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

Файлы:
Исходники для контроллера, Keil
Даташит на модуль
Комплект плат для модулей P-CAD2006
Плата контроллера P-CAD2006
Наклейка на лицевую панель (Corel)
Прошивка HC04 для BT-модуля (дамп исходной)
Прошивка HC05
Проект HiAsm и программа ClockSync
USB-RS232 на Мега8 (AVR Studio)
27.gif

Все вопросы в Форум.


Как вам эта статья?

Заработало ли это устройство у вас?


Эти статьи вам тоже могут пригодиться:

Настройка Bluetooth модуля HC-06 - DIY Head Tracking

У модуля HC-06 намного меньше возможностей, чем у модуля HC-05, но их вполне достаточно для работы в трекере. Настройка модуля HC-06 совершенно не похожа на настройку модуля HC-05.

В отличие от HC-05, модуль HC-06 не требует специальной процедуры входа в режим ввода AT команд. Модуль HC-06 всегда готов к приёму AT команд, когда он не подключен по каналу Bluetooth. Обмен ведётся не на скорости 38400 бод, а на скорости, заданной ранее. Если модуль новый, из упаковки, то это скорость 9600 бод. При передаче AT команд, после команды не должны отсылаться символы возврата каретки и новой строки. Это значит, нужно в нижней строке Монитора порта выбрать «нет конца строки».

Модуль HC-06 работает только в режиме Slave, это нам подходит.

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

Набор команд модуля HC-06 сильно ограничен. Никакие настройки нельзя считать из модуля, кроме версии (команда AT+VERSION), поэтому введём три необходимые нам команды, зададим:

  • имя модуля «HC-06 AHRS»,
  • скорость обмена 115200 (57600),
  • PIN-код доступа «1234».

После подключения переходника USB-UART(TTL) к компьютеру, на модуле HC-06 часто заморгает светодиод. Это рабочий режим без подключения по Bluetooth. В этом режиме HC-06 может принимать AT команды. Если модуль новый, то скорость обмена 9600 бод, если нет, придётся угадывать скорость.

Запустим Arduino IDE. В меню [Инструменты] выберем COM порт, назначенный для переходника USB-UART(TTL), в моём случае это COM5, и откроем [Монитор порта].

В нижней строке Монитора порта нужно выбрать [нет конца строки] и скорость [9600 бод]:


AT команды нужно вводить в верхней строке заглавными английскими буквами. И не забываем нажать кнопку [Отправить]:


Вводим:  Ответ:

AT [Отправить] OK - значит, попали успешно в режим AT команд

Если ответ "OK" есть, это значит, что скорость определена верно, и можно настраивать модуль. Если нет ответа “OK”, нужно перебрать другие скорости обмена из списка в нижней строке.

Проверить можем только версию прошивки модуля, но это нам ничего не даёт:

AT+VERSION [Отправить]  OKlinvorV1.8

Настраиваем имя модуля "HC-06 AHRS":

AT+NAMEHC-06 AHRS [Отправить] OKsetname

Настраиваем код доступа "1234":

AT+PIN1234 [Отправить] OKsetPIN

Теперь настраиваем скорость обмена 115200 бод:

AT+BAUD8 [Отправить] OK115200

или 57600 бод (для прошивки "по воздуху"):

AT+BAUD7 [Отправить] OK57600


Проверим связь:

AT [Отправить]

А ответа-то и нет! Модуль уже работает на новой скорости.

В нижней строке выберем новую скорость [115200 бод] (или [57600 бод] для прошивки "по воздуху") и ещё раз проверим связь:

AT [Отправить] OK

Модуль HC-06 настроен для работы в трекере. Пока закроем монитор порта и Arduino IDE. Теперь нужно проверить работу модуля HC-06.

Настройка Bluetooth модуля

Bluetooth-модуль HC-05 | | Программирование микроконтроллеров

&nbsp

&nbsp

&nbsp

Сегодня мы познакомимся с недорогим модулем для беспроводной пердачи данных по Bluetooth.

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

Наш модуль именуется HC-05. Это один из представителей линейки подобных модулей HC-03 – HC-09.

Данные модули позволяют передавать данные без проводов, не задумываясь о том, как вообще устроен протокол Bluetooth, о его полях и прочих тонкостях. Эти модули при правильных настройках обеспечивают передачу данных таким образом, что программист, сочиняющий код, пишет алгоритм так, будто он работает с проводным интерфейсом UART. Поэтому писать код становится максимально удобно и поэтому данная линейка модулей снискала такую огромную популярность среди начинающих программистов и не только.

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

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

  • чип Bluetooth – BC417143 производства CSR company,
  • протокол передачи данных – Bluetooth 2.0 + EDR,
  • класс 2, что соответствует передаче данных в радиусе до 10 м,
  • поддержка Serial Port Profile (SPP), что обеспечивает совместимость со всеми устройствами, поддерживающими данный профиль,
  • энергонезависимая память flash объёмом 8 мб,
  • радиоканал частотой 2.4 – 2.4835 MHz,
  • интерфейс USB Host 1.1/2.0,
  • интерфейс UART с регулируемой скоростью передачи.

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

Мы видим зедесь ножки GPIO, SPI, USB, PCM.

Правда мы пока будем работать только с интерфейсом USART, с помощью которого мы будем не только передавать какие-то полезные данные, а также и настраивать наш модуль.

Мы так поступим во-первых потому, что модули у нас будут одного типа (у меня их аж 4 штуки!), в которых модуль HC-05 напаян ещё на одну плату, на которой наружу разведены только 6 контактов. Вот такие вот они все у меня приблизительно (вид сверху и вид снизу)

Снизу платы нанесено назначение ножек, с ними мы разберёмся, когда будем подключать модуль.

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

Вообще, выбор пал именно на HC-05 ещё потому, что данный модуль прекрасно настраивается для работы как ведущего, так и ведомого устройства.

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

А пока давайте подключим наш модуль к переходнику TTL-USB, который в свою очередь мы подключим к ПК.

Соединим мы по следующей схеме

Переходник TTL-USB    Модуль HC-05

         VCC                             VCC

         GND                            GND

         TXD                             RXD

         RXD                            TXD

На практике это будет выглядеть примерно вот так

Подключим переходник к компьютеру, как работать с переходниками такого плана, рассказывать не буду, мы и так с ними постоянно работаем. Запустим терминальную программу, я воспользуюсь программой CoolTerm, так как у неё более гибкие настройки для пердачи данных с клавиатуры, а нам для ввода команд необходимо, чтобы каждая строка при передаче заканчивалась кодом перевода строки и возврата каретки.

Зайдём в настройки программы и настроим сначала порт

Данная скорость 38400 была выбрана потому, что модуль в режиме приёма AT-команд работает именно на такой скорости.

Теперь слева выберем пункт Receive и переключим там одну кнопку, а другую включим

Первая кнопка для окончания переданных команд символами перевода строки и возврата каретки, а вторая для того, чтобы мы свои введённые команды видели также после ввода в терминальном окне приёма.

Сохраним настройки и попробуем соединиться. Если всё удачно, то разъединяеся, так как сейчас у нас модуль находится в режиме передачи данных, и, если он ещё не настраивался, то скорей всего, мы даже не знаем его адреса, его настроек. О нахождении модуля в данном режиме свидетельствует быстрые мигания голубого светодиода Поэтому нам надо как-то перевести модуль в состояние передачи AT-команд.

Для этого мы пока отсоединим переходник от USB-порта и подклюим провод на ножку модуля HC-05 KEY. У кого-то она может иметь другое название, но, думаю, не перепутаете. Провод подключим вот такой и вот таким образом

Соединим данный провод с плюсом питания (с ножкой VCC)

И, не отпуская контакта, соединим перходник с портом USB компьютера и через некоторое время (через секунду или две) разъединим наш контакт KEY с контактом VCC, убрав провод. Модуль должен будет перейти в режим приёма AT-команд, о чём будет свидетельствовать очень медленная скорость мигания светодиода.

Перейдём в терминальную программу, соединимся с портом и попробуем послать команду AT, на которую нам модуль должен ответить "OK"

Модуль ответил, значит всё правильно.

Чтобы не путаться с настройками, которые были кем-то и когда-то внесены, давайте сборсим все настройки, введя команду "AT+ORGL". Настройки должны будут сброситься к следующим параметрам:

  • Device type: 0
  • Inquire code: 0x009e8b33
  • Module work mode: Slave Mode
  • Connection mode: Connect to the Bluetooth device specified
  • Serial parameter: Baud rate: 38400 bits/s; Stop bit: 1 bit; Parity bit: None.
  • Passkey: “1234”
  • Device name: “H-C-2010-06-01”

Только настройки сразу не применятся. Надо перезагрузить модуль. Удобно сделать это, введя команду "AT+RESET", в ответ на которую модуль перезагрузится и перейдёт опять в режим передачи данных и не сможет пока принимать команды. Чтобы он их принимал, проделаем те же действия, что и выше, для того чтобы модуль опять перешёл в режим приёма команд AT. Есть ещё один способ, но пока мы им пользоваться не будем.

Проверим теперь некоторые параметры нашего модуля.

Чтобы узнать версию прошивки, введём команду "AT+VERSION?", на которую модуль должен будет ответить приблизительно вот так

Если прошивка не ниже данной версии, то мы можем быть уверены, что данный модуль с такой прошивкой способен работать в режиме ведущего устройства (Мастера).

Узнаем адрес устройства с помощью команды "AT+ADDR?"

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

Давайте запросим ещё и имя устройства с помощью команды "AT+NAME?", на который многие модули, в том числе и мой реагируют только при наличии высокого уровня на ножке KEY, то есть при подключенном проводе. Так и сделаем

Давайте попробуем ещё это имя изменить, так как оно не очень удобное, для этого введём команду "AT+NAME:Желаемое_имя". Данную команду можно вводить без высокого уровня на ножке KEY

Проверим, что имя изменилось, только не забываем про высокий уровень на ножке KEY

Имя прекрасно применено.

Проверим пароль командой "AT+ PSWD?"

Аналогичным образом, как и имя, можно поменять и пароль.

Теперь узнаем тип устройства (ведомый или ведущий) с помощью команды "AT+ ROLE?"

0 – это значит ведомый. Тип также можно изменить в любой момент. Но нам это пока не нужно, так как мы будем работать с устройством как с ведомым.

Сбросим спаренные устройства командой "AT+RMAAD"

Теперь давайте узнаем настройки интерфейса USART командой "AT+ UART?"

Эти настройки означают: скорость 38400 кбпс, 1 стоповый бит и отсутствие контроля чётности.

В данной таблице находятся возможные варианты настроек USART

Давайте изменим, например, скорость передачи командой "AT+UART=115200,0,0"

Только данные настройки вступят в силу после перезагрузки модуля и будут актуальны только для режима передачи данных, для режима передачи AT-команд в модуль останутся настройки прежние со скоростью 38400.

Давайте перезагрузим модуль командой "AT+RESET", после чего модуль перейдёт в режим передачи данных.

Настроим порт в терминальной программе на данную скорость и соединимся с ним

Попробуем ввести команду, на что модуль наш не прореагирует, так как режим не тот

Но не будем отчаиваться. Оказывается, чтобы отправлять команды модулю, необязательно переводить его в этот режим. Можно включить поддержку передачи AT-команд в режиме передачи данных. На короткое время (достаточно менее секунды) коснёмся проводом, который подключен к контакту KEY плюсовой шины модуля и модуль перейдёт в режим поддержки AT-команд. Правда, по характеру мигания светодиода мы это не определим, он будет мигать также быстро. Также в режиме поддержки команд мы с нами не сможет соединиться ведущее устройство. Но тем не менее, нам не потребуется для каких-то настроек постоянно вынимать провод из разъёма USB и перенастраивать порт в терминальной программе. Это уже хорошо. Сделаем данное действие и убедимся в том, что модуль также будет принимать команды, как и в режиме приёма команд

Чтобы убрать данную поддержку и чтобы модуль смог соединяться, достаточно перезагрузить его командой "AT+RESET". Так и сделаем

Отлично! Мы уже кое-что умеем. В принципе, мы настроили модуль для передачи данных в режиме ведущего устройства.

Теперь смартфон, который у нас сегодня выступит в роли ведущего устройства. Подойдёт любой с андроидом, лишь бы встала какая-нибудь терминальная программа под Bluetooth. Я установил вот такую. Мне она показалась удобной

Во-первых, она бесплатная, не требует создания подключения заранее, а также имеет несколько кнопок с заранее сохранёнными нами строками.

Скачаем и установим программу и запустим её. Нажмём кнопку SCAN и наш модуль должен будет отобразиться в списке найденных устройств

Выберем данное устройство и попадём в диалог создания пары, в котором надо будет ввести пароль (у нас "1234") и согласиться, нажав кнопку "ОК"

Устройство появится в списке спаренных устройств

Также наши устройства создадут между собой соединение, о чём нам укажет намного медленнее мигающий светодиод на модуле. Причём мигать он будет двойными короткими вспышками.

Выберем наше устройство и попадём в диалог терминального обмена строками

Введём что-нибудь в строке и нажмём кнопку "Send ASCII"

Наш текст переместится в поле чата

Также если всё нормально со связью, мы этот же текст увидим в терминальной программе на ПК

Теперь попробуем, наоборот, послать строку из терминальной программы ПК в терминальную программу смартфона

Посмотрим, пришла ли наша команда

То есть связь у нас работает.

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

Спасибо за внимание!

Тесты устройств и аксессуаров Следующий урок

Техническая документация:

Теническая документация на модуль HC-05

Список AT-команд

Модуль Bluetooth можно приобрести здесь HC-05

Смотреть ВИДЕОУРОК (нажмите на картинку)

Post Views: 17 896

доработка автокома: uncle_sem — LiveJournal

на форуме http://carmasters.org есть тема о внедрении блютуса в автоком. главное и уникальное, что там появилось изначально - это прошивка модуля блютус. модуль - самый обыкновенный китайский типа hc05, hc06, bc04 и т.д.

дальше кое-как, не без моих усилий, добыли инфу, что распайка платы-переходника для разных версий железа - разная. то есть даже автоком с 6-значным серийником одноплатный и двухплатный - переходники на блютус разные.

в итоге вроде бы уже даже платы в каком-то диптрейсе выложили. ну, думаю, раз уж у меня блютус модуль с год валяется - над пробовать. полез смотреть что там за платы. угу. как обычно. короче, "хочешь что-то сделать хорошо - сделай это сам", как говорил мистер Зорг из пятого элемента. вскрыв свой старый одноплатник, я с некоторым удивлением обнаружил, что вместо 3.3В на разъеме модуля наличествуют все 5.

для одноплатного распайка выглядит вот так:

[двухплатный]
для двухплатного, ПОХОЖЕ, вот так:

ну и сел рисовать переходник самостоятельно. рисовалось как-то туго, видимо после выходных не отошел еще, сделал пару ошибок, главная из которых - не посмотрел, что у меня нету lm1117-3.3. и развёл плату под неё в твёрдой уверенности что я их с мамом понавыпаивал кучу. ага. щас. все похоже регулируемые, а не фиксированные 3.3В.

ну ок, плату сделал. прошивку скачал - там в теме есть. теперь надо что? правильно, надо подключить к ноуту и прошить. с подключением понятно - я сразу и программатор для LPT-порта нарисовал.

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

когда оно установилось и перезагрузило ноут (иначе дрова не встали) - я таки смог считать старую прошивку и записать новую. сразу, не отходя от кассы, поискал телефоном - ха! автоком однако появился!

значит можно собирать!

теперь понимаете, для чего на фотке третья платка? это переходник от платы автокома к плате блютуса. припаиваем эту переходную платку к плате автокома под 90 градусов, а к ней уже - наш блютусный модуль с переходной платой. очень просто и удобно. кстати, если стабилизатора нет - то можно найти 3.3В и в автокоме. я там подписал на фотке.

с трепетом подал питание на автоком - и вот они, белые светодиоды! включил ноут - да, находится блютусный автоком! тест? тест проходит! определяет, в частности, серийник и версию прошивки - всё ок. попробовал запустить диагностику какого-то вольво и какого-то фольксвагена - щелкает релюшками, мигает зелеными диодами, потом пишет нет связи. короче - как настоящий 😉

что удивило - метров с 10 телефон его нашел. и это в железном корпусе, без внешней антенны. надо попробовать "в боевых условиях", и можно задуматься о покупке планшета на винде под это дело. еще бы VCS аналогично доработать.

на днях залью куда-нить на я-диск прошивку, картинки, игловские файлы, и выложу ссылки. пока - спать.

вся инфа - тут

если кто будет повторять - там два нюанса, пишу сразу чтобы не забыть. во-первых каптоновая лента снизу не просто так 😉 во-вторых перед печатью плату нужно подредактировать, потому что я пустил дорожки тупо под блютусом, соответственно они пересекают и контактные площадки, которые нужно удалить в редакторе перед переносом на плату, чтобы потом всё это богатство не коротило, а потом уже, перед припаиванием собственно модуля к этой переходной платке - наклеить ленту, чтобы уж наверняка. в-третьих - я сделал всё на одностороннем текстолите, а значит в программаторе с обратной стороны платы контакты разъема с 18 по 25 включительно нужно соединить и завести в одинокое отверстие на плате.

ах, да. говорят есть нюансик - платы блютуса бывают с кварцем на 16 и 26 МГц. так вот вроде бы то что на 16 с этой прошивкой не работает. проверить увы не на чем.

Bluetooth модуль HC-07 - Avislab

Bluetooth используется на многих современных устройствах. Технология получила широкое применение. Хотя ей много лет, только недавно появились Bluetooth модули действительно по разумной цене. Китайские производители выпустили целую серию Bluetooth-модулей: HC-03, HC-04, HC-05, HC-06, HC-07, HC-08, HC-09. К сожалению, документация на них не всегда соответствует действительности (китайские производители частенько этим грешат). Мне достался HC-07. Я расскажу об особенностях его применения.

Bluetooth модуля

В большинстве своем Bluetooth модуля выполнены в виде платы и имеют интерфейс UART. Т.е. их можно легко использовать совместно с микроконтроллером. Прошивка для микроконтроллера ничем не отличается от описанной в статье "Подключаем микроконтроллер к компьютеру. Com-порт (RS-232), USB". Подключиться к микроконтроллеру через Bluetooth модуль можно с помощью обычного персонального компьютера, ноутбука с Bluetooth или смартфона. Bluetooth модули бывают трех типов:
  • серверные - к которым подключаются. Нам нужен именно такой.
  • клиентские - которые будут подключаться к Bluetooth.
  • универсальные - объединяют в себе обе функции.

Подключение модуля

Мы рассмотрим модуль HC-07 (скачать документацию). Подключить его к микроконтроллеру не составит труда. При питании микроконтроллера напряжением 3.3 В. Выходы TX(1), RX(2) Bluetooth модуля подключаются к RX, TX выводам микроконтроллера напрямую без каких либо схем согласования сигналов. На вывод 12 подается питание 3.3 В. На вывод 13 - общий (земля). Вывод LED (24) служит для индикации состояния модуля. К нему через резистор 470 ОМ на землю подключается светодиод. Вывод KEY(26) в HC-07 не используется. Хотя фигурирует во всех документациях. Он использовался в ранних версиях для переключения модуля в режим AT команд. В данной версии модуля (HC-07), команды воспринимаются со стороны UART до тех пор, пока к Bluetooth модулю не подключилось ни одно радиоустройство.

AT команды

Описание AT команд можно найти  в документации hc-05-at_command_set.pdf. Я приведу только наиболее часто используемые команды:

1. Тест модуля. команда: AT ответ: OK

2. Установка скорости обмена по последовательному порту. команда: AT+BAUD8; где 8 - скорость передачи 115200 ответ: OK1200

скорость передачи

1    1200 2    2400 3    4800 4    9600 5    19200 6    38400 7    57600 8    115200 9    230400 A    460800 B    921600 C    1382400

по умолчанию установлена скорость 9600.

пример настройки на скорость 2400 AT+BAUD2 ответ OK2400

3. Изменение имени Bluetooth команда: AT+NAMEname ответ: OKname Имя Bluetooth - 20 символов или менее. Пример: AT+NAMETest ответ: OKTest

4. Изменение пароля Bluetooth команда: AT+PINxxxx ответ: OKsetpin

пример: AT+PIN8888 ответ: OKsetpin

Заводской пароль 1234.  Реже 0000

Отличительные особенности модуля HC-07

Неожиданным и до сих пор не понятным сюрпризом столо то, что в HC-07 ввод команд не завершается привычным символом перевода строки и/или возврата каретки. Конец ввода команды определяется паузой в секунду. Я поясню. Вы отправляете в модуль команду, например AT+NAMETest и ждете 1 секунду пока он ее "проглотит". После чего посылаете следующую, и опять ждете 1 секунду. Зачем так сделано - понять не могу. Если вы отправите две подряд команды без задержки, то они будут восприняты неверно. Например:

AT+NAMETest AT+BAUD8

Отправка этих команд без ожидания ответа может привести к тому, что будет воспринята только первая команда, при этом не удивляйтесь, если  в результате будет задано имя Bluetooth TestAT+BAUD8.

AT команды используются только для настройки модуля. Bluetooth модуль сохраняет все настройки во внутренней памяти, и после отключения и включения питания работает с теми настройками, которые в него внесли. Поэтому, если вы подключились к Bluetooth модулю на скорости 9600 и изменили ему скорость работы на 115200, то в последующем Вам придется подключаться на скорости 115200.

Atmega + HC-07 + Android

Я взял свой старый проект USB-Altimeter и вместо микросхемы USB интерфейса прикрутил к нему Bluetooth модуль, снабдив устройство аккумулятором и зарядным от USB. После того, как схема собрана, микроконтроллер отправляет информацию. Неплохо бы её увидеть.

У меня стояла задача реализовать связь микроконтроллера с мобильным устройством, поэтому расскажу как это сделать, имея смартфон с Android. Потребуется программа Bluetooth - терминал. Я использую SENA BTerm. Установка программы через Play Market не составит труда.

Смотреть на скучные цифры было не интересно, поэтому была написана программа для смартфона с графическим интерфейсом. Но в этой статье мы не будем рассматривать написание программ под Android. Удачи!

Bluetooth, Zigbee модули CC2530, CC2531, CC2538, CC2541

Bluetooth 4.0 модуль позволяет подключиться к телефонам, КПК, смартфонам, ноутбукам, к любым устройствам, имеющим модуль Bluetooth и передавать данные через стандартный UART. Энергоэффективный трансивер CC2541 с технологией Bluetooth Smart для периферийных устройств компании Texas Instrum..

84.00 грн.

Bluetooth модуль BK8000L используется для создания беспроводных аудиосистем, наушников, гарнитуры. Технические характеристики: Bluetooth V2.1 Bluetooth Класса 2 Протокол: HFP V1.5, A2DP V1.2, AVRCP V1.4, HSP 1.2, GAVDP 1.2 Антенна: встроенная Напряжение питания: 2.8-4.2&nbsp..

58.86 грн.

Bluetooth модуль HC-05 original позволяет подключиться к телефонам, КПК, смартфонам, ноутбукам, к любым устройствам, имеющим модуль Bluetooth и передавать данные через стандартный RS-232. Прошивка модуля работает в режиме Master или Slave. Технические характеристики: Протокол: Bluetooth v2.0+..

129.60 грн.

Bluetooth модуль HC-06 позволяет подключиться к телефонам, КПК, смартфонам, ноутбукам, к любым устройствам, имеющим модуль Bluetooth и передавать данные через стандартный RS-232. На плате адаптере установлен стабилизатор напряжения. Прошивка модуля работает в режиме Master или Slave. Технические..

118.13 грн.

Bluetooth модуль HC-06 позволяет подключиться к телефонам, КПК, смартфонам, ноутбукам, к любым устройствам, имеющим модуль Bluetooth и передавать данные через стандартный RS-232. Прошивка модуля работает только в режиме Slave. Технические характеристики: Протокол: Bluetooth v2.0+EDR Частота:..

130.95 грн.

Bluetooth модуль HC-06 позволяет подключиться к телефонам, КПК, смартфонам, ноутбукам, к любым устройствам, имеющим модуль Bluetooth и передавать данные через стандартный RS-232. На плате адаптере установлен стабилизатор напряжения. Прошивка модуля работает в режиме Slave. Напряжение питания данно..

112.91 грн.

Bluetooth модуль HM-10 позволяет подключиться к телефонам, КПК, смартфонам, ноутбукам, к любым устройствам, имеющим модуль Bluetooth и передавать данные через стандартный UART. Энергоэффективный трансивер CC2541 с технологией Bluetooth Smart для периферийных устройств компании Texas Instruments. П..

79.11 грн.

Bluetooth модуль HM-10 с адаптером позволяет подключиться к телефонам, КПК, смартфонам, ноутбукам, к любым устройствам, имеющим модуль Bluetooth и передавать данные через стандартный UART. Энергоэффективный трансивер CC2541 с технологией Bluetooth Smart для периферийных устройств компании Texa..

89.64 грн.

Bluetooth модуль SPP-C на базе чипа BK3231 с адаптером. Позволяет подключиться к телефонам, КПК, смартфонам, ноутбукам, к любым устройствам, имеющим модуль Bluetooth и передавать данные через стандартный UART. В адаптере установлен стабилизатор напряжения питания. Технические характеристик..

78.30 грн.

Bluetooth приемник BT5.0 Audio позволяет подключиться к телефонам, КПК, смартфонам, ноутбукам и другим устройствам.  Может использоваться как беспроводные наушники, в качестве беспроводной системы аудио оповещения для умного дома и пр.  Технические характеристики: Bluetoot..

118.99 грн.
99.09 грн.

Bluetooth модуль MH-M18 оснащен стерео аудио выходом и позволяет подключиться в телефонам, КПК, смартфонам, ноутбукам, к любым устройствам. Может использоваться, в качестве беспроводной системы аудио оповещения для умного дома и пр. Технические характеристики: Bluetooth ве..

72.90 грн.

Bluetooth модуль MH-M28 оснащен аудио выходом с разъемом jack 3.5 мм. под наушники и позволяет подключиться в телефонам, КПК, смартфонам, ноутбукам, к любым устройствам. Может использоваться как беспроводные наушники, в качестве беспроводной системы аудио оповещения для умного д..

88.29 грн.

Bluetooth модуль MH-M38 позволяет подключиться в телефонам, КПК, смартфонам, ноутбукам, к любым устройствам. Содержит встроенный стерео аудио усилитель с выходной мощностью 5 ватт. Может использоваться как звуковая карта для компьютера, без установки драйверов или в качестве бес..

117.45 грн.

E18-MS1-PCB - ZigBee трансивер на базе CC2530 для работы с сетью 802.15.4 - ZigBee Технические характеристики: Чип: CC2530F256RHAT/QFN40 FLASH: 256 KB RAM: 8 KB Рабочая частота: 2.4GHz Выходная мощность: 4 dBm (2.5mW) Чувствительность приемника: -96.4 dBm Скор..

145.80 грн.

E18-MS1PA2-PCB - ZigBee трансивер с усилителем мощности, на базе чипа CC2530 для работы с сетью 802.15.4 - ZigBee Новая версия модуля оснащена усилителем RFX2401. Технические характеристики: Чип: CC2530F256RHAT/QFN40 FLASH: 256 KB RAM: 8 KB Рабочая частота: 2.4GHz В..

203.85 грн.

CC2531 - ZigBee Sniffer USB интерфейс компьютера для работы с сетью 802.15.4 - ZigBee Технические характеристики: Рабочая частота: 2.4GHz 16-каналов Скорость до 250Kbps Средний ток потребления: 25mA Антенна выполнена печатным монтажем Модуль не прошит, прошивка бесплатно. ..

179.82 грн.
149.99 грн.

CC2531 - ZigBee Sniffer USB интерфейс компьютера для работы с сетью 802.15.4 - ZigBee с разъемом SMA и антенной Технические характеристики: Рабочая частота: 2.4GHz 16-каналов Скорость до 250Kbps Средний ток потребления: 25mA Модуль не прошит, прошивка бесплатно. Принципиа..

314.28 грн.
282.85 грн.

Модуль CC2538 - Zigbee с усилителем мощности CC2592 с разъемом ipx13 для внешней антенны. Для использования печатной антенны, выходной дроссель необходимо перепаять. Технические характеристики: Чип: СС2538 Усилитель мощности: CC2592 Рабочая частота: 2.4GHz Выходная мощность: +..

332.37 грн.
299.00 грн.

nRF51822 от компании Nordic Semiconductor 2.4 ГГц RF трансивер и микроконтроллер с ядром Cortex-M0 32-бита. Модуль реализует физический уровень стека протоколов Bluetooth Smart, и позволяет при необходимости реализовать другие протоколы обмена Nordic Semiconductor ANT, Gazell, ESB, и другие. Может..

124.20 грн.

nRF52832 от компании Nordic Semiconductor 2.4 ГГц RF bluetooth трансивер и микроконтроллер с ядром ARM® Cortex™-M4F Технические характеристики: Процессорное ядро: 64 MHz Cortex-M4 with FPU Протокол: Bluetooth Low Energy, Bluetooth mesh (4.2 и 5.0) Встроенная flash-па..

214.65 грн.

Адаптер модуля Bluetooth BK8000L, BK3260, BK8008, BK8002, BK3254 ..

28.35 грн.

Загрузочный кабель ZigBee CC2531/CC2540 ..

56.97 грн.

Bluetooth модуль SPP-C на базе чипа BK3231, позволяет подключиться к телефонам, КПК, смартфонам, ноутбукам, к любым устройствам, имеющим модуль Bluetooth и передавать данные через стандартный UART. Технические характеристики: Напряжение питания: 3.3 В Bluetooth V2.1 + EDR Bluetooth Класса 2 ..

66.69 грн.

Bluetooth модуль SPP-C на базе чипа BK3231S, позволяет подключиться к телефонам, КПК, смартфонам, ноутбукам, к любым устройствам, имеющим модуль Bluetooth и передавать данные через стандартный UART. Технические характеристики: Напряжение питания: 3.3 В Bluetooth V2.1 + EDR Bluetooth Класса 2..

64.26 грн.

Bluetooth приемник BT5.0 Audio-PRO позволяет подключиться к телефонам, КПК, смартфонам, ноутбукам и другим устройствам. Модуль оснащен микрофоном для громкой связи, переключателем питания и кнопками регулировки громкости, переключения треков, пуска и паузы. Модуль оснащен зарядным устройст..

159.30 грн.

HC-06 hc01.comV2.0 | Мартин Карри

Последние модули zs-040 HC-06 имеют обновленную прошивку hc01.comV2.0. Эта прошивка имеет следующие значения по умолчанию:
- скорость передачи = 9600
- пароль = 1234
- окончания строк nl / cr не требуются.
- AT-команды должны вводиться в верхнем регистре
- Версия прошивки = hc01.comV2.0
- Имя = HC-06
- Без четности
- Режим SLAVE

Поскольку оборудование Bluetooth такое же, как и в предыдущих моделях zs-040 HC-06, характеристики Bluetooth также такие же.Bluetooth 2.0 EDR, SSP.
В них используется модуль BT, который немного отличается от других плат zs-040, и в левом верхнем углу дочерней платы есть синий светодиод.

Светодиоды

На этих платах 2 светодиода. Один красный светодиод на коммутационной плате и синий светодиод на самом модуле BT (небольшая дочерняя плата). Может показаться, что светодиоды связаны, но это не так. Вы можете управлять синим светодиодом, не затрагивая красный светодиод. См. ниже.
При включении светодиоды мигают быстро (думаю, 10 раз в секунду), а частота мигания не меняется при сопряжении модулей.При подключении светодиоды горят постоянно.

AT-команды

Ответы не содержат символов конца строки. Это означает, что при использовании последовательного монитора все отображается в одной строке. См. Снимок экрана выше.

Некоторые из основных AT-команд:

AT - команда проверки соединения. Возврат ОК

AT + BAUD AT + BAUD1 - устанавливает скорость 1200 и возвращает OK1200
AT + BAUD2 - устанавливает скорость 2400 и возвращает OK2400

Другие возможные скорости передачи:
1 ——— 1200
2 ——— 2400
3 ——— 4800
4 ——— 9600
5 ——— 19200
6 ——— 38400
7 ——— 57600
8 ——— 115200
9 ——— 230400
A ——— 460800
B ——— 921600
C ——— 1382400
Будьте осторожны со скоростью выше 115200 при использовании компьютера Windows.

AT + ИМЯ Устанавливает имя модуля. Это имя транслируется на другие устройства. Максимальная длина - 20 символов.
AT + NAMEmyBluetooth устанавливает имя myBluetooth, возвращает OKsetname

AT + PIN Меняет ПИН / пароль.
AT + PIN9999 - меняет ПИН на 9999, возвращает OKsetPIN

AT + VERSION
возвращает версию прошивки - hc01.comV2.0

AT + LED выключает встроенный светодиод. Это синий светодиод на маленькой дочерней плате, а не красный светодиод на большой коммутационной плате.

AT + LED0 - выключить синий светодиод, вернуть светодиод включенным
AT + LED1 - включить синий светодиод, вернуть светодиод

AT + PN не устанавливает четность
AT + PE устанавливает четность
AT + PO устанавливает нечетную четность

Модули принимают команды AT + ROLE, но, похоже, они ничего не делают.
AT + ROLE = S переводит модуль в режим SLAVE, возвращает OK + ROLE: S
AT + ROLE = M переводит модуль в режим MASTER, возвращает OK + ROLE: M
Команды принимаются, и я изначально думал, что это может означать, что модули можно использовать как HC-05, но я заставляю работать любую из обычных команд HC-05; РОЛЬ, AT + РОЛЬ, AT + РОЛЬ =, AT + РОЛЬ? не работает.

Китайский технический паспорт
Английский технический паспорт. Другая версия прошивки, но команды те же.
Страница продукта Waven. Это показывает немного другую версию оборудования, чем у меня, но команды те же.


Блог Байрона: Одна плата ... несколько прошивок

Привет !

В первый раз, когда я купил несколько Bluetooth-устройств UART, я заказал их на сайте suntekstore.com. Поскольку эти устройства кажутся многообещающими, я заказал еще несколько на DealExtreme для моей работы.

Я обнаружил, что даже эти платы кажутся идентичными, у них разные прошивки.

У suntekstore прошивка HC05, у DealExtreme прошивка linvor 1.5.

Различия между ними в основном заключаются в наборе АТ-команд.

Linvor 1.5 , также известный как HC06
Эта прошивка предлагает очень ограниченный набор AT-команд.
По умолчанию скорость передачи составляет 9600 8N1.

Для этой прошивки вы должны, чтобы , а не , отправляли символ LF или CR в конце вашей AT-команды.Режим программирования AT активен, когда ваша плата не сопряжена с устройствами Bluetooth. Для этой прошивки вы должны скопировать / вставить AT-команду, так как важны тайминги. Вы можете отправлять примерно одну команду в секунду.

Команда

Ответ

Примечание

AT

ОК

Полезный для проверки соединения и скорости передачи

AT + ВЕРСИЯ

Linvor1.5

Получать версия модуля

AT + BAUDx

OKyyyy

Набор скорость передачи:

х может принимают следующие значения:

  • 1 для 1200 бит / с

  • 2 2400 бит / с

  • 3 4800 бит / с

  • 4 9600 бит / с

  • 5 19200 бит / с

  • 6 38400 бит / с

  • 7 57600 бит / с

  • 8 115200 бит / с

  • 9 230400 бит / с

  • A 460800 бит / с

  • B 921600 бит / с

  • C 1382400 бит / с

AT + NAMEString

OKsetname

Изменять имя устройства Bluetooth:

Нить может быть любой строкой! будь креативным !! (20 знаков ограничено)

AT + PINxxxx

ОКсетпин

Набор pin-код bluetooth:

1234 автор по умолчанию



Вот и все !!! Никаких других AT-команд.

В следующем посте я дам несколько ссылок на прошивку HC05. Этот немного лучше, чем HC06.

Arduino и модуль Bluetooth HC-06 • AranaCorp

Теги: Arduino, Bluetooth, C / C ++, Программирование, Последовательная связь

Arduino может связываться с другим устройством через Bluetooth с помощью модуля HC-06 (slave). Он позволяет подключать Arduino и обмениваться данными с другими устройствами, такими как смартфон, компьютер или другие микроконтроллеры. Связь по Bluetooth может использоваться для удаленного управления роботом, например, для отображения и хранения данных на вашем компьютере или смартфоне.

Предварительное условие: Последовательная связь Arduino

Материал

  • Компьютер
  • Arduino UNO
  • Кабель USB
  • Модуль Bluetooth HC-06
  • Кабели Dupont M / F

Обзор модуля HC-06

Модуль Bluetooth HC-06 имеет 4 контакта, 2 для питания и 2 для установления соединения.

  • Источник питания VCC. Обычно подключается к выводу 5V Arduino.
  • GND масса. Обычно подключается к контакту GND приемного контакта Arduino
  • RX.Обычно подключается к контакту передачи (TX) контакта передачи Arduino
  • TX. Обычно подключается к приемному контакту (RX) Arduino

Проверьте контакт RX / TX на вашей плате Arduino

Примечание: поскольку модуль HC-06 является подчиненным, он не может подключаться к другому устройству самостоятельно. Для этого вам понадобится главный модуль, такой как модуль Bluetooth HC-05.

Схемы

Некоторые модули HC-06 работают от 3V3 и не поддерживают уровень напряжения 5V на контакте Rx.В этом случае для преобразования логического сигнала требуется мост делителя напряжения (резистор 1 кОм между контактом 3 и Rx и 2 кОм между Rx и GND).

ВНИМАНИЕ: мы используем контакты 2 и 3 Arduino Uno. В зависимости от микроконтроллера некоторые выводы могут не поддерживать связь через SoftwareSerial. Особенно Arduino Mega, Micro и Leonardo. Проверить документацию.

Конфигурация модуля HC-06

Настройка модуля HC-06 может быть интересной для проверки его работы, правильности подключения и изменения его параметров, таких как его имя (полезно, когда вы используете несколько модулей), PIN-код и скорость связи (скорость передачи).Чтобы разрешить настройку, модуль HC-06 должен быть запитан, но не спарен (светодиод la мигает).

Следующий код позволяет изменять параметры с помощью монитора последовательного порта.

 #include < SoftwareSerial  .h>

  SoftwareSerial  hc06 (2,3);

void setup () {
  // Инициализировать последовательный монитор
    Серийный . Начало (9600);
    Последовательный  .println («ВВОД AT-команд:»);
  // Инициализируем последовательный порт Bluetooth
  hc06.begin (9600);
}

void loop () {
  // Записываем данные из HC06 в Serial Monitor
  если (hc06.имеется в наличии()){
      Серийный  .write (hc06.read ());
  }
  
  // Запись из последовательного монитора в HC06
  if ( Serial  .available ()) {
    hc06.write ( Serial  .read ());
  }
}

 

Чтобы проверить последовательную связь, введите AT в последовательном мониторе и щелкните на отправке или нажмите Enter. Обязательно выберите «Без конечной линии» и правильную скорость передачи в параметрах связи. Модуль должен ответить ОК. Если он не работает, проверьте проводку и версию модуля.

Чтобы изменить имя модуля, введите AT + NAMEmodule_name.Модуль должен ответить OKsetname. (Пример: если вы хотите изменить имя модуля на BTM1, введите AT + NAMEBTM1)

Чтобы изменить PIN-код модуля, введите AT + PINxxxx. Модуль должен ответить OKsetPIN. (Пример: если вы хотите изменить PIN-код на 0000, введите AT + PIN0000)

Чтобы изменить скорость связи модуля (только если требуется), введите AT + BAUDx. Пример: если вы хотите изменить скорость передачи данных на 9600, введите AT + BAUD4. Модуль должен ответить OK9600. (Примечание: 1 для 1200, 2 для 2400, 3 для 4800, 4 для 9600, 5 для 19200, 6 для 38400, 7 для 57600, 8 для 115200)

ВНИМАНИЕ: Различные версии модуля Bluetooth HC-06 exit и список AT-команд могут отличаться.Проверьте серийный номер, указанный на модуле, и версию прошивки, введя AT + VERSION.

Например, модуль HC-06, помеченный ZS-040 с версией прошивки 3.0-20170609, возвращает ОШИБКУ (0) при отправке команды AT + NAMExxxx (где xxxx - новое имя модуля). AT-команды для настройки такого модуля:

  • AT + NAME = xxxx для установки имени модуля
  • AT + PSWD: ”xxxx” для установки пин-кода модуля

Не стесняйтесь оставлять комментарий, если у вас возникнут проблемы при настройке Bluetooth модуль HC-06.

Сопряжение модуля Bluetooth HC-06

После того, как модуль настроен так, как вы хотите, вы можете выполнить сопряжение модуля HC-06 с любым устройством по вашему выбору, как с любым устройством Bluetooth. Выберите имя вашего модуля в списке доступных устройств Bluetooth (по умолчанию HC-06) и введите PIN-код (по умолчанию 1234). Когда это будет сделано, светодиод перестанет мигать.

Код

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

Для работы с модулем HC-06 мы используем библиотеку SoftwareSerial.h, которая позволяет определять последовательный порт на плате Arduino. Должны быть известны следующие функции:

  • SoftwareSerial hc06 (Rx, Tx) для определения контактов последовательного порта
  • hc06.begin () для определения скорости передачи (значение должно быть таким же, как у вашего модуля)
  • hc06.available () для проверки наличия данных в буфере модуля
  • hc06.read () для чтения данных по одному байту за раз
  • hc06.print () для отправки строки в форме ASCII
  • hc06.write ( ) для посылки данных по одному байту
 #include < SoftwareSerial  .h>

  SoftwareSerial  hc06 (2,3);

Строка cmd = "";
float sensor_val = 0;

void setup () {
 // Инициализировать последовательный монитор
  Серийный . Начало (9600);
 // Инициализируем последовательный порт Bluetooth
 hc06.begin (9600);
}

void loop () {
 // Считываем данные из HC06
 while (hc06.available ()> 0) {
 cmd + = (char) hc06.read ();
 }

 // Выбираем функцию с помощью cmd
 if (cmd! = "") {
  Serial  .print ("Команда получена:");
  Серийный  .println (cmd);
 // Ожидаем ВКЛ или ВЫКЛ от bluetooth
 if (cmd == "ON") {
  Serial  .println («Функция включена»);
 } else if (cmd == "OFF") {
  Serial  .println («Функция выключена»);
 }еще{
  Serial  .println («По умолчанию функция отключена»);
 }
 cmd = ""; // сбросить cmd
 }
 // Имитация измерения датчика
 sensor_val = (с плавающей запятой) случайный (256); // случайное число от 0 до 255
 
 // Записываем данные датчика в HC06
 hc06.печать (sensor_val);
 задержка (100);
}


 

Бонус: сканер скорости передачи

Если у вас возникли трудности с определением скорости передачи вашего модуля, вот код, который инициализирует Bluetooth и отправляет AT-команду для каждого значения скорости передачи.

 #include < SoftwareSerial  .h>
  SoftwareSerial  hc06 (2, 3);

void setup () {
 // Инициализировать последовательный монитор
  Серийный . Начало (9600);
 // сканировать
 scanBaudrate ();
}

void loop () {}

void scanBaudrate () {
 беззнаковые длинные боды [12] = {300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 74880, 115200, 230400, 250000};
 for (int i = 0; i <12; i ++) {
 hc06.begin (bauds [i]);
 задержка (10);
  Serial  .print (F ("Скорость передачи"));
  Serial  .println (bauds [i]);
 команда («АТ», 2000);

 }
}
Строковая команда (const char * toSend, беззнаковые длинные миллисекунды) {
 Строковый результат;
  Serial  .print («Отправка:»);
  Serial  .println (toSend);
 hc06.print (отправить);
 беззнаковый длинный startTime = millis ();
  Серийный номер  .print (F ("Получено:"));
 while (millis () - startTime <миллисекунды) {
 if (hc06.available ()) {
 символ c = hc06.читать();
  Serial  .write (c);
 результат + = c; // добавляем в строку результата
 }
 }
  Серийный номер  .println (); // новая строка после тайм-аута.
 вернуть результат;
}


 

Если скорость передачи данных установлена ​​правильно, модуль Bluetooth должен ответить «ОК». Этот код быстро сообщит вам, правильно ли работает модуль и какую скорость он использует.

Приложение

Источник

Найдите другие примеры и руководства в нашем автоматическом генераторе кода
Code Architect

Обновление прошивки до HM-10 CC2541 BLE 4.0



Модуль HM-10 BLE 4.0 CC2541


MCU может быть настроен, также может управляться удаленным устройством Bluetooth для настройки, может передавать данные и может удаленно управлять 10 контактами PIO, поэтому лучшим выбором является модуль Bluetooth HM-10. Он может заменить HC-05, HC-06, HC-07 и т. Д.

Поддерживает центральный и периферийный переключатель режимов, модифицируется командиром AT.

Модуль последовательного преобразователя Bluetooth UART RS232 может легко передавать данные UART через беспроводной Bluetooth, без сложной компоновки печатной платы или глубоких знаний в программном стеке Bluetooth, вы можете комбинировать этот модуль Bluetooth со своей системой:

  • Любые микроконтроллеры, системы ARM или DSP могут взаимодействовать с HM-10.

  • Системы SOC.

  • Персональные цифровые помощники (КПК)

  • Компьютерные аксессуары

  • Другие системы, которые вы хотите использовать с функциями bluetooth.

ОСОБЕННОСТИ УСТРОЙСТВА

  • Полностью квалифицированный модуль Bluetooth V4.0 BLE

  • Полная скорость работы Bluetooth с полной поддержкой Piconet и Scatternet

  • Невероятный размер выборки с входным напряжением 3,3 В и соответствие требованиям RoHS

  • Интерфейс UART и с функцией настройки скорости передачи

НЕОБХОДИМО АППАРАТНОЕ ОБЕСПЕЧЕНИЕ

  • Коммутационная плата FTDI или плата Arduino
  • Модуль HM-10 BLE

    • Выбор оригинального модуля HM-10

КОНТАКТЫ ВЫХОДЫ


НЕОБХОДИМЫЕ УСЛОВИЯ

  • Загрузите необходимые файлы прошивки по следующей ссылке

  • Arduino IDE 1.6.6 [Загрузите эту ссылку на IDE Arduino]

НАСТРОЙКА СОЕДИНЕНИЯ ДЛЯ ОБНОВЛЕНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

  • Подключите BLE-модуль HM-10 CC2541 к коммутационной плате FTDI, как показано на схеме


  • Мы также можем настроить соединение с использованием оригинального модуля HM-10 без Breakout, используя следующую схему.

  • Проверьте COM-порт платы FTDI, подключенной к ПК, в диспетчере устройств

  • Если COM-порт не вычитается, обновите драйверы по ссылке

НАСТРОЙКА МОДУЛЯ НА РЕЖИМ ОБНОВЛЕНИЯ

Метод 1: Использование HMComAssistant

  • Запустите HMComAssistant из загруженной папки на вашем ПК

  • Выберите COM-порт на HMComAssistant

  • В HMComAssistant щелкните Открыть порт

  • Введите AT-команду в текстовое поле и нажмите кнопку ОТПРАВИТЬ

  • Если HM-10 отвечает OK, значит, модуль подключен правильно, если нет, проверьте правильность подключения.

  • Чтобы перевести модуль в режим обновления, отправьте команду AT + SBLUP.

  • Если модуль отвечает OK + SBLUP, значит, мы готовы обновить прошивку.
Метод 2: Использование Arduino IDE
  • Откройте IDE Arduino

  • Выберите COM-порт в Arduino IDE из {T00ls> Port> (com port)}

  • Откройте последовательный монитор на Arduino IDE

  • Введите AT-команду в текстовое поле и нажмите кнопку «ОТПРАВИТЬ».

  • Если HM-10 отвечает OK, значит, модуль подключен правильно, если нет, проверьте правильность подключения.

  • Чтобы перевести модуль в режим обновления, отправьте команду AT + SBLUP.

  • Если модуль отвечает OK + SBLUP, значит, мы готовы обновить прошивку

ШАГИ ПО ОБНОВЛЕНИЮ ПРОШИВКИ

  • Запустить исполняемый файл HMSoft.exe в загруженной папке
  • Выберите образ прошивки из загруженной папки [HMSoft.корзина]

  • Введите правильный номер COM-порта на COM-порту

  • Нажмите кнопку «Загрузить изображение», чтобы начать запись микропрограммы в модуль BLE HM-10

  • Дождитесь всплывающего окна Загрузка успешно завершена

·· •) o (• ··

Модуль Bluetooth HC04 / HC06 Инструмент настройки

Эти небольшие и дешевые модули беспроводного приемопередатчика Bluetooth на основе CSR BC417143 широко используются во всех видах встраиваемых проектов. Они предназначены для последовательной связи и предварительно загружены микропрограммным обеспечением профиля последовательного порта (SPP).

Модуль имеет настраиваемые пользователем параметры, такие как имя устройства, PIN-код сопряжения и скорость последовательного порта. В большинстве случаев значения этих параметров по умолчанию следует изменить (по крайней мере, PIN-код сопряжения) в соответствии с вашим приложением. Это делается путем ввода специальных AT-команд, когда модуль не подключен удаленно к какому-либо другому устройству bluetooth.

В конце 2013 года я создал этот инструмент настройки модуля Bluetooth, чтобы упростить настройку модуля Bluetooth, избегая работы с AT-командами.Так что он довольно старый, но все же полезный.

Инструмент настройки модуля Bluetooth

Инструмент настройки модуля Bluetooth

(hc04conf) - это утилита командной строки для быстрой и легкой настройки модулей приемопередатчика Bluetooth, подключенных к последовательному порту (или преобразователю USB в последовательный) вашего устройства. Он работает в системах Windows, Linux и Mac OS X.

Поддерживаемые модули bluetooth: HC04 / HC06, постоянно запрограммированные как ведомые устройства (также известные как «linvor»), возможно, HC-07 и HC-09.

Используя hc04conf, вы можете настроить ПИН-код сопряжения, имя устройства Bluetooth и скорость последовательной передачи подключенного модуля Bluetooth.

Еще одна полезная функция программы hc04conf - это способность автоматически определять скорость последовательной передачи подключенного модуля. Это помогает при работе с неизвестными или неправильно настроенными модулями.

Примеры

1. Определите скорость последовательной передачи данных и распечатайте версию аппаратного обеспечения модуля, подключенного к / dev / ttyUSB0.

баш-4.2 $ hc04conf --port / dev / ttyUSB0
Скорость передачи не указана. Автоопределение ... 9600
Версия: linvorV1.5

bash-4.2 $ 

2. Установите ПИН-код (4455) и имя устройства («устройство bluetooth») модуля, подключенного к / dev / ttyUSB0. Автоматическое определение скорости последовательной передачи данных.

bash-4.2 $ hc04conf --port / dev / ttyUSB0 --set-name "модуль bluetooth" --set-pin 4455
Скорость передачи не указана. Автоопределение ... 9600
Версия: linvorV1.5
Установка имени ... готово.
Установка PIN-кода ... готово.
 
bash-4.2 $ 

3.Установите новую последовательную скорость передачи (115200) модуля, подключенного к COM12, на 9600 бод.

C: \ hcconf-1.0-1> hc04conf.exe -p com12 -b 9600 --set-baud 115200
Версия: linvorV1.5
Установка скорости передачи данных ... готово.

C: \ hcconf-1.0-1>

Использование

Скачать

Загрузите и установите соответствующий пакет для вашей системы.

Окна

Поддерживает все версии Windows от XP до 10, включая серверы (x86 / x64).Статически связанный двоичный файл, без зависимостей.

hcconf-1.0-1.zip хэш md5: 5eefcc784b93e3c9c2480070ef401ecf

Пакеты Debian / Ubuntu (.deb)

32-разрядная (x86) hcconf-1.0-1_i386.deb хэш md5: d9a3e03feafcb73d29532ec85c466d05

64-битная (amd64) hcconf-1.0-1_amd64.deb хэш md5: 31560623594131063fa5538bbad644dd

Raspberry pi (armhf) hcconf-1.0-1_armhf.deb md5 хеш: 342006123c6b5d626f7399883dd6d131

Стандартные статически связанные сборки Linux

32-битный (x86) hcconf-1.0-1_i386.tar.gz хэш md5: b8202841105be76b79452fcefc39b527

64-разрядная (amd64) hcconf-1.0-1_amd64.tar.gz хэш md5: d2b1d4039b91c99bf6f66838962b28f6

Raspberry pi (armhf) hcconf-1.0-1_armhf.tar.gz md5 хеш: d78018a0304500076b87340348f461b9

Mac OS X

Поддерживается Mac OS X 10.5 или более поздней версии. Универсальный двоичный файл i386 и x86_64.

hcconf-1.0-1_mpkg.zip хэш md5: 2fd3bc30e97e06c4047bf5cd345e35ef

Известные проблемы

Поддержка символов Юникода в имени Bluetooth не работает в Windows.

Исходный код

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

Лицензия и отказ от ответственности

Это бесплатное программное обеспечение. Разрешается использовать это программное обеспечение в личных и коммерческих целях.

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ГАРАНТИИ КОММЕРЧЕСКОЙ ЦЕННОСТИ, ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ И НЕЗАЩИТЫ.НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ АВТОРЫ ИЛИ ВЛАДЕЛЬЦЫ АВТОРСКИХ ПРАВ НЕ НЕСЕТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЕТЕНЗИИ, УБЫТКИ ИЛИ ДРУГИЕ ОТВЕТСТВЕННОСТЬ, БЫЛИ В РЕЗУЛЬТАТЕ ДОГОВОРА, ПРАКТИЧЕСКИХ ПРАВ ИЛИ ИНЫХ СЛУЧАЕВ, ВЫЯВЛЕННЫХ, ВНУТРИ ИЛИ В СВЯЗИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ИЛИ ДРУГИМИ ДЕЛАМИ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ.

Кредиты

hcconf написан на C ++ и использует следующие сторонние библиотеки:

Взлом Bluetooth-модуля HC-06

Подробный пост о дешевом модуле BlueTooth UART, который часто называют HC-06, BC417, BT0417C, EGBT-046S, Bluetooth bee и т. Д.

(пользователь Windows? У меня есть специальный пост для вас, однако он касается только связи со стороны ПК. Продолжайте читать этот пост, и я скажу вам, когда нужно переключиться.)

Если вы ищете дешевый и простой способ беспроводной связи микроконтроллера с ПК или смартфоном, тогда вы должны окончательно взглянуть на модули Bluetooth HC-05 / HC-06, эти модули широко доступны на eBay и DealExtreme, поэтому вы можете получить один из них где бы ты ни был.


Оба модуля имеют одинаковое оборудование, но разную прошивку.HC-06 является ведомым устройством, то есть он не может начать обмен данными (этот процесс известен как спаривание на жаргоне bluetooth) с другим устройством, ему нужен мастер (ПК / смартфон), который соединяется с ним. С другой стороны, HC-05 является ведущим / ведомым устройством, то есть он может поддерживать одноранговую связь с другими модулями HC-05, он может быть ведущим для модуля HC-06, он может быть ведомым устройством ПК / смартфон и т. Д.

Оба модуля имеют питание 3,3 В и интерфейс UART 3,3 В, к которому мы можем подключить любые 3 модуля.Микроконтроллер 3V или устройство USB-> UART.


HC-06 установка и настройка

На этот раз я покажу вам, как подключить компьютер с Ubuntu к модулю HC-06, также известному как «linvor», который я получил от DealExtreme.


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

Теперь мы можем выполнить некоторую настройку через контакты UART (в моем случае скорость передачи данных по умолчанию была 9600, в других модулях это может быть 38400), отправляя AT-команды, полный список показан ниже:


Команда Ответ Комментарий
НА ОК Ничего не делает!
AT + ВЕРСИЯ ОКлинворВ1.5 Версия прошивки
AT + НАЗВАНИЕxyz OKsetname Устанавливает имя модуля на "xyz"
AT + PIN1234 OKsetPIN Устанавливает PIN-код модуля на 1234
AT + BAUD1 ОК1200 Устанавливает скорость передачи 1200 бод
AT + BAUD2 ОК2400 Устанавливает скорость передачи 2400
AT + BAUD3 ОК4800 Устанавливает скорость передачи 4800
AT + BAUD4 ОК9600 Устанавливает скорость передачи 9600
AT + BAUD5 ОК19200 Устанавливает скорость передачи 19200
AT + BAUD6 ОК38400 Устанавливает скорость передачи 38400
AT + BAUD7 ОК57600 Устанавливает скорость передачи 57600
AT + BAUD8 ОК115200 Устанавливает скорость передачи 115200
AT + BAUD9 ОК230400 Устанавливает скорость передачи данных 230400
AT + BAUDA ОК460800 Устанавливает скорость передачи 460800
AT + BAUDB ОК 921600 Устанавливает скорость передачи данных 921600
AT + BAUDC ОК1382400 Устанавливает скорость передачи 1382400

Команды AT НЕ заканчиваются "NULL" и не нуждаются в символе "RETURN" в конце.Они должны быть отправлены, как показано в таблице, то есть команда «AT» - это 2 символа, команда «AT + VERSION» - это 10 символов и так далее.


Если вы используете устройство USB-> UART + minicom или подобное для отправки AT-команд, вы столкнетесь с проблемами, поскольку HC-06 ожидает полную команду менее чем за секунду, т.е. вам нужно набрать "AT". + ВЕРСИЯ »менее чем за секунду. Я рекомендую qSerialTerm вместо minicom, так как вы можете отправить сразу всю строку.

Хорошо, это все, что мы можем сделать с непарным модулем.Давайте приступим к сопряжению его с ПК с Ubuntu и установим виртуальный последовательный порт между ПК и модулем.


(Пользователи Windows: перейдите в этот пост, чтобы правильно настроить на ПК).

Сопряжение с ПК с Ubuntu

Сначала давайте узнаем MAC-адрес устройства, используя следующую команду на терминале:

hcitool сканирование

Результат будет выглядеть так:

11: 22: 33: 44: 55: 66 линвор

Где linvor - это имя вашего HC-06, а 11: 22: 33: 44: 55: 66 - это MAC-адрес.


Теперь мы должны добавить эту информацию в файл rfcomm.conf, rfcomm - это протокол эмуляции последовательного порта стандарта Bluetooth. Для этого введите в терминале следующую команду:

gksudo gedit /etc/bluetooth/rfcomm.conf

В появившемся текстовом редакторе вставьте следующий текст (не копируйте номера строк):


Вместо 11: 22: 33: 44: 55: 66 используйте MAC-адрес вашего модуля HC-06. Вы также можете использовать любой другой порт rfcomm, например rfcomm1, rfcomm2 и т. Д.

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

После перезагрузки вы можете подключить свой компьютер к модулю HC-06, используя следующую команду:

sudo rfcomm привязать rfcomm0


Где rfcomm0 - это порт, который вы настроили в файле rfcomm.conf. Это свяжет ваш компьютер с HC-06, теперь вы можете использовать rfcomm0 в качестве последовательного порта через minicom или qSerialTerm (подробнее ниже) для отправки / получения данных в / из модуля HC-06. Как только вы откроете rfcomm, светодиод HC-06 перестанет мигать и останется включенным.С этого момента связь становится прозрачной асинхронной последовательной связью.

Проверьте этот пост о том, как открывать / использовать последовательные порты без sudo.

Когда вы закончите со связью и закроете порт rfcomm, вы можете использовать команду:

выпуск sudo rfcomm rfcomm0


Чтобы разорвать пару между модулем и ПК, в противном случае связь останется до следующего выключения, перезагрузки, выхода из системы.

Использование rfcomm на qSerialTerm


qSerialTerm полагается на библиотеку QtSerialPort и использует два из ее класса: SerialPort и SerialPortInfo.SerialPortInfo содержит методы, которые обнаруживают доступные порты, однако на этом этапе он не обнаруживает порты rfcomm. SerialPort безупречно работает с портами rfcomm, хотя требуется некоторая ручная настройка, поскольку класс SerialPortInfo не предоставляет информацию об этих портах.

qSerialTerm (ветка rfcomm)


Я модифицировал qSerialTerm, чтобы добавить поддержку портов rfcomm, весь новый исходный код доступен в ветке rfcomm (репозиторий). (Проблема SerialPortInfo была исправлена, и ветвь rfcomm была удалена, используйте вместо нее главную ветвь)

Теперь я более подробно рассмотрю проблему класса SerialPortInfo.До скорого.

Я внес исправление в библиотеку QtSerialPort. Посмотрим, примут ли рецензенты фиксацию.

Мой коммит был принят рецензентами после множества ворчаний с обеих сторон. Теперь основная ветка qSerialTerm работает с устройствами rfcomm.

Вот моя полная установка для тестирования HC-06.

Установка для испытаний HC-06. Контакты Tx / Rx модуля HC-06 закорочены (желтый провод).


Вот мой сеанс тестирования qSerialTerm с вышеупомянутым исправлением, примененным к библиотеке QtSerialPort.

Тестирование qSerialTerm (основная ветка).

Bluetooth - Speeduino

Опция беспроводной связи Bluetooth

Оборудование для минимальных денег

Mega 2560 обменивается данными через соединение USB-последовательный порт для загрузки прошивки Speeduino, а также для связи во время работы с программами мониторинга, настройки и регистрации, такими как TunerStudio и MegaLogViewer. После загрузки прошивки Speeduino Speeduino может также связываться через правильно перепрограммированное последовательное соединение модуля Bluetooth, известное как профиль последовательного порта (SPP).Есть несколько способов сделать это, и ниже показано использование недорогого модуля Bluetooth серии HC для прямого подключения к плате Mega.


Примечание. Speeduino и TunerStudio обмениваются данными на скорости 115200 бит / с. Почти любое беспроводное последовательное устройство от Bluetooth до сатфона будет работать, если запрограммировано на правильную скорость связи. Некоторые более медленные системы (например, дешевое радио ближнего действия 433 МГц) могут работать, но могут не передавать или принимать достаточно быстро для высокоскоростной регистрации данных.

Примечание. Загрузка микропрограмм через Bluetooth возможна, но требует специальной и несколько сложной процедуры или более дорогостоящего и конкретного типа модуля Bluetooth, который может выполнять сброс для загрузки - ни то, ни другое не входит в рамки этого основного обзора. Дополнительная информация на форумах Speeduino.

Примечание. Использование Bluetooth позволяет обойти последовательный преобразователь USB, что позволяет версиям Arduino Mega с последовательными микросхемами UART без FTDI подключаться к TunerStudio и другим программам для последовательной передачи данных кроссплатформенным образом без специальных драйверов или настройки.Представленная здесь Mega - это версия Ch440.


Типы Bluetooth

Для этого метода использования связи Bluetooth (BT) требуется только модуль BT серии HC и проводное соединение. Модуль BT в этом случае представляет собой HC-05, HC-06, HC-07 или HC-09, установленный на интерфейсной плате («объединительная плата», «задняя панель», «коммутационная плата» и т. Д.), Работающей в режиме Slave. Поскольку только подчиненные модули проще перепрограммировать, описанный здесь пример представляет собой только подчиненный модуль HC-06 на JY-MCU v1.02 доска:

Доска

Назначение интерфейсной платы - обеспечивать работу от любого напряжения от 3,6 до более 6 В, обеспечивая питание от контактов 5 В Mega, а также регулируемое напряжение на линиях Tx (передача) и Rx (прием). Хотя можно использовать HC BT без интерфейсной платы, питание должно быть 3,3 В, а также должны быть изготовлены и использованы схемы делителя или регулирования на линиях TX и RX для падения напряжения с 5 В TTL до безопасного уровня для голых BT.Использование модуля с интерфейсной платой решает эти проблемы, а также обеспечивает светодиодный индикатор и соединительные контакты.

Подключения

Штыревые соединения

Модуль BT подключается к Mega через контакты TX0 и RX0, а также контакты 5V и GND (земля). Mega подключается к модулю BT следующим образом:

  Мега_______BT 
TX0 ------> RXD
RX0 <------ TXD
5 В -------- VCC
GND ------- GND
 

В то время как интерфейсный модуль HC может подключаться и функционировать при подключении к Mega's 3.Контакт 3V, модуль указывает минимум 3,6 В для правильной работы регулятора, поэтому рекомендуется подключение 5 В. На плате Mega есть несколько мест для источника 5 В и заземления, и наиболее очевидными из них являются стандартные отмеченные контакты питания в этом примере. Показанный разъем был взят из старого настольного компьютера и повторно предназначен для подключения BT. Цвета проводов не имеют значения, необходимо только правильное подключение:

Вложение для платы

Провода разъема припаяны прямо к контактам Mega в нижней части платы.Крайне важно использовать устройство для снятия натяжения, чтобы предотвратить натяжение паяных соединений, поскольку они относительно непрочны. В этом примере «застежка-молния» используется через одно из отверстий Mega и вокруг проводов в качестве разгрузки от натяжения:

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

После правильного перепрограммирования; Постоянное свечение светодиода модуля BT указывает на соединение, а светящиеся индикаторы Mega TX и RX активны, отправляя и получая информацию в TunerStudio:

Телефоны / Планшеты

При активном соединении Bluetooth смартфоны и планшеты могут общаться со Speeduino.Телефоны Android и бесплатное приложение MSDroid для мониторинга и ведения журнала являются одним из примеров, как и приложение Shadow Dash от создателей TunerStudio.

После завершения перепрограммирования модуля BT в следующем разделе; при сканировании с помощью телефона или планшета Speeduino должен отображаться как доступное устройство с новым именем, которое вы ему присвоили. В приведенном ниже примере Android один Speeduino уже сопряжен с помощью Bluetooth, и он нашел второй Speeduino под названием «Speeduino-v0.4»:

Когда Speeduino-v0.4, система предложит ввести защитный PIN-код:

После проверки новый Speeduino-v0.4 появляется в списке сопряженных устройств:

В этом примере используется MSDroid; после загрузки файла speeduino.ini в папку ini MSDroid и выбора «Подключиться к ЭБУ» в настройках доступны мониторинг, настройка или ведение журнала:

Перепрограммирование модуля Bluetooth

Модуль обычно поставляется с общими настройками. Имя, которое он передает, не является описательным, код безопасности PIN обычно 0000 или 1234 с очевидным низким уровнем безопасности, и обычно используется непригодная скорость 9600 бит / с.Эти настройки следует изменить для правильной работы и безопасности. Модуль можно перепрограммировать на «Speeduino», изменить PIN-код на 9876 (или любой другой) для безопасности и установить требуемую скорость 115200 бит / с в следующем примере.

Интерфейс

Для этого используются два общих эмулятора терминала. Оба используют последовательный интерфейс, такой как последовательный монитор Arduino IDE, или программы, подходящие для ОС вашего ПК, такие как HTerm, PuTTY, TeraTerm и т. Д.).

UART

Первый тип эмулятора терминала - это недорогой модуль UART, действующий как преобразователь последовательного интерфейса USB-to-TTL. Этот модуль подключается к модулю BT так же, как и Mega:

Второй тип, проверенный на правильную работу, - это использование UART на плате Arduino в качестве эмулятора терминала. В этом методе используется либо пустой эскиз, либо перемычка между контактом RESET и контактом GND, чтобы удерживать Arduino в режиме сброса, обеспечивая прямую последовательную связь с контактами TX0 и RX0.Обратите внимание, что этот метод использует разные подключения к BT, используя TX-to-TX и RX-to-RX, только для программирования с помощью AT-команд. Для нормальной работы BT по-прежнему требуются соединения, показанные ранее. В зависимости от типа модуля может также потребоваться дополнительная перемычка.

Команды

После установления связи USB-TTL с модулем BT, команды HC-06 для перепрограммирования:

  Отправить _________________ Ответ 
В  --------------- ОК
AT + NAMESpeeduino ----- OK
AT + PIN9876 ----------- OKSetPIN
AT + BAUD8 ------------- OK115200
 

Для других типов модулей могут потребоваться другие команды для выполнения перепрограммирования.Например, некоторые новые HC-06 будут принимать «AT» сами по себе, но выдают ошибки для других команд. В этих случаях попробуйте следующие варианты: AT + NAME = Speeduino, AT + PSWD = "9876", AT + UART = 115200,0,0.

Теперь модуль должен быть готов к подключению к Speeduino и обмену данными с новым именем, PIN-кодом и скоростью передачи данных.



Диапазон и скорость Bluetooth

Даже при открытой антенне размещение под приборной панелью или за конструкцией транспортного средства может чрезмерно блокировать сигнал, и для доступа к модулю BT можно использовать удлинитель:

Расширение легко сделать с помощью обычного многожильного (никогда не сплошного провода!) 4-проводного кабеля и простых соединителей.