Todos los productos
Search
Centro de documentos

IoT Platform:C Link SDK

Última actualización: Sep 03, 2026

Este tema muestra cómo usar el C Link SDK para conectar un dispositivo simulado (en este ejemplo, un interruptor de luz nocturna) a IoT Platform mediante MQTT y publicar datos en un topic personalizado.

Requisitos previos

IoT Platform está activado.

Crear un producto y un dispositivo

  1. Inicie sesión en la consola de IoT Platform y haga clic en la tarjeta de la instancia de destino.

  2. En el panel de navegación izquierdo, seleccione Devices > Products y haga clic en Create Product.

  3. En la página Create Product, establezca el parámetro Product Name como NightLightSwitch y el parámetro Category como Custom Category. Utilice los valores predeterminados para los demás parámetros. A continuación, haga clic en OK.

  4. En la página Create Product, haga clic en Add en la sección Add Device.

  5. En la página Devices, haga clic en Add Device.

  6. En el cuadro de diálogo Add Device, introduzca un nombre de dispositivo. Ejemplo: LightSwitch. Luego, haga clic en OK.

    Para Nickname, introduzca Quick Start.

  7. En el cuadro de diálogo The devices have been added., haga clic en Copy Device Certificate. Después, guarde la información del certificado del dispositivo en un servidor local. Para obtener más información, consulte Device certificates.

Preparar el entorno de desarrollo

En este ejemplo, el entorno de desarrollo es Ubuntu 16.04 y las herramientas de desarrollo son gcc y make. Para obtener más información, consulte Project configurations.

  1. Instale Ubuntu 16.04.

    Para obtener más información, consulte Ubuntu.

  2. Ejecute el siguiente comando para instalar gcc y make:

    sudo apt-get -y install gcc make

