Arduino + НС - 06 (05) управление и возможные команды?

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем Димач, 5 июн 2014.

  1. Димач

    Димач Нерд

    Здравствуйте помогите пожалуйста, хочу осуществить управление 2 микр, что бы один посылал сообщение другому и обратно, т.е по сути сделать синхронизацию двух мкр .
    Как такое сделать? Помогите!!!

    Если есть список всех команд управления HC 06(05)? Напишите пожалуйста, какая за что отвечает, например там считывание отправление, может еще какие спец слова использовать можно?
     
  2. geher

    geher Гуру

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

    Данный модуль понимает только пять команд.
    1. AT - команда проверки модуля и доступности конфигурирования через AT-команды. В ответ модуль должен вернуть OK.
    2. AT+BAUDx - установка скорости, где x - код скорости из таблицы:
      ЗначениеСкорость (бод)
      11200
      22400
      34800
      49600
      519200
      638400
      757600
      8115200
      9230400
    3. AT+NAMEname - изменение имени устройства, где name - новое имя. Имя по умолчанию смотреть при спаривании с компьютером.
    4. AT+PINpass - изменение пароля (PIN-кода), где pass - новый пароль. Пароль по умолчанию 1234.
    Чтобы передавать команды, нужно либо подавать их в не соединенный по БТ модуль, либо подав на специальную ногу высокий сигнал. Зависит от модификации модуля. Причем ведут себя они по разному. Одни (обычно обзываются HC-04) не требуют символа перевода строки после ввода команды, другие требуют. Бывают и другие нюансы, характерные для разных реализаций.

    Чтобы связать два модуля между собой, один должен быть Master (A), другой Slave (B), и их нужно как-то связать между собой. Внятных статей на эту тему пока не видел, а потому в итоге от идеи использования этих модулей для связи между ардуинами отказался и перешел на радиомодули nrf24l01.
    Причем большинство моделей командами из режима в режим не переключается, надо прошивать. Моделей переключающихся не видел, только слышал упоминание, что такие бывают, возможно, всего лишь байка.
     
  3. Димач

    Димач Нерд

    Если я правильно понял, пока нет примера как связывать друг с другом микр?
    А есть примеры использования команд которые вы перечислели, я не совсем понял их синтаксис как прописывать и как взаимодействуют!
     
  4. geher

    geher Гуру

    Прошу прощения, в информации по командам при копировании вкралась ошибка.
    Для второй команды (AT+BAUDx)
    x принимает значения от 1 до 9, задавая соответственно скорости
    1 - 1200
    2 - 2400
    3 - 4800
    4 - 9600
    5 - 19200
    6 - 38400
    7 - 57600
    8 - 115200
    9 - 230400
    Т.е., чтобы задать скорость 9600 надо подать по последовательному порту модуля команду
    AT+BAUD4
    чтобы сменить пинкод на 0000, надо подать команду
    AT+PIN0000

    Пятая команда потерялась. Это
    AT+VERSION
    Она Возвращает версию прошивки.

    Только что нашел еще одну команду, шестую:
    AT+PN Установка чётности модуля — нет.
    AT+PO Установка чётности модуля — нечётный.
    AT+PE Установка чётности модуля — чётный.

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

    Писал ответ, а в фоне искал в гугле.
    Нашел еще про команды:
    http://we.easyelectronics.ru/part/rabota-s-bluetooth-modulem-hc05.html
    Получается, что командами можно все-таки сменить режим и к чему-то подключиться.
    Но это только для "правильного" HC-05
     
  5. geher

    geher Гуру

  6. Димач

    Димач Нерд

    Благодарю, но все же вопрос остается как сделать управление Arduino+HC05 на другой HC+Arduino?
    Я видел видео урок как сделать это с АТ командами толкьо там по проводам РХ и ТХ, а как сделать что бы мой МРК выступал в роли передатчика команд?
    Ведь с компа я могу посылать команда текстовые, с той же программой как например termite-3.1 !
     
  7. geher

    geher Гуру

    Насколько я понимаю из документации, то примерно так и только с HC-05 (остальные вроде требуют прошивки для смены роли). Предполагается, что модуль подключен к RX и TX UNO (пины 0 и 1).
    1. На том модуле, который будет инициировать соединение, активировать режим мастера, подав из скетча в последовательный порт AT команду:

    Serial.print("AT+ROLE=1\r\n");

    Дождаться из порта символов OK.
    2. На том модуле, который будет принимать соединение, активировать режим службы:

    Serial.print("AT+ROLE=0\r\n");

    Дождаться из порта символов OK.

    Serial.print("AT+CMODE=1\r\n");

    Дождаться из порта символов OK.
    3. На том модуле, который будет инициировать соединение, собственно соединение установить:

    Serial.print("AT+LINK=1234,56,abcdef\r\n");

    где 12:34:56:ab:cd:ef надо заменить на MAC адрес второго модуля и символы подставить в команду по аналогии.
    Дождаться из порта символов OK.

    Дальше просто слать данные в последовательный порт и читать из него.

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

    Проверить не могу, у меня сейчас остался только один модуль, и не факт, что он нужной модели.
     
  8. Димач

    Димач Нерд

    Т.е нужно два одинаковых модуля?
    У меня HC05 и HC06! С ними не получится?
     
  9. geher

    geher Гуру

    Насколько я понимаю, по HC06 по жизни в режиме Slave и не переключается (хотя теоретически может быть и в другом). Если он находится компьютером, то он именно в этом режиме.
    Отсюда следует, что он должен принимать соединение, а команды перевода его в соответствующий режим (пункт 2) на нем подавать не надо.
     
  10. Димач

    Димач Нерд

    Спасибо попробую надеюсь получится!
     
  11. SebLer

    SebLer Нуб

    А кто нибудь в курсе, как взаимодействовать с модулем программно?
    У меня НС-05. Сейчас я подключаюсь к нему с андроид-приложения и регулирую яркость диода, дергая ползунок в приложении. Но иногда блутус зависает. Физически он по-прежнему остаётся подключённым к смартфону (об этом свидетельствует и медленно мигающий диод на блутусе и само приложение), но сигналы не принимает. Пишет об ошибке приёма-передачи.
    Можно его как-то перезагрузить в этом случае?
     
  12. xlightx

    xlightx Нерд

    Такая же история... Решения нет?
     
  13. DrProg

    DrProg Вечный нерд

    Так что надо изначально? Связать два МК для передачи между ними данных? Тогда просто соединить RX-TX у них проводками и создать Serial-связь. Я так делал, отлично работает.
     
    ИгорьК нравится это.
  14. rusafoniy

    rusafoniy Нуб

    добрый день ! может не совсем в тему ,я столкнулся с такой проблемой при смене скорости в сериал порте нет строки 38400 как ее туда прописать