Не удалось получить ответ на команды BLE AT в Arduino Uno
Я пытаюсь установить соединение между двумя BLE (BT43) с помощью AT-команд от Arduino Uno. Я не получаю никакого ответа от AT-команд. Соединения следующие:
Arduino Tx --> BLE Rx Arduino Rx --> BLE Tx Arduino 3.3v --> BLEVcc Земля Arduino --> Земля BLE
Может ли кто-нибудь помочь мне с этим? Заранее спасибо! это мой код
#include <SoftwareSerial.h>
SoftwareSerial BTserial(6, 7); // Прием | Передача
const long baudRate = 115200;
char c=' ';
boolean NL = true;
void setup()
{
Serial.begin(9600);
Serial.print("Sketch: "); Serial.println(__FILE__);
Serial.print("Uploaded: "); Serial.println(__DATE__);
Serial.println(" ");
BTserial.begin(baudRate);
Serial.print("BTserial started at "); Serial.println(baudRate);
Serial.println(" ");
}
void loop()
{
// Чтение из модуля Bluetooth и отправка на серийный монитор Arduino
if (BTserial.available())
{
c = BTserial.read();
Serial.write(c);
}
// Чтение из последовательного монитора и отправка в модуль Bluetooth
if (Serial.available())
{
c = Serial.read();
BTserial.write(c);
// Повторить ввод пользователя в главное окно. ">" символ указывает на введенный пользователем текст.
if (NL) { Serial.print(">"); NL = false; }
Serial.write(c);
if (c==10) { NL = true; }
}
}
@vinitha, 👍-1
Обсуждение3 ответа
Поскольку эти модули подключены к своим соответствующим платам Arduino, чтобы дать им возможность BLE, Rx и Tx должны быть подключены к одному и тому же, а не пересекаться.
Согласно 2.6 https://www.ampedrftech.com/datasheets/BT43_Datasheet.pdf это неверно, и линии, как обычно, должны пересекаться., @mystery
Вам не хватает важной информации на странице 10 таблицы данных, т. е. вы не соединяете CTS и RTS.
Возможно, для связи с этим модулем необходимо рукопожатие. Попробуйте использовать его с какой-нибудь платой с синхронным UART.
Также можно попробовать заземлить CTS. т.е. подключить CTS blue-tooth модулей к 0V.
прочитайте это для большей ясности.
Надеюсь, это решит вашу проблему.
Модуль (BT43), который я использую, не имеет маршрутизации для контактов CTS и RTS, поэтому я не подключал CTS и RTS., @vinitha
У меня нет этого модуля, но если вы используете то же, что показано в ссылке на таблицу данных выше, у вас есть 11 RTS и 12-контактный CTS, следуйте таблице данных для распиновки., @Devidas
ИЗМЕНИТЬ
Только что нашел*:
На Arduino или Genuino 101 текущая максимальная скорость приема составляет 57600 бит/с *https://www.arduino.cc/en/Reference/SoftwareSerial
Возможно, вы превысили максимальную скорость для Uno.
Что вы используете для отправки данных через Bluetooth? Вы уверены, что данные отправляются на устройство?
Приложение для Android
Вы можете попробовать мое приложение для Android, которое я создал для этого конкретного типа тестирования. Вы можете получить его по адресу: http://raddev.us/btmessenger.apk
Если вы укажете на это свое устройство Android, оно загрузит приложение и спросит, хотите ли вы его установить. Если вы опасаетесь, что это вредоносное ПО, вы можете получить открытый исходный код для простого приложения на GitHub: https://github.com/raddevus. /BTMessenger
Что использовать:
- подключить Bluetooth-устройство
- Введите сообщение в верхнем поле TextEdit.
- Нажмите кнопку [Отправить].
Проблемы со скоростью передачи
Обычно, если вы укажете неверную скорость передачи данных, вы увидите просто мусорные символы. Вот запись, которую я только что сделал по настройке устройств Bluetooth. Это может помочь вам решить некоторые проблемы. https://www.codeproject.com/Articles/1254611/Bluetooth-Messenger
- Можно ли измерить скорость акселерометром? Насколько точно?
- Модуль Bluetooth HC-05 мигает красным светом - Arduino Uno
- Модуль Bluetooth HC-05 возвращает закодированные данные
- Мой модуль Bluetooth HC-05 не работает
- Модуль AT-команд HM10 BLE — не работает
- Программные обновления FOTA (микропрограммы по беспроводной сети) с Uno R3
- Создание Bluetooth-мыши с помощью Arduino
- Чтение характеристического значения BLE в Arduino Uno
Ваша проводка кажется правильной, какую модель Arduino вы используете? Какие именно контакты arduino TX/RX? Как выглядит ваш код?, @mystery
Я использую Arduino Uno, и я подключил ble tx -> 6-й контакт arduino, ble rx pin -> 7-й контакт arduino., @vinitha
Спасибо тайна за ответ. Я добавил код в свой вопрос. Я установил скорость передачи данных на 115200 и не получаю ответа на AT-команды, которые я ввожу в серийный монитор., @vinitha
Uno имеет только 1 интерфейс HW UART (ваш последовательный объект), который подключен к порту USB. Вы не можете подключить к ним модуль bt и обмениваться данными независимо друг от друга. На Uno единственной альтернативой является Software Serial, который используется в вашем коде. Дважды проверьте, не являются ли указанные контакты (6, 7) аппаратными серийными номерами и действительно ли они подключены к модулю bt. Также посмотрите скорость передачи данных по умолчанию для модуля bt (начальное значение 115k кажется довольно высоким)., @mystery
Штыри (6,7) подключены только к моему модулю ble, и что касается скорости передачи данных, 115200 — это скорость передачи данных по умолчанию, которую они указали в документе, и я также пробовал разные скорости передачи данных., @vinitha