Comunicação entre Arduíno e Modulo Bluetooth HC-05

Eu estou com um problema na comunicação entre o Arduíno mega 2560 e um módulo Bluetooth(HC-05) eu conectei conforme um esquema encontrado na internet, mas quando eu envio os comandos AT ele não manda OK de volta, parece que ele nao está trocando informações com o Arduíno. Pelo celular consigo emparelhar com ele. Vocês sabem o que pode estar acontecendo?

Exibições: 14851

Responder esta

Respostas a este tópico

posta aí certinho como vc ligou o modulo, tipo onde cada fio foi ligado no seu arduino mega, bem como o sketch usado. Vc precisa descrever melhor, enriquecendo com detalhes a situação que vc tem aí. Passo a passo, entende?

Tipo ali no desenho que vc postou mostra um tipo de ligação, aí no sketch dá pra ver que que está programado pra usar portas 14 e 15, depois vc diz que não usou 14 e 15, mas sim 10 e 11, e por último vc postou um sketch configurado pra usar portas 3 e 10 mas não nos mostrou como vc ligou os fios (jumpers). Fora isso vc precisa ver direito aí a velocidade de comunicação, uma hora vc configura pra 9600 bauds tanto na serial monitor quanto no bluetooth, depois vc me cola um sketch usando 115200 no serial monitor e 38400 no bluetooth.

Vc está ciente  disso tudo? Que teu serial monitor deverá estar configurado pra mesma velocidade indicada no sketch, e o programa de comunicação serial (tipo putty, teraterm, hyper terminal, etc) deverá também estar na velocidade indicada pelo sketch?

Fora isso, outra coisa que vc precisa configurar direito no serial monitor é aquele lance do "carriage return", "no line ending" e "cr/lf"

Pra facilitar tua vida nessa fase de testes, coloque a velocidade em 9600 bauds, tanto pra comunicação via serial monitor quanto pra comunicação pelo bluetooth

Outra coisa: vc conseguiu parear o modulo bluetooth com o teu computador e atribuir uma porta COM pra essa comunicação por bluetooth? Veja que parear computador com hc05 é diferente de parear celular com o hc05. Vc precisa parear primeiro o computador com o hc05 pra fins de testes de comunicação e usar algum programa de comunicação tipo putty ou teraterm. 

Estou ciente das portas, da velocidade e do NL/CR. Mas eu nao fiz o que vc falou por ultimo de parear o bluetooth com o PC e nem sei essas coisas de putty ou teraterm.

Eu segui varios videos ensinando fazer a comunicaçao, cada um de um jeito diferente, por isso a velocidade de transmissao está diferente, mas aqui em casa eu configurei a velocidade para cada prog que eu usava.

E está assim a ligaçao.

Arduino       HC-05

5v----------------VCC

GND------------GND

Tx----------------Rx

Rx---------------TX

e teve programações que eu usei o pino D8 como output para a key do modulo

eu nao coloquei os pinos TX e RX pq eu uso diversos para testar e nao pegou nenhum.

Eu consigo mandar caracteres do computador para o arduino e ligar LED's mas nao do Bluetooth e Arduino

Acho que agora as coisas estão ficando mais claras sobre o problema.

Foi bom vc ter comentado sobre estar  ciente sobre velocidades de comunicação e inversão do rx/tx.

Agora vamos conversar mais: 

- a comunicação do computador com o arduino via serial monitor, usando um cabo USB eu vi que vc escreveu que conseguiu fazer.

- mas eu só não saquei ainda como vc está tentando se comunicar com o bluetooth? por acaso vc está pretendendo usar o serial monitor da IDE do arduino??? vc quer digitar comandos AT na serial monitor e espera que o bluetooth responda OK???? É isso?

Se for isso, seu teste vai falhar mesmo. Veja: a porta COM criada para comunicação do pc com o arduino só funciona enquanto o cabo usb estiver interconectando o pc com o arduino.

O módulo bluetooth serve para criar uma outra via de comunicação, por radio frequencia (sem fio) entre o arduino e o pc. Aí é criado então uma outra porta COM, que vamos aqui chamar de porta COM do bluetooth

Em outras palavras, teu computador precisa ter bluetooth, que vai se comunicar com o bluetooth HC05 espetado ao arduino. Assim, quando ambos os bluetooth (do computador e do arduino) estiverem pareados, será então possível vc enviar comandos usando comunicação bluetooth.

Mas para isso, para passar comandos do pc pro arduino, não pode usar o serial monitor, pois vc se lembra que o serial monitor serve para comunicar o computador com o arduino DESDE QUE eles estejam ligados via cabo usb???

