Utilice el programa de ejemplo data_model_basic_demo para simular un dispositivo de alumbrado público y conectarlo a IoT Platform mediante el SDK de C.
Notas importantes
Los pasos de este tema se ejecutan como usuario estándar. Si una operación requiere permisos administrativos, anteponga sudo al comando.
Preparar el entorno de desarrollo
El SDK de C del lado del dispositivo se ejecuta en Linux. Compílelo en un entorno Ubuntu 16.04 de 64 bits.
-
Software obligatorio:
make 4.1 o posterior, gcc 5.4.0 o posterior.
Comando de instalación:
sudo apt-get install -y build-essential make gcc
Procedimiento
-
Descargue el SDK de C para dispositivos : C SDK 4.x.
-
Descomprima el archivo del SDK de C y modifique la información del certificado del dispositivo.
Descargue data_model_basic_demo.c y utilícelo para reemplazar el archivo en
\LinkSDK\demos. Actualice los siguientes parámetros:char *product_key = "a2***"; char *device_name = "device1"; char *device_secret = "8c684ef***"; ... ... char *mqtt_host = "a2***.iot-as-mqtt.cn-shanghai.aliyuncs.com";Parámetro
Ejemplo
Descripción
mqtt_host
-
Instancias públicas nuevas:
iot-cn-***.mqtt.iothub.aliyuncs.com -
Instancias públicas anteriores:
a2***.iot-as-mqtt.cn-shanghai.aliyuncs.com
Endpoint de ingesta MQTT para el dispositivo.
-
Instancias públicas nuevas: En la página Instance Details, haga clic en View Development Configurations. El endpoint aparece en el panel Development Configurations.
-
Instancias públicas anteriores: El formato del endpoint es
${YourProductKey}.iot-as-mqtt.${YourRegionId}.aliyuncs.com.
product_key
a2***Certificado del dispositivo guardado al agregar el dispositivo.
También puede consultar el certificado en la página Device Details de la consola de IoT Platform. Obtain a device certificate.
device_name
device1device_secret
8c684ef*** -
-
En la máquina virtual Linux, instale el software obligatorio.
sudo apt-get install -y build-essential make gcc Cargue el directorio
LinkSDKmodificado en su máquina virtual Linux.-
En el directorio raíz del SDK
/LinkSDK, ejecute el comandomakepara compilar el programa de ejemplo.make clean makeEl binario compilado
data-model-basic-demose encuentra en./output. -
Ejecute el programa de ejemplo.
./output/data-model-basic-demoSalida esperada:
root@xxx:~/linkSDK# ./output/data-model-basic-demo [1637041632.700][LK-0313] MQTT user calls aiot_mqtt_connect api, connect [1637041632.700][LK-032A] mqtt host: axxx.iot-as-mqtt.cn-shanghai.aliyuncs.com [1637041632.700][LK-0317] user name: device1&axxx,0 [1637041632.700][LK-0318] password: 86761xxx¥21D establish tcp connection with server(host='axxx.iot-as-mqtt.cn-shanghai.aliyuncs.com', port=[443]) success to establish tcp, fd=3 local port: 35604 [1637041632.711][LK-1000] establish mbedtls connection with server(host='axxx.iot-as-mqtt.cn-shanghai.aliyuncs.com', port=[443]) [1637041632.766][LK-1000] success to establish mbedtls connection, (cost 45252 bytes in total, max used 47988 bytes) [1637041632.811][LK-0313] MQTT connect success in 108 ms AIOT_MQTTEVT_CONNECT [1637041632.811][LK-0309] pub: /sys/axxx/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 4C 69 67 68 74 43 75 72 72 65 6E | s":{"LightCurren [LK-030A] > 74 22 3A 20 31 2E 35 7D 2C 22 73 79 73 22 3A 7B | t": 1.5},"sys":{ [LK-030A] > 22 61 63 6B 22 3A 31 7D 7D | "ack":1}} [1637041632.833][LK-0309] pub: /sys/axxx/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"} [1637041632.833][LK-0A08] DM recv generic reply demo_dm_recv_handler, type = 0 msg_id = 1, code = 200, data = {}, message = success -
En la consola de IoT Platform, vaya a la página de Public Instance. Compruebe el estado del dispositivo.
Seleccione . En la página Devices, introduzca
device1en el cuadro de búsqueda DeviceName para localizar el dispositivo deseado. Compruebe que el estado del dispositivo sea Online.-
Haga clic en View en la columna Actions. En la página Device Details, haga clic en la pestaña TSL Data y luego en Running Status.
El ejemplo data_model_basic_demo.c reporta el valor de corriente de funcionamiento.
En la pestaña Running Status, la propiedad Operating Current muestra un valor de 1.5 A, lo cual indica que el dispositivo ha reportado correctamente este valor de propiedad.
Siguientes pasos
Ahora puede subscribe to device messages from the server.