Todos los productos
Search
Centro de documentos

IoT Platform:Conexión de un dispositivo de puerta de enlace en la nube con protocolo JT/T 808 (autenticación unidireccional)

Última actualización: Sep 04, 2026

Este tema explica cómo conectar un dispositivo con protocolo JT/T 808 a IoT Platform mediante la autenticación unidireccional para una puerta de enlace en la nube.

Requisitos previos

Se ha adquirido una instancia Enterprise Premium Edition. Este ejemplo utiliza una instancia Premium Edition en la región China (Shanghai). Para obtener más información, consulte Purchase an Enterprise instance.

Contexto

La función de puerta de enlace en la nube con protocolo JT/T 808 de IoT Platform permite conectar dispositivos mediante TCP (no recomendado debido a su baja seguridad) o TLS. Al utilizar TLS, se pueden aprovechar funciones como la autenticación unidireccional del lado del servidor, OCSP del lado del dispositivo y acceso bidireccional seguro entre dispositivos y servidores. Este tema muestra cómo conectar dispositivos con protocolo JT/T 808 mediante autenticación unidireccional a través de TLS (recomendado) y TCP (no recomendado).

Preparativos

El ejemplo de desarrollo del lado del dispositivo en este tema utiliza el siguiente entorno de desarrollo: sistema operativo Ubuntu 22.04.

Ejemplo de conexión (TLS, recomendado)

Certificados personalizados

Este ejemplo requiere certificados personalizados, que incluyen un certificado raíz (root-ca.crt), una clave privada del certificado del servidor (server.key) y un certificado del servidor (server.crt).

Puede utilizar OpenSSL para generar certificados personalizados. Para obtener más información, consulte Generate a custom certificate.

Creación de un producto de puerta de enlace en la nube

  1. Inicie sesión en la consola de IoT Platform.

  2. En la esquina superior izquierda de la consola, seleccione la región donde se encuentra su instancia de IoT Platform.

  3. En la página Instance Overview, haga clic en la instancia Premium Edition de destino.

  4. En el panel de navegación izquierdo, elija Device Management > Cloud Gateway y haga clic en Add Cloud Gateway.

  5. En el cuadro de diálogo que aparece, configure los parámetros. Establezca Server Certificate Private Key en server.key y Server Certificate en server.crt. A continuación, haga clic en OK.

    Para obtener más información sobre los parámetros, consulte Create a cloud gateway product (JT/T 808).

    • Gateway Name: Introduzca JT808接入示例TLS.

    • Protocol: Seleccione JT/T 808.

    • Custom Port Number: Introduzca 7999.

    • Authentication Type: Seleccione One-Way Authentication.

    • Transport Protocol: Seleccione TLS.

    • Enable Device X.509 Certificate Authentication: Seleccione No.

    • Enable OCSP: Seleccione Disabled.

  6. Una vez creada la puerta de enlace en la nube, búsquela en la lista de puertas de enlace, copie su Gateway URL y guarde la URL.

    El formato de la URL de la puerta de enlace es iot-xxx.igw.iothub.aliyuncs.com y el número de puerto es 7999.

Adición de un dispositivo de puerta de enlace en la nube

  1. En el panel de navegación izquierdo, elija Device Management > Products. Busque el producto de puerta de enlace en la nube que creó y haga clic en Manage Devices en la columna Actions.

  2. En la página Devices, haga clic en Add Devices in Batches.

  3. En el cuadro de diálogo Add Devices in Batches, haga clic en Download .csv Template para descargar el archivo de plantilla.

    En el cuadro de diálogo, establezca Product en la puerta de enlace en la nube. En la sección Batch Upload File, haga clic en Upload File para cargar la plantilla CSV que completó.

  4. En la plantilla, introduzca el ID del fabricante, el modelo del terminal y el ID del terminal como se muestra en la siguiente figura. A continuación, guarde el archivo.

    Para obtener información sobre cómo completar los parámetros, consulte Create a cloud gateway device (JT/T 808).

    image

  5. Regrese al cuadro de diálogo Add Devices in Batches, haga clic en Upload File para cargar el archivo en la consola de IoT Platform y, a continuación, haga clic en OK.

    Después de importar las identidades de los dispositivos, IoT Platform concatena los valores cargados de Manufacturer ID, Terminal Model y Terminal ID con el formato ${Manufacturer ID}_${Terminal Model}_${Terminal ID} y utiliza el resultado como nombre del dispositivo para crearlo. El dispositivo creado aparece en la lista de dispositivos.

    Una vez creados los dispositivos, el estado de todos ellos es Inactive.

