Sede central de Smarthome con ArduiTouch Parte 2 - El registro de datos

Este artículo pretende explicar el principio de transmisión de mensajes entre la oficina central y los dispositivos remotos (en adelante, simplemente llamados dispositivos). Dado que los dispositivos deben ser simples y no deben requerir ninguna configuración manual, se diseñó el siguiente principio.

  • Un dispositivo siempre usa su dirección MAC para identificación
  • Un nuevo dispositivo debe iniciar sesión activamente en el centro de control
  • Para que un dispositivo intercambie datos con el centro de control, debe registrarse manualmente en el centro de control.

Estructura de un mensaje:

struct ATMSGPACKET {
uint8_t id [6]; // id del dispositivo remoto típico de su dirección MAC
paquetes uint8_t; // número de paquetes en el mensaje
uint16_t bits del dispositivo; // bits para controlar las capacidades del dispositivo
};

El encabezado de un mensaje tiene 9 bytes. Los primeros seis bytes contienen el Id seguido de un byte con el número de canales (máximo ocho). Esto es seguido por un entero sin signo de 16 bits. Cada uno de estos 16 bits tiene un significado diferente e indica las capacidades del transmisor o las características especiales de los paquetes de datos. El bit 0 determina si el dispositivo es pasivo, es decir, debe ser consultado por el centro de control. El bit 1 indica si el centro de control puede cambiar el intervalo de envío de un dispositivo activo. El bit 2 indica que se forma una suma de comprobación sobre todo el mensaje, que se agrega al final del mensaje. El bit 3 indica que los paquetes de datos están encriptados (preparación para versiones posteriores). No hay otros bits actualmente definidos. Los paquetes de datos para cada canal individual siguen el encabezado.

struct ATDATAPACKET {
uint8_t canal; // canal como identificación
uint8_t tipo; // tipo de paquete
uint8_t unit; // unidad del paquete
uint8_t value [4]; // cuatro bytes de datos para contener un entero largo o un flotante
};

Un paquete de datos comienza con un byte para el número de canal seguido de un byte con el tipo que contiene tanto la dirección de transporte como la información sobre el tipo de datos. 0 = Mensaje entero del dispositivo al centro de control, 1 = Mensaje flotante del dispositivo al centro de control, 2 = Mensaje entero del centro de control al dispositivo, 3 = Mensaje flotante del centro de control al dispositivo, 4 mensajes booleanos del dispositivo al centro de control y 5 mensajes booleanos del el centro de control al dispositivo. El siguiente es un byte para la unidad asignada. Algunas unidades ya han sido definidas, otras seguirán. Y finalmente hay cuatro bytes para registrar el valor. Dependiendo del tipo, estos deben interpretarse como flotantes o enteros de 32 bits. Solo el byte 0 se usa para los mensajes booleanos.

Proceso de intercambio de datos:

1. Dispositivo activo

Los dispositivos activos se usan típicamente para sensores. Envían datos al centro de control a intervalos fijos o variables. O, por ejemplo, un botón de campana o un interruptor de radio cada vez que alguien presiona el botón.

Si el dispositivo aún no tiene un centro de control, busca un punto de acceso con el SSID "ATSmartHome" en la WLAN. Si se encuentra esto, el dispositivo lo sabrá siempre que no se haya interrumpido la fuente de alimentación. Los mensajes con la ID del dispositivo se envían a este AccessPoint.

Si la oficina central (punto de acceso) recibe dicho mensaje, primero se verifica si un dispositivo con la ID recibida ya ha sido registrado. De lo contrario, los datos se ignoran y el centro de control muestra que se ha encontrado un nuevo dispositivo. Este dispositivo debe registrarse en el centro de control para recibir datos.

Si el dispositivo está registrado, la suma de verificación se verifica si se especifica. Si esto está bien, los datos se guardan. El dispositivo activo permanece listo para recibir por un corto tiempo después del envío. Durante este tiempo, cualquier información que pueda estar disponible se puede enviar al dispositivo o, si el dispositivo puede hacerlo, los cambios de configuración, como un nuevo intervalo de tiempo, se pueden enviar desde el centro de control al dispositivo.

2. Dispositivo pasivo

Los dispositivos pasivos siempre están listos para recibir. El dispositivo pasivo también envía mensajes al centro de control a intervalos. Esto sirve, por un lado, para el registro y, por otro lado, para informar a la unidad central sobre qué canales puede recibir datos el dispositivo.

Si el dispositivo aún no tiene un centro de control, busca un punto de acceso con el SSID "ATSmartHome" en la WLAN. Si se encuentra esto, el dispositivo, como el activo, comienza a enviar datos al centro de control de forma regular.

Si se recibe un mensaje en el centro de control desde un dispositivo pasivo no registrado, la ID de este dispositivo se muestra como un nuevo dispositivo y puede registrarse manualmente. Con la información del paquete de datos recibido, el centro de control puede determinar en qué canales está listo para recibir el dispositivo. Un dispositivo pasivo también puede transmitir simultáneamente valores medidos al centro de control en otros canales. Si el panel de control ha registrado un dispositivo pasivo y se presiona un interruptor en uno de los canales de este dispositivo, envía el cambio en el canal correspondiente al dispositivo. Si el canal no tiene el valor deseado la próxima vez que se reciben datos del dispositivo pasivo, el cambio se envía nuevamente. Esto evita que no se realice un proceso de conmutación en el dispositivo debido a un mensaje perdido.

Advertencia Si alguien ya ha cargado la biblioteca ATMessageBuffer, debe obtener la última versión y volver a compilar los bocetos que utilizan esta biblioteca. Esto es necesario porque he expandido la estructura de datos ATMESSAGEPKT con los bits de dispositivo variables.

Espero haber proporcionado la información necesaria para desarrollar nuevos dispositivos que sean compatibles con este centro. El primer dispositivo pasivo que puede cambiar un relé seguirá en breve.

 

 

 

 

Proyectos para avanzados.Casa inteligente

Deja un comentario

Todos los comentarios son moderados antes de ser publicados

Artículos de blog

  1. Ahora instalamos el esp32 a través de la administración.
  2. Lüftersteuerung Raspberry Pi
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1
  4. ESP32 - das Multitalent
  5. Transporte Aéreo - programación de ESP mediante redes locales inalámbricas