Autor Tema: problema con string en bluetooth JDY-31  (Leído 2975 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado johenrod

  • PIC18
  • ****
  • Mensajes: 276
problema con string en bluetooth JDY-31
« en: 19 de Enero de 2021, 01:10:00 »
Cordial saludo, estoy realizando un proyecto con App inventor y un pic, el enlace es un bluettoth "JDY-31" básicamente lo que hace es enviar un carácter y activar un rele, cuando lo hago con un bluettoth HC-05 o HC-06 todo va bien pero, al hacerlo con un JDY-31 cuando se establece la  comunicación o se termina, el bluetooth me envía una serie de datos que me disparan erróneamente el rele (asumo que son string) obviamente no deseo ese disparo erróneo, desearía poder identificar cuando se conecta y desconecta para que esos datos no afecten mi programa. dejo a continuación los datos entrantes al conectar y desconectar, gracias de antemano.

Código: C
  1. +CONNECTING<<A4:CA:A0:74:B2:CB         
  2. CONNECTED              
  3. DECIMAL HEX
  4. 43      2B
  5. 67      43
  6. 79      4F
  7. 78      4E
  8. 78      4E
  9. 69      45
  10. 67      43
  11. 84      54
  12. 73      49
  13. 78      4E
  14. 71      47
  15. 60      3C
  16. 60      3C
  17. 65      41
  18. 52      34
  19. 58      3A
  20. 67      43
  21. 65      41
  22. 58      3A
  23. 65      41
  24. 48      30
  25. 58      3A
  26. 55      37
  27. 52      34
  28. 58      3A
  29. 66      42
  30. 50      32
  31. 58      3A
  32. 67      43
  33. 66      42
  34. 13      0D
  35. 10      0A
  36. 67      43
  37. 79      4F
  38. 78      4E
  39. 78      4E
  40. 69      45
  41. 67      43
  42. 84      54
  43. 69      45
  44. 68      44
  45. 13      0D
  46. 13      0D
  47. 10      0A

Código: C
  1. +DISC:SUCCESS  
  2.        
  3. DECIMAL HEX
  4. 43      2B
  5. 68      44
  6. 73      49
  7. 83      53
  8. 67      43
  9. 58      3A
  10. 83      53
  11. 85      55
  12. 67      43
  13. 67      43
  14. 69      45
  15. 83      53
  16. 83      53
  17. 13      0D
  18. 13      0D
  19. 10      0A
« Última modificación: 19 de Enero de 2021, 01:48:35 por johenrod »
Si algo parece complicado... es por que esta mal explicado.

Desconectado Eduardo2

  • PIC24H
  • ******
  • Mensajes: 1004
Re:problema con string en bluetooth JDY-31
« Respuesta #1 en: 19 de Enero de 2021, 02:17:36 »
El primer mensaje es: 
+CONNECTING<<A4:CA:ACONNECTED
0:74:B2:CB

y el segundo:
+DISC:SUCCESS


Una manera es que uses un caracter especial para activación, por ejemplo 0xFF (o el que te guste)
Cuando se recibe un "+" se descartan los caracteres siguientes hasta que se recibe un 0xFF.

Si "+" fuera uno de los caracteres a transmitir se complica un poco, una manera de actuar sería que cada caracter hacia los relays vaya precedido de un 0xFF.



Desconectado johenrod

  • PIC18
  • ****
  • Mensajes: 276
Re:problema con string en bluetooth JDY-31
« Respuesta #2 en: 19 de Enero de 2021, 02:47:26 »
Gracias Eduardo, no se si te equivocaste en el orden de los datos...
tu me colocaste lo siguiente..
Código: [Seleccionar]
El primer mensaje es:
+CONNECTING<<A4:CA:ACONNECTED
0:74:B2:CB

pero lo que me llega es esto, en ese orden.
Código: [Seleccionar]
+CONNECTING<<A4:CA:A0:74:B2:CB         
CONNECTED
apenas estoy aprendiendo a manejar cadenas y strings, de pronto me puedes dirigir a algún post para hacer lo que me dices? gracias.
Si algo parece complicado... es por que esta mal explicado.

Desconectado Eduardo2

  • PIC24H
  • ******
  • Mensajes: 1004
Re:problema con string en bluetooth JDY-31
« Respuesta #3 en: 19 de Enero de 2021, 03:22:33 »
Gracias Eduardo, no se si te equivocaste en el orden de los datos...

Hice un copypaste pero evidentemente me temblaron los dedos  :oops:

Para lo que te digo no necesitás manejar strings, simplemente que cuando tu rutina de recepción reciba un "+" ignore el resto hasta recibir un caracter de activación o ahora que lo pienso, pasados x milisegundos, dado que son mensajes cortos.
Obviamente el "+" (0x2B) no puede formar parte del conjunto de caracteres que normalmente se transmite.

Eso implica una ligera modificación en la rutina de recepción, subí al menos esa parte del código.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:problema con string en bluetooth JDY-31
« Respuesta #4 en: 19 de Enero de 2021, 08:23:23 »
Mejor que directametne use un caracter especial como le nombraste.

Es decir use el 0xFF y luego envie lo suyo.

De esa forma solo busca por este caracter y todo lo demas es omitido.

0xFF LargoMensaje Mensaje

Por ejemplo

0xFF 0x01 0x10
0xFF 0x03 0x11 0x45 0x38

Desconectado johenrod

  • PIC18
  • ****
  • Mensajes: 276
Re:problema con string en bluetooth JDY-31
« Respuesta #5 en: 19 de Enero de 2021, 11:42:37 »
cordial saludo, gracias por sus respuestas...
soy muy novato en esto de la comunicación serial, buscando seguir las sugerencias tome un ejemplo de código de este foro para realizar la comparación, dejo el código, (ademas de esto podrían explicarme por favor por que al recibir los datos aparece una basura en forma de cuadritos),tambien dejo la imagen.
Código: [Seleccionar]
#include <12F675.h>
#include <string.h>
//#device ADC=16

#FUSES NOWDT
#FUSES NOMCLR
//#FUSES NOBROWNOUT
//#FUSES NOLVP
#FUSES PROTECT
#use standard_io(a)
//# use fast_io(b)
#byte portb= 6
#use delay(internal=4MHz)
//#use RS232 (baud = 9600, bits = 8,xmit = pin_b0, rcv = pin_b1,parity = N)
#use RS232 (baud = 9600, bits = 8,xmit = pin_a0, rcv = pin_a1,parity = N,)

char string[10];
char pass[10]="entrar";


void main()
{
/*#asm
   movlw (0B11000000); GPWU = 1, GPPU = 1, T0CS, T0SE, PSA, PS2, PS1, PS0 = 0
   option
   #endasm
*/

SET_TRIS_a(0B000010);

portb=0x00;


 while(true)
 {
  printf("Password: \n\r"); // el password es: entrar
  gets(string);
  if(!strcmp(string, pass))  // cuando la comparación NO es igual, retorna 1
   printf("Password correcto\n\r");
  else
   printf("Error, intente de nuevo\n\r");
 }

}


 

* pantallazo.jpg
(34.2 kB, 974x428 - visto 485 veces)
« Última modificación: 19 de Enero de 2021, 11:51:15 por johenrod »
Si algo parece complicado... es por que esta mal explicado.

Desconectado Eduardo2

  • PIC24H
  • ******
  • Mensajes: 1004
Re:problema con string en bluetooth JDY-31
« Respuesta #6 en: 19 de Enero de 2021, 15:30:26 »
cordial saludo, gracias por sus respuestas...
soy muy novato en esto de la comunicación serial, buscando seguir las sugerencias tome un ejemplo de código de este foro para realizar la comparación, dejo el código, (ademas de esto podrían explicarme por favor por que al recibir los datos aparece una basura en forma de cuadritos),tambien dejo la imagen.
....

 :?: Pero eso es un ejemplo de cualquier otra cosa, no lo que estabas usando.

Ahi tenés un solo error que es que el GPIO no está en la dirección 0x06 sino en la 0x05
Es decir, en lugar de  #byte portb= 6  debe ir  #byte portb= 5   

Los caracteres extraños no es problema del programa sino de configuracion del terminal.
 

* test675.jpg
(65.9 kB, 794x628 - visto 407 veces)



Desconectado johenrod

  • PIC18
  • ****
  • Mensajes: 276
Re:problema con string en bluetooth JDY-31
« Respuesta #7 en: 19 de Enero de 2021, 16:08:37 »
Citar
:?: Pero eso es un ejemplo de cualquier otra cosa, no lo que estabas usando.

Ahi tenés un solo error que es que el GPIO no está en la dirección 0x06 sino en la 0x05
Es decir, en lugar de  #byte portb= 6  debe ir  #byte portb= 5   

Los caracteres extraños no es problema del programa sino de configuracion del terminal.

 si , se que al parecer no tiene nada que ver con lo que busco, solo estoy tratando de buscar una solución basada en sus respuestas, y los caracteres raros aun siguen saliendo, me salen con  la terminal de arduino, con realterm y también con terminal v1.93 y en todas muestra esos caracteres raros,
gracias por la paciencia.
Si algo parece complicado... es por que esta mal explicado.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:problema con string en bluetooth JDY-31
« Respuesta #8 en: 19 de Enero de 2021, 16:51:44 »
Algun problema de configuracion/velocidad de la UART, fijate en el valor hexadecimal de lo que esperas recibir y lo que recibis

Desconectado Eduardo2

  • PIC24H
  • ******
  • Mensajes: 1004
Re:problema con string en bluetooth JDY-31
« Respuesta #9 en: 19 de Enero de 2021, 17:42:53 »
Primero hacelo funcionar en el simulador. Una vez que marcha, por lo menos sabés que el software está bien. 
Después cargalo en el PIC y ves.  Si no, no sabés si el problema es de software, hardware o comunicacion y es mas engorroso debuguear.

Desconectado johenrod

  • PIC18
  • ****
  • Mensajes: 276
Re:problema con string en bluetooth JDY-31
« Respuesta #10 en: 08 de Marzo de 2021, 15:15:35 »
cordial saludo, luego de cacharear un poco logre eliminar los datos erroneos.
al parecer este bluetooth esta montado en una tajeta generica y le faltan algunas cosas que no se ajustan con la tarjeta donde la montan.
logre quitar el error colocando 2 resistencias de 2,7 k entre las lineas TX y RX a 5 voltios.
Si algo parece complicado... es por que esta mal explicado.