Configurando o módulo JY-MCU

No post anterior vimos como fazer o módulo JY-MCU funcionar com o Arduino, da forma mais simples possível. Agora vamos incrementar nosso estudo, e vermos como configurar nosso módulo e obter algumas informações. Recomendo que leiam o post anterior, pois continuaremos exatamente dele:

JY-MCU Módulo bluetooth para Arduino

Vamos fazer com que nosso sketch receba o que digitarmos no aplicativo Android Hyperterminal RS232 e nos envie de volta? Continuamos com um sketch bem simples, mas agora podemos verificar que realmente temos como receber e tratar informações recebidas pelo módulo bluetooth. O esquema de ligação esta no post acima, e o sketch que vamos usar é o abaixo. Não se esqueça que para podermos fazer upload para o Arduino, temos que desligar o módulo JY-MCU, desconectando o pino Vcc.

void setup() 
{ 
 Serial.begin(9600); 
} 

void loop() 
{ 
 while(Serial.available()){
 Serial.write(Serial.read());
 }
}

Muito simples não é? O que nosso sketch recebe na serial, ele envia novamente pela serial. Reparem que o aplicativo tem uma caixa logo depois das duas “borrachinhas”, e se você marcar essa caixa, envia o sinal de nova linha “/n”, e então o que enviar vai em uma linha separada. Vamos incrementar um pouco mais o sketch, fazendo com que o led embutido no Arduino, conectado na porta 13, seja aceso quando o sketch receber o caracter 1 via bluetooth? Ah, e se receber o caracter 0, apaga o led 😉

String msg;

void setup() 
{ 
 Serial.begin(9600); 
 pinMode(13, INPUT);
} 

void loop() 
{ 
 while(Serial.available()){
 char x = Serial.read();
 switch (x) {
 case '0':
 digitalWrite(13, LOW);
 break;
 case '1':
 digitalWrite(13, HIGH);
 break;
 default:
 msg += x;
 delay(10);
 }
 }
 if (msg.length() > 1) {
 Serial.println(msg);
 }
 msg = "";
}

Agora controlamos o estado do led (aceso ou apagado) enviando “0” ou “‘1” do nosso celular/tablet. Ainda, se enviarmos algum outro texto, o sketch nos envia de volta.

Embora pareça sem utilidade, veja que se tivermos um botão liga/desliga no aplicativo, podemos configurá-lo para enviar 0 ou 1, ou os caracteres que escolhermos, e podemos ligar um relé em algum pino, controlando talvez uma lâmpada, e então passamos a ter um lampada controlada por nosso celular, estamos chegando a algum lugar 🙂

Antes de prosseguirmos, vamos ver como configurar alguns aspectos de nosso módulo bluetooth JY-MCU, como por exemplo, o nome do módulo como apresentado ao nosso celular/smartphone.

Configurando o JY-MCU com comando AT

O módulo JY-MCU aceita comandos AT para alterar alguns parâmetros e exibir algumas informações. Comandos AT são muito utilizados para comunicação com modens e entre alguns dispositivos diversos, entre eles o módulo JY-MCU. Para que o módulo aceite comandos AT, ele não pode estar conectado a nenhum dispositivo bluetooth. Enquanto o módulo estiver desconetado (luz vermelha piscando), o dispositivo esta em modo AT e aceita comandos AT.

Vamos fazer um sketch para que possamos enviar comandos AT diretamente da serial do Arduino, em nosso PC? Para isso precisamos nos comunicar com o Arduino pela serial, e como o JY-MCU também usa comunicação serial, vamos emular uma nova porta serial utilizando a biblioteca SoftwareSerial.h . Como o próprio nome da biblioteca indica, estaremos fazendo uma serial via software. Vamos usar o sketch abaixo:

#include <SoftwareSerial.h>

SoftwareSerial modulo(10,11);
String msg;

void setup(){
 Serial.begin(9600);
 modulo.begin(9600);
}
void loop(){
 if (modulo.available()){
 while (modulo.available()){
 msg += (char)modulo.read();
 }
 Serial.println(msg);
 msg="";
 }

 if (Serial.available()){
 delay(10);
 char c=Serial.read();

 modulo.write(c);

 }
}

