Todos los productos
Search
Centro de documentos

IoT Platform:Conectar un dispositivo a IoT Platform y enviar datos

Última actualización: Sep 05, 2026

Después de obtener el certificado del dispositivo (ProductKey, DeviceName y DeviceSecret), conecte el dispositivo a una instancia de Enterprise Edition mediante MQTT. Utilice Link SDK for C para configurar un dispositivo simulado y enviar datos.

Requisitos previos

Debe tener un producto y un dispositivo creados. Para más información, consulte Create a product and device.

Antes de empezar

Todas las operaciones de este ejemplo usan permisos de usuario estándar. Si necesita ejecutar comandos que requieran permisos de administrador, utilice el comando sudo.

Preparar un entorno de desarrollo

  • En este ejemplo se usa Link SDK for C sobre Linux. Se recomienda Ubuntu 20.04 de 64 bits para compilar el SDK.

    Una instancia de Elastic Compute Service (ECS) actúa como el dispositivo simulado que se conecta a IoT Platform y envía los datos. Para conocer cómo adquirir una instancia de ECS, consulte Create an instance.

  • Para desarrollar y compilar el SDK se requiere el siguiente software:

    make (versión 4.1 o posterior) y gcc (versión 5.4.0 o posterior).

    Ejecute el siguiente comando para instalar el software:

    sudo apt-get install -y build-essential make gcc

Obtener Link SDK for C

Descargue el paquete comprimido de LinK SDK for C V4.x y cambie el nombre del archivo a LinkSDK.zip.

Desarrollar un programa de ejemplo para el dispositivo

Nota