Configurar el SDK

  1. Descargue un paquete de demostración desde Archivo de demostración al entorno de desarrollo y descomprima el paquete.

    IoT Platform permite desarrollar funciones personalizadas para los Link SDK. Para obtener más información, consulte Obtain Link SDK for C.

  2. Abra el archivo ./LinkSDK/demos/mqtt_basic_demo.c y configure los parámetros correspondientes.

    • Configure los parámetros que especifican la información de conexión del dispositivo para conectarlo a IoT Platform. La siguiente tabla describe estos parámetros. Código de ejemplo:

      char *product_key       = "a18wP******";
      char *device_name       = "LightSwitch";
      char *device_secret     = "uwMTmVAMnGGHaAkqmeDY6cHxxB******";
      char  *mqtt_host = "a18wP******.iot-as-mqtt.cn-shanghai.aliyuncs.com";

      Parámetro

      Ejemplo

      Descripción

      mqtt_host

      a18wP.iot-as-mqtt.cn-shanghai.aliyuncs.com

      El endpoint al que desea conectar el dispositivo.

      • Para instancias Enterprise Edition y nuevas instancias públicas: Encuentre el endpoint en el panel Development Configuration de la página Instance Details.

      • Si utiliza una instancia pública de la versión anterior, el endpoint de la instancia pública tiene el formato ${YourProductKey}.iot-as-mqtt.${YourRegionId}.aliyuncs.com.

      Para obtener más información sobre instancias y endpoints, consulte View instance endpoints.

      product_key

      a18wP

      La información del certificado del dispositivo. El certificado del dispositivo se guarda en su servidor local después de crear el dispositivo.

      Puede consultar el certificado del dispositivo en la página Device Details en la consola de IoT Platform. Para obtener más información, consulte Obtain device verification information.

      device_name

      LightSwitch

      device_secret

      uwMTmVAMnGGHaAkqmeDY6cHxxB

    • Especifique un topic al que desea que el dispositivo se suscriba para recibir mensajes de IoT Platform. Ejemplo: /a18wP******/LightSwitch/user/get. Código de ejemplo:

      Nota

      Si desea utilizar esta función, elimine el comentario del código encerrado entre combinaciones de barra diagonal y asterisco (/**/).

          {
              char *sub_topic = "/a18wP******/LightSwitch/user/get";
              res = aiot_mqtt_sub(mqtt_handle, sub_topic, NULL, 1, NULL);
              if (res < 0) {
                  printf("aiot_mqtt_sub failed, res: -0x%04X\n", -res);
                  return -1;
              }
          }

      Parámetro

      Ejemplo

      Descripción

      sub_topic

      /a18wP/LightSwitch/user/get

      El topic sobre el cual el dispositivo tiene permiso de suscripción (Subscribe). El dispositivo puede recibir mensajes de IoT Platform mediante este topic.

      Puede consultar los topics personalizados en la consola de IoT Platform. En la página Product Details, haga clic en la pestaña Topic Categories. En la pestaña que aparece, haga clic en Topic Category. Para obtener más información, consulte What is a topic.

      En este ejemplo, se utiliza el topic personalizado predeterminado. Descripción de parámetros:

      • a1oGs indica la clave ProductKey del dispositivo.

      • LightSwitch indica el nombre DeviceName del dispositivo.

    • Especifique un topic que el dispositivo pueda usar para enviar mensajes. Ejemplo: /a18wP******/LightSwitch/user/update. A continuación, especifique el contenido del mensaje que desea enviar. Código de ejemplo:

      Nota

      Si desea utilizar esta función, elimine el comentario del código encerrado entre combinaciones de barra diagonal y asterisco (/**/).

           {
              char *pub_topic = "/a18wP******/LightSwitch/user/update";
              char *pub_payload = "{\"id\":\"1\",\"version\":\"1.0\",\"params\":{\"LightSwitch\":0}}";
              res = aiot_mqtt_pub(mqtt_handle, pub_topic, (uint8_t *)pub_payload, (uint32_t)strlen(pub_payload), 0);
              if (res < 0) {
                  printf("aiot_mqtt_sub failed, res: -0x%04X\n", -res);
                  return -1;
              }
          }

      Parámetro

      Ejemplo

      Descripción

      pub_topic

      /a18wP/LightSwitch/user/update

      El topic sobre el cual el dispositivo tiene permiso de publicación (Publish). El dispositivo puede usar este topic para enviar mensajes a IoT Platform.

      Puede consultar los topics personalizados en la consola de IoT Platform. En la página Product Details, haga clic en la pestaña Topic Categories. En la pestaña que aparece, haga clic en Topic Category. Para obtener más información, consulte What is a topic.

      En este ejemplo, se utiliza el topic personalizado predeterminado. Descripción de parámetros:

      • a1oGs indica la clave ProductKey del dispositivo.

      • LightSwitch indica el nombre DeviceName del dispositivo.

      pub_payload

      {\"id\":\"1\",\"version\":\"1.0\",\"params\":{\"LightSwitch\":0}}

      El mensaje que se envía a IoT Platform.

      En este ejemplo, se utiliza un topic personalizado. Puede usar formatos de mensaje personalizados.

  3. En el directorio raíz del SDK, ejecute el comando make.

    Se genera el archivo ejecutable de código de ejemplo ./output/mqtt-basic-demo.

Resultado de la ejecución

En el directorio raíz del SDK, ejecute el siguiente comando para ejecutar el archivo ejecutable:

./output/mqtt-basic-demo
  • Puede consultar el resultado de la ejecución en el dispositivo.

    • Los siguientes datos de registro indican que el dispositivo LightSwitch está conectado a IoT Platform.

      [1619768570.433][LK-0313] MQTT user calls aiot_mqtt_connect api, connect
      [1619768570.433][LK-0317] LightSwitch&a18wP******
      [1619768570.433][LK-0318] 933FE333F78F42E2AAD384F629C771277E06D459577942EA1F04ACFDFE******
      core_sysdep_network_establish host a18wP******.iot-as-mqtt.cn-shanghai.aliyuncs.com port 8883, type 0
      establish tcp connection with server(host='a18wP******.iot-as-mqtt.cn-shanghai.aliyuncs.com', port=[8883])
      success to establish tcp, fd=3
      local port: 49122
      [1619768570.599][LK-1000] establish mbedtls connection with server(host='a18wP******.iot-as-mqtt.cn-shanghai.aliyuncs.com', port=[8883])
      [1619768570.600][LK-1000] success to establish mbedtls connection, (cost 45134 bytes in total, max used 47870 bytes)
      [1619768570.644][LK-0313] MQTT connect success in 212 ms
      AIOT_MQTTEVT_CONNECT
    • Los siguientes datos de registro indican que el dispositivo LightSwitch se suscribe al topic /a18wP******/LightSwitch/user/get.

      [1620373302.144][LK-0309] sub: /a18wP******/LightSwitch/user/get

      Una vez que el dispositivo se suscribe correctamente al topic, puede regresar a la consola de IoT Platform. En la pestaña Topics de la página Device Details, busque el topic y haga clic en Publish Message en la columna Actions. En el cuadro de diálogo Publish Message, introduzca un mensaje, por ejemplo, This is a test message from Alibaba Iot Platform., para simular el envío de un mensaje desde IoT Platform al dispositivo.

    • Los siguientes datos de registro indican que el dispositivo LightSwitch usa el topic /a18wP******/LightSwitch/user/update para enviar un mensaje a IoT Platform.

      [1619768570.644][LK-0309] pub: /a18wP******/LightSwitch/user/update
      [LK-030A] > 7B 22 69 64 22 3A 22 31  22 2C 22 76 65 72 73 69 | {"id":"1","versi
      [LK-030A] > 6F 6E 22 3A 22 31 2E 30  22 2C 22 70 61 72 61 6D | on":"1.0","param
      [LK-030A] > 73 22 3A 7B 22 4C 69 67  68 74 53 77 69 74 63 68 | s":{"LightSwitch
      [LK-030A] > 22 3A 30 7D 7D       
  • Puede iniciar sesión en la consola de IoT Platform para consultar el estado del dispositivo y los registros de operación.

    • En el panel de navegación izquierdo, seleccione Devices > Devices. A continuación, busque el dispositivo y consulte su estado. Si el valor en la columna State/Enabled es Online, el dispositivo está conectado a IoT Platform.

    • En el panel de navegación izquierdo, seleccione Maintenance > Device Log. En la página Device Log, seleccione el producto NightLightSwitch. Puede consultar los registros que indican cuándo se conectaron los dispositivos del producto, se suscribieron a un topic y enviaron mensajes.

Si ocurre un error durante la depuración, corríjalo según las indicaciones. Para obtener más información, consulte Error codes received by devices.

Siguientes pasos

  • Una vez conectado el dispositivo a IoT Platform, puede gestionar y supervisar el dispositivo. Para obtener más información sobre las funciones de IoT Platform, consulte Features.

  • Para obtener más información sobre cómo usar Link SDK for C para configurar funciones avanzadas, consulte Overview.