Utilisez la bibliothèque open source Paho MQTT C (pour les systèmes non embarqués) afin de connecter un appareil à Alibaba Cloud IoT Platform et d'échanger des messages.
Remarques importantes
Les étapes décrites dans cette rubrique sont exécutées en tant qu'utilisateur standard. Si une opération requiert des droits administrateur, préfixez la commande par sudo.
Prérequis
Un produit et un appareil ont été créés dans une instance depuis la console IoT Platform. Vous disposez d'un certificat d'appareil et d'un endpoint MQTT. Les informations du certificat incluent le ProductKey, le DeviceName et le DeviceSecret. Pour plus d'informations, consultez les rubriques suivantes :
Préparer l'environnement de développement
Cet exemple utilise Ubuntu 16.04 LTS comme environnement de développement. Exécutez les commandes suivantes pour installer les dépendances requises.
sudo apt-get update
sudo apt-get install build-essential git sed cmake
Télécharger la bibliothèque Paho MQTT C
-
Exécutez la commande suivante pour cloner la bibliothèque Paho MQTT C.
git clone https://github.com/eclipse/paho.mqtt.c.gitRemarqueCette démonstration a été créée à partir de la branche master. L'ID de commit est
f7799da95e347bbc930b201b52a1173ebbad45a7. -
Exécutez les commandes suivantes pour compiler et installer la bibliothèque Paho.
mkdir build cmake .. make -j sudo make install cd .. rm -rf build
Se connecter à IoT Platform
-
Téléchargez le package de démonstration. Le package décompressé contient les fichiers suivants :
Nom du fichier
Description
CMakeLists.txtFichier de configuration principal du projet.
src/samples/MQTTAsync_publish.cContient la logique de connexion de l'appareil à IoT Platform et d'échange de messages.
src/samples/aiot_mqtt_sign.cGénère les paramètres de connexion MQTT. Lors de l'exécution de aiot_c_demo.c, ce fichier appelle la fonction aiotMqttSign() pour calculer les paramètres username, password et clientId.
src/samples/CMakeLists.txtFichier de configuration du projet de démonstration.
-
Dans le fichier
src/samples/MQTTAsync_publish.c, mettez à jour les informations de l'appareil (ProductKey, DeviceName et DeviceSecret) avec vos propres informations de certificat d'appareil.#define EXAMPLE_PRODUCT_KEY "Your_ProductKey" #define EXAMPLE_DEVICE_NAME "Your_DeviceName" #define EXAMPLE_DEVICE_SECRET "Your_DeviceSecret" -
Dans le fichier
src/samples/MQTTAsync_publish.c,tcp://iot-0***********l.mqtt.iothub.aliyuncs.com:443représente le nom de domaine d'accès.RemarquePour plus d'informations sur les formats d'endpoint pour les instances publiques et Enterprise, consultez Consulter les informations sur l'endpoint de l'instance.
#define ADDRESS "tcp://iot-0***********l.mqtt.iothub.aliyuncs.com:443" Remplacez les fichiers originaux du répertoire de la bibliothèque Paho MQTT C par les fichiers correspondants issus du package de démonstration téléchargé.
-
Exécutez les commandes suivantes pour compiler le projet.
mkdir build // Run this command in the root directory of the project. cd build cmake .. make -j -
Une fois la compilation terminée, accédez au répertoire build et exécutez la commande suivante pour démarrer le programme.
./src/samples/MQTTAsync_publishSi le programme s'exécute correctement, la sortie de journal suivante indique que l'appareil est connecté à IoT Platform.
clientid: ty***1&a1****kc|timestamp=2524608000000,_v=paho-c-standard-1.0.0,securemode=3,signmethod=hmacsha256,lan=C| username: ty***1&a1****kc password: 1BB**************************************************3621 Waiting for publication of Hello World! on topic /sys/a1*****kc/ty********1/thing/event/property/post for client Successful connection Message with token value 1 delivery confirmed Successful disconnection