Este ejemplo utiliza un tema específico de Thing Specification Language (TSL) para enviar datos. También puede usar temas personalizados para enviar datos a los dispositivos. Para más información, consulte Use custom topics.

  1. Inicie sesión en la instancia de ECS. Para más información, consulte Remote connection methods for ECS instances.

  2. Ejecute el siguiente comando para instalar GCC y Make:

    sudo apt-get install -y build-essential make gcc
  3. Cargue el archivo LinkSDK.zip y descomprímalo.

    1. Upload on-premises files to the ECS instance.

    2. Ejecute los siguientes comandos para instalar unzip:

      apt update
      apt install unzip
    3. Vaya al directorio donde se encuentra el archivo LinkSDK.zip y ejecute el siguiente comando para descomprimirlo:

      unzip LinkSDK.zip
  4. Vaya al directorio /LinkSDK/demos, abra el archivo data_model_basic_demo.c y configure los parámetros de verificación del dispositivo.

    /* TODO: Replace the following variables with the information about your device certificate. */
    char *product_key       = "a2******";
    char *device_name       = "Device1";
    char *device_secret     = "8c684ef*************";
    
    ......
    
    char  *mqtt_host = "iot-cn-******.mqtt.iothub.aliyuncs.com";

    Parámetro

    Ejemplo

    Descripción

    product_key

    a2

    El certificado del dispositivo que se usa para la verificación. Este certificado se guarda en su servidor local después de agregar el dispositivo.

    También puede consultar el certificado del dispositivo en la página Device Details de la consola de IoT Platform.

    device_name

    Device1

    device_secret

    8c684ef***

    mqtt_host

    iot-cn-.mqtt.iothub.aliyuncs.com

    El endpoint de MQTT. En la esquina superior derecha de la página Instance Details, haga clic en View Development Configurations. En el panel Development Configurations, consulte el endpoint.

    Para más información sobre las instancias, consulte Manage instance endpoints.

  5. Modifique el siguiente código de ejemplo para enviar datos de temperatura y humedad:

        /* The main thread goes to sleep. */
        while (1) {
            /* TODO: The following sample code shows how to submit properties and events. You can uncomment the sample code to view the result. */
            demo_send_property_post(dm_handle, "{\"temperature\": 30,\"humidity\": 42}");
            ......
    
            sleep(5);
        }
  6. Modifique el siguiente código de ejemplo para suscribirse a un tema personalizado. Este tema sirve para recibir comandos de IoT Platform.

    aiot_mqtt_sub(mqtt_handle, "/a2******/Device1/user/get", NULL, 1, NULL);
  7. En el directorio raíz /LinkSDK, ejecute los siguientes comandos para compilar el programa de ejemplo:

    make clean
    make

    El archivo generado data-model-basic-demo se almacena en el directorio ./output.

  8. Ejecute el siguiente comando para iniciar el programa de ejemplo:

    ./output/data-model-basic-demo

    Si el programa de ejemplo se ejecuta correctamente, se generan los siguientes registros:

    [1695199326.066][LK-0313] MQTT user calls aiot_mqtt_connect api, connect
    [1695199326.066][LK-032A] mqtt host: iot-cn-******.mqtt.iothub.aliyuncs.com
    [1695199326.066][LK-0317] user name: Device1&a2******
    establish tcp connection with server(host='iot-cn-******.mqtt.iothub.aliyuncs.com', port=[443])
    success to establish tcp, fd=3
    local port: 36030
    [1695199326.077][LK-1000] establish mbedtls connection with server(host='iot-cn-******.mqtt.iothub.aliyuncs.com', port=[443])
    [1695199326.122][LK-1000] success to establish mbedtls connection, (cost 45382 bytes in total, max used 48350 bytes)
    [1695199326.166][LK-0313] MQTT connect success in 92 ms
    AIOT_MQTTEVT_CONNECT
    [1695199326.166][LK-0309] sub: /a2******/Device1/user/get
    [1695199326.166][LK-0309] pub: /sys/a2******/Device1/thing/event/property/post
    
    [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 74 65 6D  70 65 72 61 74 75 72 65 | s":{"temperature
    [LK-030A] > 22 3A 20 33 30 2C 22 68  75 6D 69 64 69 74 79 22 | ": 30,"humidity"
    [LK-030A] > 3A 20 34 32 7D 2C 22 73  79 73 22 3A 7B 22 61 63 | : 42},"sys":{"ac
    [LK-030A] > 6B 22 3A 31 7D 7D                                | k":1}}          
    
    [1695199326.244][LK-0309] pub: /sys/a2******/Device1/thing/event/property/post_reply
    
    [LK-030A] < 7B 22 63 6F 64 65 22 3A  32 30 30 2C 22 64 61 74 | {"code":200,"dat
    [LK-030A] < 61 22 3A 7B 7D 2C 22 69  64 22 3A 22 31 22 2C 22 | a":{},"id":"1","
    [LK-030A] < 6D 65 73 73 61 67 65 22  3A 22 73 75 63 63 65 73 | message":"succes
    [LK-030A] < 73 22 2C 22 6D 65 74 68  6F 64 22 3A 22 74 68 69 | s","method":"thi
    [LK-030A] < 6E 67 2E 65 76 65 6E 74  2E 70 72 6F 70 65 72 74 | ng.event.propert
    [LK-030A] < 79 2E 70 6F 73 74 22 2C  22 76 65 72 73 69 6F 6E | y.post","version
    [LK-030A] < 22 3A 22 31 2E 30 22 7D                          | ":"1.0"}        
    
    [1695199326.244][LK-0A08] DM recv generic reply
    demo_dm_recv_handler, type = 0
    demo_dm_recv_generic_reply msg_id = 1, code = 200, data = {}, message = success
  9. Inicie sesión en la consola de IoT Platform. Busque la instancia de Enterprise Edition correspondiente y haga clic en ella para ir a la página Instance Details. Después, consulte el estado del dispositivo.

    1. En el panel de navegación izquierdo, elija Devices > Devices. En la página Devices, busque Device1 y revise su estado. El valor Online en la columna Device Status indica que el dispositivo está conectado a IoT Platform.

      image.png

    2. Haga clic en View en la columna Actions. En la página de detalles del dispositivo, haga clic en TSL Data. En la pestaña TSL Data, haga clic en Status. En la pestaña Status, consulte el estado del dispositivo.

      Los datos de temperatura y humedad se enviaron a IoT Platform mediante el código de ejemplo del archivo data_model_basic_demo.c.

      image.png

Pasos siguientes

Forward data to OTS