Desarrollo del programa del lado del dispositivo

Después de crear el dispositivo, desarrolle un programa del lado del dispositivo para conectarlo a IoT Platform. IoT Platform proporciona un kit de desarrollo de software (SDK) en lenguaje C para el protocolo JT/T 808. Este ejemplo utiliza el SDK de C para desarrollar un programa que conecta el dispositivo AliyunIoT_TestModel_device1 a IoT Platform.

  1. Descargue el SDK en lenguaje C para el protocolo JT/T 808 y descomprima el archivo para obtener la carpeta jt808-c-sdk.

  2. En el archivo jt808-c-sdk/jt808_tls_demo.c, modifique la información de conexión y autenticación del dispositivo.

    Nota

    El archivo de programa jt808_tls_demo.c se utiliza para desarrollar conexiones de dispositivos a través de TLS.

    ......
    /* TODO: Replace the placeholders with the actual device information, including province, city, manufacturer, model, terminal ID, color, and license plate number. */
    static jt808_register_t info = {
        .province = 0x1234,
        .city = 0x4567,
        .manufacturer = "AliyunIoT",
        .model = "TestModel",
        .terminal = "device1",
        .colour = 1,
        .lisence = "ZheC*****",
    };
    /* TODO: The bound mobile phone number */
    static char *mobile_num = "1*********8";
    
    /* TODO: Replace the placeholders with the domain name and port of the cloud gateway endpoint. */
    static char *host = "iot-0******.igw.iothub.aliyuncs.com";
    static uint16_t port = 7999;
    
    /* The custom root certificate of the endpoint */
    const char *jt808_ca_cert = \
    {
        \
        "-----BEGIN CERTIFICATE-----\r\n"
        "MIIDR*************************************************ZIhvcNAQEL\r\n"
        "BQAwM*************************************************ANBgNVBAMM\r\n"
        "BklvV*************************************************MxCzAJBgNV\r\n"
        "BAYTA*************************************************QgQ0EwggEi\r\n"
        "MA0GC*************************************************S8fWxBF+lw\r\n"
        "8GKH7*************************************************3Xco/COMjP\r\n"
        "Q69QH*************************************************wuYc0WMjlS\r\n"
        "cNO7G*************************************************BABPEIJeLR\r\n"
        "c6rJ7*************************************************F8nDOm0kUd\r\n"
        "kvAdK*************************************************t6BEh9AgMB\r\n"
        "AAGjU*************************************************NVHSMEGDAW\r\n"
        "gBT4S*************************************************0GCSqGSIb3\r\n"
        "DQEBC*************************************************+I42UNjbJa\r\n"
        "ZP9bn*************************************************G+S/Tv6BEn\r\n"
        "2v1/V*************************************************zNWlwapdvp\r\n"
        "DRMmf*************************************************Vh/FVBa7gn\r\n"
        "9DWlU*************************************************AGz0HkVQq6\r\n"
        "Ks4UI***************************Vzd+\r\n"
        "-----END CERTIFICATE-----\r\n" 
    };
    ......

    Parámetro

    Descripción

    province

    La provincia y la ciudad donde se encuentra el dispositivo. Los valores deben cumplir con el protocolo JT/T 808-2019.

    city

    manufacturer

    El ID del fabricante, el modelo del terminal y el ID del terminal del dispositivo de puerta de enlace en la nube que agregó en la consola de IoT Platform.

    model

    terminal

    colour

    El color de la matrícula, el número de matrícula y el número de celular del propietario del dispositivo. Los valores del color y el número de la matrícula deben cumplir con el protocolo JT/T 808-2019.

    lisence

    mobile_num

    host

    El endpoint de la puerta de enlace en la nube con protocolo JT/T 808. Corresponde a la parte del nombre de dominio de la Gateway URL del producto de puerta de enlace en la nube que creó.

    port

    El número de puerto personalizado. El valor predeterminado es 7999.

    jt808_ca_cert

    El contenido del certificado raíz root-ca.crt.

  3. Inicie sesión en el sistema operativo Ubuntu y cargue la carpeta jt808-c-sdk modificada.

    La estructura de directorios del proyecto jt808-c-sdk es la siguiente.

    jt808-c-sdk
    ├── core
    ├── demos
    ├── external
    ├── jt808
    ├── output
    ├── portfiles
    ├── LICENSE
    └── Makefile
  4. En el directorio raíz /jt808-c-sdk, ejecute el comando make para compilar el programa de ejemplo.

    make clean
    make

    El programa de ejemplo generado jt808-tls-demo se almacena en el directorio ./output.

  5. Ejecute el programa de ejemplo.

    ./output/jt808-tls-demo

    Tras una ejecución correcta, la terminal muestra registros similares al siguiente ejemplo. Los hitos clave incluyen: primera conexión TLS establecida, registro JT808 exitoso (token obtenido), segunda conexión TLS establecida, autenticación JT808 exitosa y respuestas de latido subsiguientes.

    establish tcp connection with server(host='iot-xxx, xxx igw.iothub.aliyuncs.com', port=[7999])
    success to establish tcp, fd=5
    local port: 52448
    [1678871231.212][LK-1000] establish mbedtls connection with server(host='iot-xxx xxx igw.iothub.aliyuncs.com', port=[7999])
    [1678871231.641][LK-1000] success to establish mbedtls connection, (cost 39791 bytes in total, max used 42651 bytes)
    
    [LK-1100] < 7E xxx                          78 |  xxx               x
    [LK-1100] < 00 xxx                          56 |  xxx               V
    [LK-1100] < 30 xxx                          52 |  xxx               R
    [LK-1100] < 70 xxx                          41 |  xxx               A
    [LK-1100] < 31 xxx                          51 |  xxx               Q
    [LK-1100] < 31 xxx                          4E |  xxx               N
    [LK-1100] < 6A xxx                             | jMzY=.~
    
    [1678871231.687][LK-0000] aiot_jt808_register success
  6. Regrese a la consola de IoT Platform de su instancia. En el panel de navegación izquierdo, elija Device Management > Devices. Busque el dispositivo de destino y compruebe su estado. Si el estado del dispositivo es Online, significa que está conectado a IoT Platform.

  7. En el panel de navegación izquierdo, elija Monitoring & O&M > Simple Log Service. Seleccione el producto de destino y consulte los Device to Cloud Messages.

    En la pestaña Cloud Operations Log, filtre por DeviceName AliyunIoT_TestModel_device1. Podrá observar varias entradas de registro con el tipo de negocio Device to Cloud Messages y código de estado 200, lo cual indica que los mensajes se publicaron correctamente en el topic $JT808/AliyunIoT/TestModel/device1/up (QoS=0).

