martes, 5 de septiembre de 2017

TUTORIAL HC-12 EMISOR Y RECEPTOR DE LARGO ALCANCE FRECUENCIA DE TRABAJO 433 VARIABLE

EN ESTE TUTORIAL TE EXPLICO COMO CONECTAR UN ARDUINO MEGA  CON MÓDULO HC-12 EN EL CUAL ENVIAMOS Y RECIBIMOS UN MENSAJE.
EN LAS PRUEBAS HECHAS DENTRO DE POBLADO EL ALCANCE ÓPTIMO ES DE 600 METROS NO CONSIGUIENDOSE UNA ESTABILIDAD EN EL ENLACE A MÁS DISTANCIA.




CONEXIONES: CONECTAREMOS  DE LA SIGUIENTE MANERA
ARDUINO MEGA                       MÓDULO HC-12
TX2---------------------------------- RX
RX2---------------------------------- TX
GND--------------------------------- GND
VCC----------------------------------VCC
PIN 7---------------------------------SET   SIRVE PARA PONER EL MÓDULO EN MODO CONFIGURACIÓN.



CÓDIGO CONFIGURACIÓN DEL MÓDULO.
void setup()
  {
   pinMode(7,OUTPUT);
   digitalWrite(7,HIGH);
   Serial.begin(9600);
   Serial2.begin(9600);
   delay(3000);
   digitalWrite(7,LOW);
   Serial.println("ESPERANDO COMANDOS AT: ");
  }

void loop()
  {
    //String B= "." ;
     if (Serial2.available())
         { char c = Serial2.read() ;
           Serial.print(c);
         
         
         }
     if (Serial.available())
         {  char c = Serial.read();
            Serial2.print(c);
         }
   }

COMANDOS AT PARA VER ESTADO DE CONFIGURACIÓN

AT--------------------------SIRVE PARA SABER SI EL MÓDULO ESTA BIEN CONECTADO.
AT+RB--------------------PARA VER LA VELOCIDAD PUERTO SERIE.
AT+RC--------------------CANAL DE FRECUENCIA DE TRABAJO.
AT+RF--------------------MODO DE TRANSMISIÓN DE TRABAJO
AT+RP--------------------POTENCIA DE TRANSMISIÓN.
AT+V----------------------FIRMWARE INSTALADO.
AT+SLEEP---------------MODO SUSPENCIÓN EN LA EMISIÓN.
AT+DEFAULT-----------PONE LOS VALORES DE FABRICA, VELOCIDAD 9600,CANAL DE                                              FRECUENCIA 1 Y MODO DE TRANSMISIÓN FU3.

COMANDOS AT PARA LA CONFIGURACIÓN DEL MÓDULO

AT-------------------------SI RECIBIMOS OK ES QUE EL MÓDULO ESTA BIEN CONECTADO.
AT+BXXXX------------VELOCIDAD DEL PUERTO SERIAL 1200, 2400, 4800, 9600, 192000,                                               38400, 57600, 115200. POR DEFECTO ES 9600
AT+CXXX---------------CANAL DE FRECUENCIA VALORES ENTRE 001 Y 127
AT+PX-------------------POTENCIA DE TRANSMISIÓN  VALORES ENTRE 1 Y 8, 8 ES LA                                               MÁXIMA POTENCIA.
AT+FUX----------------MODO DE FUNCIONAMIENTO 1 A 4.

EN CONCLUSIÓN PARA DISTANCIA CORTAS 300 METROS EL MÓDULO CON LOS PARÁMETROS DE FÁBRICA ESTÁN BIEN, SI QUEREMOS LARGA DISTANCIA , PONDREMOS AT+B1200,AT+P8 Y  AT+FU4.

CÓDIGO PARA EL ENVÍO DE MENSAJE 

CON ESTE CODIGO ESTAREMOS ENVIANDO LA PALABRA HOLA CADA 5 SEGUNDOS.
void setup()
  {
   Serial.begin(9600);
   Serial2.begin(9600);
   Serial.println("SISTEMA FUNCIONANDO");
  }

void loop()
  {
  Serial.println("mensaje enviado");
  Serial2.print("hola");  
  delay(5000);
  }

CÓDIGO PARA RECIBIR MENSAJE

CON ESTE CÓDIGO SI RECIBIMOS LA PALABRA HOLA NOS DA UN MESANJE POR EL PUERTO SERIAL QUE DICE "HE RECIBIDO HOLA".

String recibido;
void setup()
  {
   Serial.begin(9600);
   Serial2.begin(9600);
   Serial.println("SISTEMA FUNCIONANDO");
  }

void loop()
  {
  if (Serial2.available()>0){
  recibido=Serial2.readString();
  Serial.print("mensaje recibido= ");
  Serial.println(recibido);
  recibido.trim();
  if (recibido=="hola")
  {
  Serial.println("HE RECIBIDO HOLA");
  }
  recibido="";
  }
 
  }
 





5 comentarios:

  1. Hola! Gran entrada. Solo tengo una gran duda. Luego de ingresar algunos comandos AT para que esté al máximo de potencia, ya no me deja cambiar nada y toda la respuesta que me entra es " ¿¿¿¿¿¿¿¿¿¿¿¿ '
    Si envío el comando AT+DEFAULT, la respuesta sigue siendo ¿¿¿¿¿¿¿¿¿¿¿


    Me podrías ayudar?
    Muchas gracias

    ResponderEliminar
    Respuestas
    1. Buenas tardes, prueba en el código de configuración poniendo el Serial2 primero a 1200 lo compila y los cargas, luego a 2400, 4800.

      Eliminar
  2. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  3. Qué tal disculpa se pueden usar como los hc05 para conectar con un celular Bluetooth?

    ResponderEliminar
    Respuestas
    1. Buenas si , pero no es el modelo de este tutorial mirate este TUTORIAL ARDUINO CON BLUETOOTH APPINVENTOR 2 MANEJANDO RELE Y SENSOR DE TEMPERATURA

      Eliminar