piratería de comunicación serie Arduino

1

Hace poco compré una silla de masaje Chines con la esperanza de poder interceptar la comunicación en serie entre su control remoto con cable y la silla en sí misma, corté el cable y conecté el Rxd y el Txd de la silla a mi arduino pin 3 y 4 y por supuesto En el pin de tierra, utilicé un código serie de software como se muestra a continuación, pero no pude dejar de obtener ningún valor legible. en algún punto, incluso cuando la silla no está conectada, el programa muestra algún valor 255, 128, 128 ... en el monitor serie, ¿podría tratarse de un problema de velocidad de transmisión? cuando conecto el control remoto, todas sus almohadillas se encienden al principio y solo unas pocas con el botón de encendido parpadeando continuamente en aproximadamente un segundo, pero cuando le doy 5 V de energía al control remoto, todas las luces de la almohadilla se encienden y se congelan, así que sé esto que la silla envía alguna señal a través de su Rxd para el control remoto (lo mismo sucede cuando conecto todos los cables excepto el Rxd del control remoto, que es el Txd de la silla. ¿Estoy haciendo algo tonto aquí o totalmente equivocado? Soy nuevo en esto SO Por favor ayuda.

El control remoto con cable tiene cuatro líneas conectadas a la placa con las marcas Vcc, Gnd, Txd y Txd Rxd, que muestran claramente que la comunicación es una especie de protocolo serie

Código utilizado.

#include <SoftwareSerial.h>
#define rxPin 3
#define txPin 4
SoftwareSerial softSerial =  SoftwareSerial(rxPin, txPin);
void setup()  {

 pinMode(rxPin, INPUT);
 pinMode(txPin, OUTPUT);
 softSerial.begin(9600);
 Serial.begin(9600);
}
void loop() {

 int data = softSerial.read();
 Serial.println(data);

 delay (1000);
    
pregunta KirG

1 respuesta

3

Estás haciendo esto de manera incorrecta. Es dudoso que incluso pueda estar seguro de la conexión de interfaz en serie y el protocolo utilizado. Hacer una adivinación total a ciegas es casi inútil.

La forma de hacer esto de la manera correcta es dejar las cosas conectadas de la manera normal y luego investigar lo que está sucediendo. Usando un osciloscopio, puede determinar la información esencial de la siguiente manera:

  1. Niveles de voltaje utilizados para la señalización.
  2. Cronometraje de pulsos incluso en la medida de determinar la velocidad en baudios.
  3. Comprender la señalización para ver si en realidad es una serie asíncrona de algún otro protocolo serie.
  4. Determine si la señalización es polaridad normal o invertida.
  5. Observe cuándo ocurre la señalización, como todo el tiempo, periódicamente o simplemente bajo el mando.
  6. Determine la dirección de la señal en varios cables.

Solo después de haber recopilado dicha información sería razonable conectarse a su MCU.

    
respondido por el Michael Karas

Lea otras preguntas en las etiquetas