O sketch inclui a biblioteca SoftwareSerial.h e cria um objeto módulo, do tipo SoftwareSerial, e passamos como parâmetro os pinos que serão utilizados como RX e TX, nesta ordem. No loop(), verificamos se o módulo tem informações a enviar, caso ele tenha nós armazenamos na variável msg, e quando o módulo não tiver mais informações para lermos nós imprimimos o que o módulo nos enviou para a serial conectada na USB de nosso computador. Já quando enviamos informações através da serial da IDE do Arduino, o sketch a lê e imediatamente escreve na serial do JY-MCU.

O esquema de ligação agora é o abaixo:JY-MCU softwareserial

Feito a ligação , podemos fazer o upload do sketch sem desativar o módulo JY-MCU, pois agora a serial se encontra livre. Após fazer o upload, vamos abrir a o serial monitor, nos certificar de que a opção “no line ending” (imagem abaixo) esteja selecionada, e fazer testes com os comando AT.

serial monitor

Vamos começar digitando AT na console. Após clicar em “Send”, ou teclar “Enter”, é exibido na janela um “OK”, que indica que o módulo esta em “AT Mode” e respondendo aos comandos. Para alterarmos o nome do dispositivo, digite AT+NAMEARDUINO, na janela abaixo deverá aparecer “OKsetname”, o que significa que o JY-MCU aceitou o comando e alterou seu nome para ARDUINO. Teste buscando os dispositivos bluetooth em seu celular/tablet, deverá encontrar um dispositivo com o nome ARDUINO, não conecte ainda. Vamos aproveitar e mudar a senha para pareamento? O default é 1234, ou 0000, vamos alterar para 7777. Digite AT+PIN7777, o módulo responderá com OKsetPIN.

Conecte seu celular/tablet no módulo, e tente dar algum comando AT. Só parear não significa conectar, abra o aplicativo anteriormente baixado, e se conecte. Não importa o comando que der, nada aparecerá na serial monitor, porem, se olhar a tela do aplicativo, verá que os comandos que estiver digitando no PC estão sendo transmitidos via bluetooth. Quando o módulo esta conectado a algum dispositivo, ele deixa o “AT Mode” e não reconhece mais comandos AT.

O último comando AT que conheço é AT+BAUDX, sendo X um número de 1 a 9, representando a velocidade de transmissão conforme abaixo:

Valor    Baud Rate
1           1200
2           2400
3           4800
4           9600 (default)
5           19200
6           38400
7           57600
8           115200
9           230400

A velocidade default é 9600, veja na ultima imagem que a velocidade é 9600 baud. Eu não recomendo mexer nesse valor, mas caso esteja muito curioso, desconecte o aplicativo e digite na serial AT+BAUD4, o módulo deverá responder com OK9600 . Caso use outro valor, vai perder a comunicação com o módulo, já que o Arduino estará usando uma velocidade diferente. Supondo que você digite AT+BAUD8, altere o sketch para que a velocidade esteja de acordo (modulo.begin(115200);).

Bem, creio que o básico do módulo JY-MCU é isso. Nos próximos posts vamos mostrar situações de uso prático, como acionar uma lampada utilizando nosso celular, o módulo bluetooth e um relé.

Abs.

2 thoughts on “Configurando o módulo JY-MCU

  1. Edmilson dos Santos

    Bom dia Srs.
    Executei o passo a passo e encontrei o seguinte problema:
    Quando digito o comando AT recebo como resposta OK, até aí nada de anormal, quando digito AT+VERSION ele me retorna OKlinvorV1.8 o que acredito ser o correto para o comando, porém quando digito qualquer outro comando ele não me retorna nada, como se não reconhecesse o comando.
    segue abaixo alguns comandos não reconhecidos:
    AT+ADDR
    AT+RESET
    AT+ORGL
    AT+NAME

    Desde já agradeço a ajuda;
    Edmilson

    Reply
    1. Valdinei Rodrigues dos Reis Post author

      Boa noite Edmilson.

      O módulo utilizado é o mesmo do post?
      Os comandos que testei são os seguintes:
      AT+NAMExxx
      AT+PINxxx
      AT+BAUDxxx
      Onde xxx é o valor que eu desejo configurar.

      Alguns dos comandos que citou eu não me lembro de ter visto.

      Reply

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

18 − 12 =