Ejemplo de conexión (TCP, no recomendado)

Creación de un producto y dispositivo de puerta de enlace en la nube

  1. Create a cloud gateway product (JT/T 808). En el cuadro de diálogo Add Cloud Gateway, configure los parámetros y haga clic en OK.

    • Gateway Name: Introduzca JT808接入示例.

    • Protocol: Seleccione JT/T 808.

    • Custom Port Number: Introduzca 7999.

    • Authentication Type: Seleccione One-Way Authentication.

    • Transport Protocol: Seleccione TCP.

  2. Una vez creada la puerta de enlace en la nube, búsquela en la lista de puertas de enlace, copie su Gateway URL y guarde la URL.

    El formato de la URL de la puerta de enlace es iot-xxx.igw.iothub.aliyuncs.com y el número de puerto es 7999.

  3. Create a cloud gateway device (JT/T 808). Agregue el dispositivo como se muestra en la siguiente figura.

    image

Desarrollo del programa del lado del dispositivo

IoT Platform proporciona un SDK en lenguaje C para el protocolo JT/T 808. Este ejemplo utiliza el SDK de C para desarrollar un programa que conecta el dispositivo AliyunIoT_TestModel_device1 a IoT Platform.

  1. Descargue el SDK en lenguaje C para el protocolo JT/T 808 y descomprima el archivo para obtener la carpeta jt808-c-sdk.

  2. En el archivo jt808-c-sdk/jt808_basic_demo.c, modifique la información de conexión y autenticación del dispositivo.

    Nota

    El archivo de programa jt808_basic_demo.c se utiliza para desarrollar conexiones de dispositivos a través de TCP.

    ......
    /* TODO: Replace the placeholders with the actual device information, including province, city, manufacturer, model, terminal ID, color, and license plate number. */
    static jt808_register_t info = {
        .province = 0x1234,
        .city = 0x4567,
        .manufacturer = "AliyunIoT",
        .model = "TestModel",
        .terminal = "device1",
        .colour = 1,
        .lisence = "ZheA*****",
    };
    /* TODO: The bound mobile phone number */
    static char *mobile_num = "1**********";
    
    /* TODO: Replace the placeholders with the domain name and port of the cloud gateway endpoint. */
    static char *host = "iot-0******v-0****0.igw.iothub.aliyuncs.com";
    static uint16_t port = 7999;
    ......
  3. Inicie sesión en el sistema operativo Ubuntu y cargue la carpeta jt808-c-sdk modificada.

  4. En el directorio raíz /jt808-c-sdk, ejecute el comando make para compilar el programa de ejemplo.

    make clean
    make

    El programa de ejemplo generado jt808-basic-demo se almacena en el directorio ./output.

  5. Ejecute el programa de ejemplo.

    ./output/jt808-basic-demo

    Tras una ejecución correcta, el dispositivo se conecta y reporta datos. La terminal muestra registros similares al siguiente ejemplo.

    root@xxx cZ:/opt/jt808-c-sdk# ./output/jt808-basic-demo
    establish tcp connection with server(host='iot-xxx.igw.iothub.aliyuncs.com', port=[7999])
    success to establish tcp, fd=3
    local port: 51018
    
    [LK-1100] < 7xxx                    '8 | ~.            /x
    [LK-1100] < 0 xxx                   '8 | ..            ix
    [LK-1100] < 4xxx                    '6 | Kl            >F
    [LK-1100] < 7xxx                    \A | p)xxx         :J
    [LK-1100] < 6 xxx                   '6 | lNxxx         >F
    [LK-1100] < 6 xxx                   '9 | izxxx         NY
    [LK-1100] < 3                          | 0YTU=#~
    
    [1678694981.477][LK-0000] aiot_jt808_register success, token:dGFxxx
    auth_key: dGlxxx                                          TU=
    [1678694981.477][LK-1000] adapter_network_deinit
    establish tcp connection with server(host='iot-0xxx70.igw.iothub.aliyuncs.com', port=[7999])
    success to establish tcp, fd=3
    local port: 51024
    
    [LK-1100] < 7xxx                           xxx
    [LK-1100] < 0xxx                           xxx
    
    [1678694981.622][LK-0000] aiot_jt808_auth success
    
    [LK-1100] < 7lxxx                          xxx
    [LK-1100] < 0xxx                           xxx
    
    [COMMON_ACK], xxx
    
    [LK-1100] < 7lxxx                          xxx
    [LK-1100] < 0xxx                           xxx
    
    [COMMON_ACK], xxx

    Puede regresar a la consola de IoT Platform de su instancia para consultar el estado del dispositivo y los registros de comunicación.