Как заставить Arduino печатать на Arduino IDE моего Mac через Bluetooth?
Это простой вопрос, но я действительно изо всех сил пытался найти решение в Интернете, но безрезультатно.
У меня довольно обычная установка. Модуль HC05, подключенный к Arduino. HC05 также подключен к Bluetooth моего Mac (достаточно уверен в этом, потому что я использовал AT-команды для подтверждения). Однако, когда я выбираю порт HC05 в Arduino IDE, в последовательном мониторе этого порта ничего не печатается. Я что-то принципиально неправильно понимаю?
Как заставить Arduino печатать на Arduino IDE моего Mac через Bluetooth?
Вот мой код:
#include <SoftwareSerial.h>
SoftwareSerial MegaloDon(10, 11);
bool isConnected = false;
void setup() {
pinMode(9, HIGH); //этот пин подключен к "EN" на HC05 и включает AT-команды
Serial.begin(9600);
MegaloDon.begin(9600); //
connectBluetooth();
}
void connectBluetooth() {
digitalWrite(9, HIGH);
MegaloDon.println("AT"); //AT-команда
if (MegaloDon.find("OK")){
MegaloDon.println("Bluetooth ON");
digitalWrite(9, LOW);
Serial.println("Connected");
} else {
Serial.println("Attempting to reconnect...");
delay(2000); // подождите 2 секунды перед новой попыткой
}
}
void loop() {
if (isConneced()) {
Serial.println("conneced?");
**//Я хочу передать данные на последовательный монитор моего Mac в Arduino IDE здесь**
} else {
Serial.println("not conneced");
connectBluetooth(); // Попытка переподключения
}
}
bool isConneced(){
Serial.println("is it conneced?");
digitalWrite(9, HIGH);
MegaloDon.println("AT");
if (MegaloDon.find("OK")){
isConnected = true;
}
else{
isConnected = false;
}
digitalWrite(9, LOW);
}
@iceninja21, 👍2
1 ответ
Я вижу две проблемы:
Ваши AT-команды на самом деле не подтверждают, что bluetooth HC05 к чему-то подключен. Вы всегда отправляете только «AT», который переводит HC05 в режим AT на определенное время. Таким образом, вы тестируете только последовательное соединение между Arduino и HC05. Если вы хотите получить другую информацию от HC05, вам нужно войти в режим AT, а затем использовать другие AT-команды (например, команды с «AT» в начале, но другую информацию, следующую за ней), чтобы проверить соединение.
Итак, вопрос: действительно ли HC05 подключен к Mac? HC05 может находиться либо в режиме устройства, либо в режиме ведущего для Bluetooth. В режиме устройства Mac сможет инициировать соединение (как и с любым другим устройством Bluetooth, например с гарнитурой). Когда он находится в ведущем режиме, он сам должен инициировать соединение (тогда Mac должен быть устройством), что необходимо сделать с помощью AT-команд. Как именно вы узнаете, что HC05 подключен к Mac и что вы смотрите на правильный порт в Arduino IDE? Порт исчезает и снова появляется, когда вы выключаете комбинацию Arduino/HC05 и немного позже снова включаете?
В вашем коде вы отправляете данные через интерфейс
MegaloDon
только в одной точке:MegaloDon.println("Bluetooth ON");
Все остальные вызовы
МегалоДон
являются "AT" команда. И эта строка выполняется сразу после отправки "AT" к HC05 и получая "ОК" назад. Помните, что я написал выше? "АТ"; Команда переводит HC05 в режим AT на ограниченное время (обычно 1 или 2 секунды). Прошивка на HC05 затем попытается интерпретировать все данные, отправленные за это время, как AT-команды. Он не будет отправлять эти данные через интерфейс Bluetooth! Итак, если вы хотите отправить эти данные на Mac, вам следует немного подождать с их отправкой, чтобы HC05 больше не находился в режиме AT.
- Bluetooth-модуль HC-05 неправильно считывает данные с моего телефона Android
- Мой модуль Bluetooth HC-05 не работает
- Модуль HC-05 не получает команд и не спаривается
- Проблемы с подключением Bluetooth OBD2 ELM327
- SoftwareSerial читается до тех пор, пока не станет пустым, работает только с задержкой
- Проблема чтения данных Arduino Bluetooth HC-05
- mySerial.available() возвращает 0
- Arduino с модулем Bluetooth HC-05 | Данные не передаются
1. Спасибо за ответ! Я вижу, где я послал неправильно. Теперь я понимаю, что, поскольку я использую HC05 в качестве мастера, мне нужно будет подключиться к моему Mac с самого HC05 с помощью AT-команд. Вы случайно не знаете, где я могу найти необходимые для этого AT-команды/учебники? Кроме того, я совершенно уверен, что есть соединение (за исключением того, что HC05 является подчиненным), потому что порт называется что-то вроде «DSDTECH HC05» и, как вы сказали, исчезает/появляется снова, когда я включаю/выключаю модуль. 2. Оооо, спасибо. Я обязательно добавлю задержку. Еще раз большое спасибо!, @iceninja21
Будут ли соответствующие AT-команды AT+LINK=mac address и В+СОСТОЯНИЕ?, @iceninja21