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
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.
Inicie sesión en la instancia de ECS. Para más información, consulte Remote connection methods for ECS instances.
-
Ejecute el siguiente comando para instalar GCC y Make:
sudo apt-get install -y build-essential make gcc -
Cargue el archivo
LinkSDK.zipy descomprímalo.-
Ejecute los siguientes comandos para instalar unzip:
apt update apt install unzip -
Vaya al directorio donde se encuentra el archivo
LinkSDK.zipy ejecute el siguiente comando para descomprimirlo:unzip LinkSDK.zip
-
Vaya al directorio
/LinkSDK/demos, abra el archivodata_model_basic_demo.cy 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
a2El 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
Device1device_secret
8c684ef***mqtt_host
iot-cn-.mqtt.iothub.aliyuncs.comEl 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.
-
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); } -
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); -
En el directorio raíz
/LinkSDK, ejecute los siguientes comandos para compilar el programa de ejemplo:make clean makeEl archivo generado
data-model-basic-demose almacena en el directorio./output. -
Ejecute el siguiente comando para iniciar el programa de ejemplo:
./output/data-model-basic-demoSi 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 -
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.
-
En el panel de navegación izquierdo, elija . 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.

-
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.
-