Une fois que vous avez obtenu le certificat de l'appareil (ProductKey, DeviceName et DeviceSecret), connectez-le à une instance Enterprise Edition via MQTT. Utilisez le Link SDK for C pour configurer un appareil simulé et soumettre des données.
Prérequis
Vous avez créé un produit et un appareil. Pour plus d'informations, consultez la rubrique Créer un produit et un appareil.
Avant de commencer
Toutes les opérations de cet exemple utilisent les autorisations d'un utilisateur standard. Pour effectuer des opérations nécessitant des autorisations d'administrateur, exécutez la commande sudo.
Préparer l'environnement de développement
-
Cet exemple utilise le Link SDK for C sous Linux. Nous recommandons Ubuntu 20.04 64 bits pour compiler le SDK.
Une instance Elastic Compute Service (ECS) sert d'appareil simulé qui se connecte à IoT Platform et soumet des données. Pour savoir comment acheter une instance ECS, consultez la rubrique Créer une instance.
-
Les logiciels suivants sont requis pour développer et compiler le SDK :
make (version 4.1 ou ultérieure) et gcc (version 5.4.0 ou ultérieure)
Exécutez la commande suivante pour installer les logiciels :
sudo apt-get install -y build-essential make gcc
Obtenir le Link SDK for C
Téléchargez le package compressé LinK SDK for C V4.x et renommez-le en LinkSDK.zip.
Développer un exemple de programme pour l'appareil
Cet exemple utilise un topic spécifique au langage de spécification des objets (TSL) pour soumettre des données. Vous pouvez également utiliser des topics personnalisés pour envoyer des données aux appareils. Pour plus d'informations, consultez la rubrique Utiliser des topics personnalisés.
Connectez-vous à l'instance ECS. Pour plus d'informations, consultez la rubrique Méthodes de connexion à distance aux instances ECS.
-
Exécutez la commande suivante pour installer GCC et Make :
sudo apt-get install -y build-essential make gcc -
Téléchargez le fichier
LinkSDK.zipet décompressez-le.-
Exécutez les commandes suivantes pour installer unzip :
apt update apt install unzip -
Accédez au répertoire contenant le fichier
LinkSDK.zipet exécutez la commande suivante pour le décompresser :unzip LinkSDK.zip
-
Accédez au répertoire
/LinkSDK/demos, ouvrez le fichierdata_model_basic_demo.cet configurez les paramètres de vérification de l'appareil./* 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";Paramètre
Exemple
Description
product_key
a2Certificat de l'appareil utilisé pour la vérification. Ce certificat est enregistré sur votre serveur local après l'ajout de l'appareil.
Vous pouvez également afficher le certificat de l'appareil sur la page Device Details de la console IoT Platform.
device_name
Device1device_secret
8c684ef***mqtt_host
iot-cn-.mqtt.iothub.aliyuncs.comEndpoint MQTT. Dans le coin supérieur droit de la page Instance Details, cliquez sur View Development Configurations. Dans le panneau Development Configurations, affichez l'endpoint.
Pour plus d'informations sur les instances, consultez la rubrique Gérer les endpoints des instances.
-
Modifiez l'exemple de code suivant pour soumettre les données de température et d'humidité :
/* 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); } -
Modifiez l'exemple de code suivant pour vous abonner à un topic personnalisé. Le topic personnalisé est utilisé pour recevoir les commandes provenant d'IoT Platform.
aiot_mqtt_sub(mqtt_handle, "/a2******/Device1/user/get", NULL, 1, NULL); -
Dans le répertoire racine
/LinkSDK, exécutez les commandes suivantes pour compiler l'exemple de programme :make clean makeLe fichier généré
data-model-basic-demoest stocké dans le répertoire./output. -
Exécutez la commande suivante pour lancer l'exemple de programme :
./output/data-model-basic-demoSi l'exemple de programme s'exécute comme prévu, les journaux suivants sont générés :
[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 -
Connectez-vous à la console IoT Platform, recherchez l'instance Enterprise Edition cible et cliquez dessus pour accéder à la page Instance Details, puis affichez le statut de l'appareil.
-
Dans le volet de navigation de gauche, choisissez . Sur la page Devices, recherchez Device1 et affichez le statut de l'appareil. La valeur Online dans la colonne Device Status indique que l'appareil est connecté à IoT Platform.

-
Cliquez sur View dans la colonne Actions. Sur la page des détails de l'appareil, cliquez sur TSL Data. Sous l'onglet TSL Data, cliquez sur Status. Sous l'onglet Status, affichez le statut de l'appareil.
Les données de température et d'humidité sont soumises à IoT Platform à l'aide de l'exemple de code du fichier
data_model_basic_demo.c.
-