Então como é que vai enviar comandos do computador pro módulo hc-05? Vc terá que ter um programa de comunicação serial tipo putty ou teraterm ou hyper terminal. Então, primeiro vc parea o computador equipado com bluetooth e o arduino equipado com teu modulo hc05. Depois vc esse programa de comunicação, informa os parâmetros da comunicação (porta COM, velocidade em baud, etc) e manda conectar. Se vc fizer tudo certo, então o seu computador equipado com bluetooth irá estar se comunicando com o arduino equipado com bluetooth. Aí, através desse programa putty, vc digita nele os comandos, isto é, os comandos sairão do seu pc e chegarão ao arduino.

Depois vc usa a mesma idéia pra montar um app android por exemplo. Como o smartphone é dotado de bluetooth, fica fácil perceber porque teu celular parea facilmente com o modulo hc-05. Mas se vc quiser enviar comandos AT a partir do celular, vc teria que instalar um app apropriado para comunicação serial

"por acaso vc está pretendendo usar o serial monitor da IDE do arduino??"

 "vc quer digitar comandos AT na serial monitor e espera que o bluetooth responda OK?"

Sim, mas não é o resultado final.

Eu quero comandar as portas do arduino pelo celular não pelo PC. Mas primeiramente eu quero configurar o modulo e ve se ele responde Ok aos meus comandos AT, tipo trocar o nome.

Depois irei tentar comunicar com o celular mas primeiro ele tem que enviar e receber os dados do bluetooth.Porque ja tentei pelo cel e nada.

O meu projeto é uma casa automatizada, eu fiz um aplicativo android e queria poder ligar luzes, acionar Coolers e bomba d'água pelo celular.

O aplicativo envia caracteres exemplo:A, B, C e D.

O modulo ia receber essas informações e enviar pro Arduíno, quando recebesse algum carácter exp:A ia acender a luz da sala.

E ainda tem as portas da casa que são servos motores, que eu estou com um problema tbm. Não estou sabendo fazer uma programação que quando recebesse o carácter exp:X abrisse a porta da garagem.

Vc não tem um computador com bluetooth? Tipo notebook com bluetooth, ou bluetooth usb, algo do gênero?

É recomendável que tenha, porque isso te permitiria fazer todos os testes de comunição wireless via bluetooth. Vc aprenderá melhor como funciona a comunicação via bluetooth primeiro, e depois vc parte pra criar um app no android para enviar os comandos

Pra pular etapas assim, vc precisaria ser um JEDI, ter um grau de conhecimento acima da média. Não estou falando que sou um JEDI não, to dizendo isso porque foi dessa forma (comunicando o notebook com  o modulo bluetooth espetado ao arduino) que consegui aprender e criar meus brinquedinhos pra funcionarem via bluetooth

Tenho um HC-06 e estou exatamente com o mesmo problema, quando compre ele testei a comunicação entre o PC e ele foi normal, ontem tentei comunicação com o celular e de modo algum funciona.

Estou postando para acompanhar o tópico e ver se há alguma solução, boa sorte ai, se eu conseguir eu posto aqui como resolvi.

Vlw, boa sorte pra vc tbm.

Coloca uma foto do teu módulo, as vezes vc tem que aterrar um pino pra ele entrar no modo de receber comandos AT, senão ele pega tudo que você envia pra ele passa pra frente. No meu, o fabricante colocou um botão que quando apertado joga o pino pra terra e entra no modo AT. Geralmente também, quando está nesse modo, o LED pisca diferente.

Solução

há diferenças no Programa para usar o HC-05 no UNo e no MEGA

Programa para o UNO

#include <SoftwareSerial.h> //Para ligar o módulo HC-05 noutros pinos que não o 0 e 1 (RX\TX)
#define RxD 7                //Arduino pin connected to Tx of HC-05
#define TxD 8                //Arduino pin connected to Rx of HC-05
SoftwareSerial blueToothSerial(RxD,TxD); //3.3v entre o pino 8 do Arduino e o RX do módulo
void setup()
{
  // inicializar as 2 portas serial:
  Serial.begin(38400);          //Para o arduino comunicar com o PC 
  blueToothSerial.begin(38400);  //-> HC-05 AT mode baud rate is 38400
  
   pinMode(RxD, INPUT);
   pinMode(TxD, OUTPUT);
     
 } 
 
void loop() {
  
  if (blueToothSerial.available()) {         //PORTA DO BLUETOOTH RX + TX (7 e 8) | Escrever as respostas do módulo
    int inByte = blueToothSerial.read();
    Serial.write((char)inByte); 
   }
  
  if (Serial.available()) {                   // Ler a porta Serial do Arduino para depois enviar os comandos ao módulo
    int inByte = Serial.read();
    blueToothSerial.print((char)inByte);     //REPAREM AQUI EM VEZ DE  blueToothSerial.print((char)inByte); USEM  blueToothSerial.write((char)inByte); é só trocar print por write --Na janela Serial do IDE temos de escolher a opção "Both NL & CR" e o baud de 38400 
   
 //blueToothSerial.print("\r\n"); //No HC-05 todos os comandos têm de acabar assim
  }
}

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço