Cette rubrique explique comment utiliser MQTT.fx sur un ordinateur Windows pour simuler un appareil de passerelle cloud MQTT, le connecter à IoT Platform et envoyer des données.
Prérequis
Acheter une instance Enterprise Edition. Ce tutoriel utilise une instance Exclusive Enterprise Edition dans la région Chine (Shanghai).
-
Téléchargez et installez le logiciel MQTT.fx. Pour obtenir des instructions, consultez MQTT.fx.
Étant donné que les logiciels tiers sont régulièrement mis à jour, votre interface utilisateur peut différer.
-
Générez un certificat personnalisé.
Ce tutoriel nécessite un certificat personnalisé comprenant un certificat racine (
root-ca.crt), une clé privée côté serveur (server.key) et un certificat serveur (server.crt).Vous pouvez utiliser OpenSSL pour générer le certificat. Pour plus d’informations, consultez Générer un certificat personnalisé.
Informations générales
MQTT.fx est un client MQTT basé sur Eclipse Paho et écrit en Java. Il prend en charge Windows, macOS et Linux. Vous pouvez utiliser MQTT.fx pour vérifier qu’un appareil peut se connecter à IoT Platform et communiquer via des topics.
Les appareils peuvent utiliser l’une ou l’autre méthode avec des fonctionnalités telles que les certificats personnalisés, l’authentification côté serveur et les topics personnalisés pour se connecter à IoT Platform et communiquer avec celle-ci.
Pour plus d’informations sur l’authentification et la communication des appareils pour une passerelle cloud MQTT, consultez Présentation des passerelles cloud MQTT.
Connexion d’un appareil à l’aide de MQTT.fx (vérification unilatérale)
Étape 1 : Créer une passerelle cloud et un appareil
-
Créer une passerelle cloud MQTT. Lors de la configuration de la passerelle, utilisez le contenu du fichier
server.keypour le paramètre Server-side Private Key et le contenu du fichierserver.crtpour le paramètre Server Certificate.Configurez les autres paramètres comme suit : sélectionnez MQTT pour Protocol, conservez la valeur par défaut 1883 pour Custom Port Number, sélectionnez one-party verification pour Authentication Type, sélectionnez No pour Enable Data Parsing, sélectionnez No pour Enable Device X.509 Certificate Authentication et sélectionnez Do not enable pour Enable OCSP.
-
Dans la liste des passerelles cloud, copiez et enregistrez l’Gateway URL.
La liste des passerelles cloud affiche des informations telles que le nom de la passerelle, le protocole, l’Gateway URL et l’état.
Ajouter des appareils par lot. Pour ce tutoriel, ajoutez un seul appareil. Définissez MQTT Username sur
device_01et MQTT Password surhello123.
Étape 2 : Configurer la connexion MQTT.fx
Ouvrez le logiciel MQTT.fx. Dans la barre de menu, cliquez sur Extras et sélectionnez Edit Connection Profiles.
-
Sur la page Edit Connection Profiles, configurez les paramètres suivants.
-
Définissez les informations de base. Conservez les valeurs par défaut pour les autres paramètres.
Paramètre
Description
Profile Name
Saisissez un nom personnalisé.
Profile Type
Pour le type de connexion, sélectionnez MQTT Broker.
Broker Address
Saisissez le nom de domaine issu de l’Gateway URL que vous avez enregistré.
Broker Port
Définissez le numéro de port personnalisé. La valeur par défaut est
1883.Client ID
Facultatif. Un ID client personnalisé d’une longueur maximale de 64 caractères. Pour faciliter l’identification, utilisez l’adresse MAC ou le numéro de série (SN) de l’appareil.
-
Cliquez sur User Credentials, cochez la case Use Username/Password et définissez User Name et Password.
Les champs User Name et Password doivent correspondre aux champs MQTT Username et MQTT Password de l’appareil que vous avez ajouté.
Cliquez sur SSL/TLS, cochez la case Enable SSL/TLS et définissez Protocol sur TLSv1.2.
Sélectionnez CA certificate file, puis sélectionnez le chemin d’accès à votre fichier
root-ca.crt.
-
Une fois les paramètres configurés, cliquez sur OK.
-
Cliquez sur Connect.
Un voyant vert à droite indique une connexion réussie. Sur la console IoT Platform, accédez à la page Devices > Devices de votre instance. L’état de l’appareil
device_01est online.
Connexion d’un appareil à l’aide de MQTT.fx (vérification tierce)
Étape 1 : Créer une fonction d’authentification des appareils
Connectez-vous à la console Function Compute. Dans le volet de navigation de gauche, cliquez sur Services & Functions.
Dans la barre de navigation supérieure, sélectionnez la région China (Shanghai). Sur la page Services, cliquez sur Create Service.
Dans le panneau Create Service, saisissez un Service Name, par exemple IoT_Service, puis cliquez sur OK.
Sur la page Functions, cliquez sur Create Function.
-
Sur la page Create Function, configurez les paramètres suivants et cliquez sur Create.
Sélectionnez Create with Built-in Runtime pour la méthode de création. Pour Function Name, saisissez
three_party_auth. Pour Request Handler Type, sélectionnez Event Handler. Pour Runtime, sélectionnez Python 3.6. -
Sur la page Function Details, remplacez l’exemple de code par le code suivant et cliquez sur Deploy Code.
La fonction d’authentification renvoie le champ UserName en tant que deviceName.
# -*- coding: utf-8 -*- import logging import json import time import enum import random import string class Request: def __init__(self, json_str): self.clientId = None self.username = None self.password = None self.certificateCommonName = None for key, value in json.loads(json_str).items(): setattr(self, key, value) class Response: def __init__(self): self.deviceName = None self.result = 'true' self.message = 'success' def handler(self, request): # Verify the validity of the username and password based on your business requirements. self.deviceName = request.username return json.dumps(self.__dict__) def handler(event, context): request = Request(event) return Response().handler(request)
Étape 2 : Créer une passerelle cloud MQTT
-
Créer une passerelle cloud MQTT. Lors de la configuration de la passerelle, utilisez le contenu du fichier
server.keypour le paramètre Server-side Private Key et le contenu du fichierserver.crtpour le paramètre Server Certificate. Pour le service et la fonction Function Compute (FC) d’authentification des appareils, sélectionnez IoT_Service et three_part_auth que vous avez créés.Configurez les autres paramètres comme suit : définissez Protocol sur MQTT, conservez la valeur par défaut 1883 pour Custom Port Number, définissez Authentication Type sur Third-party Verification, définissez Enable Data Parsing sur No, définissez Enable Device X.509 Certificate Authentication sur No, définissez Enable OCSP sur Disabled et définissez Authorization sur AliyunIOTAccessingFCRole.
-
Dans la liste des passerelles cloud, copiez et enregistrez l’Gateway URL.
La liste des passerelles cloud affiche des informations telles que le nom de la passerelle, le protocole, l’Gateway URL et l’état.
Étape 3 : Configurer la connexion MQTT.fx
Ouvrez le logiciel MQTT.fx. Dans la barre de menu, cliquez sur Extras et sélectionnez Edit Connection Profiles.
-
Sur la page Edit Connection Profiles, configurez les paramètres suivants.
-
Définissez les informations de base. Conservez les valeurs par défaut pour les autres paramètres.
Paramètre
Description
Profile Name
Saisissez un nom personnalisé.
Profile Type
Pour le type de connexion, sélectionnez MQTT Broker.
Broker Address
Saisissez le nom de domaine issu de l’Gateway URL que vous avez enregistré.
Broker Port
Définissez le numéro de port personnalisé. La valeur par défaut est
1883.Client ID
Facultatif. Un ID client personnalisé d’une longueur maximale de 64 caractères. Pour faciliter l’identification, utilisez l’adresse MAC ou le numéro de série (SN) de l’appareil.
-
Cliquez sur User Credentials, cochez la case Use Username/Password et définissez User Name (par exemple,
threeParty_device_001) et Password.RemarqueUser Name : Doit contenir entre 4 et 32 caractères et peut inclure des lettres, des chiffres, des traits d’union (-), des traits de soulignement (_), des signes at (@), des points (.) et des deux-points (:). Le champ User Name doit être unique au sein du produit.
Password : Doit contenir entre 1 et 32 caractères et peut inclure des lettres, des chiffres, des traits d’union (-), des traits de soulignement (_), des signes at (@), des points (.) et des deux-points (:).
Cliquez sur SSL/TLS, cochez la case Enable SSL/TLS et définissez Protocol sur TLSv1.2.
Sélectionnez CA certificate file, puis sélectionnez le chemin d’accès à votre fichier
root-ca.crt.
-
Une fois les paramètres configurés, cliquez sur OK.
-
Cliquez sur Connect.
Un voyant vert à droite indique une connexion réussie. IoT Platform utilise le champ deviceName renvoyé par la fonction d’authentification FC,
threeParty_device_001, en tant que DeviceName pour l’appareil. La plateforme crée alors automatiquement l’appareil, qui apparaît comme étant online sur la page Devices > Devices de la console IoT Platform.
Envoi de données à l’aide d’un topic personnalisé
Dans MQTT.fx, cliquez sur Publish. Dans la zone de texte Publish, saisissez le topic personnalisé :
/home/garden/fountain.Dans l’éditeur de payload, saisissez le contenu du message et cliquez sur Publish.
Connectez-vous à la console IoT Platform. Dans votre instance, accédez à la page Maintenance > Log Service pour afficher les journaux Device-to-Cloud Messages. Pour plus d’informations, consultez Interroger les journaux côté cloud. Cliquez sur View pour ouvrir les détails du message, qui affichent le Topic, l’horodatage et le payload.