Как заставить 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);
}
 



, 👍2


1 ответ


1

Я вижу две проблемы:

  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 и немного позже снова включаете?

  2. В вашем коде вы отправляете данные через интерфейс MegaloDon только в одной точке:

     MegaloDon.println("Bluetooth ON");
    

    Все остальные вызовы МегалоДон являются "AT" команда. И эта строка выполняется сразу после отправки "AT" к HC05 и получая "ОК" назад. Помните, что я написал выше? "АТ"; Команда переводит HC05 в режим AT на ограниченное время (обычно 1 или 2 секунды). Прошивка на HC05 затем попытается интерпретировать все данные, отправленные за это время, как AT-команды. Он не будет отправлять эти данные через интерфейс Bluetooth! Итак, если вы хотите отправить эти данные на Mac, вам следует немного подождать с их отправкой, чтобы HC05 больше не находился в режиме AT.

,

1. Спасибо за ответ! Я вижу, где я послал неправильно. Теперь я понимаю, что, поскольку я использую HC05 в качестве мастера, мне нужно будет подключиться к моему Mac с самого HC05 с помощью AT-команд. Вы случайно не знаете, где я могу найти необходимые для этого AT-команды/учебники? Кроме того, я совершенно уверен, что есть соединение (за исключением того, что HC05 является подчиненным), потому что порт называется что-то вроде «DSDTECH HC05» и, как вы сказали, исчезает/появляется снова, когда я включаю/выключаю модуль. 2. Оооо, спасибо. Я обязательно добавлю задержку. Еще раз большое спасибо!, @iceninja21

Будут ли соответствующие AT-команды AT+LINK=mac address и В+СОСТОЯНИЕ?, @iceninja21