IOT et industrie : Implémentez la maintenance prédictive IoT avec PubNub et Azure Machine Learning

L’un des principaux avantages d’un système industriel basé sur l’Internet des objets est la maintenance prédictive. Sur la base des métriques ingérées par les appareils connectés, un algorithme d’apprentissage automatique détecte les anomalies pour prédire les pannes potentielles. Cela permet non seulement d’économiser quelques millions de dollars pour les entreprises, mais également de minimiser les temps d’arrêt liés au traitement d’équipements défectueux.

Cette série de didacticiels aidera les développeurs à appliquer la maintenance prédictive aux appareils connectés au PubNub Data Stream Network (DSN), un service de réseau de streaming tiers mondial. Il explorera les concepts du support PubNub récemment annoncé pour MQTT, ainsi que Functions, l’environnement sans serveur de PubNub. Il mettra en évidence comment intégrer avec des services cloud tiers tels que Microsoft Azure.

Le scénario de ce didacticiel consiste à utiliser une turbine simulée qui ingère des mesures clés telles que la vitesse du ventilateur, les vibrations, les niveaux de bruit et la température. Chaque métrique ingérée dans PubNub DSN sera envoyée à Azure ML pour prédire les éventuelles anomalies. Une fonction PubNub invoque le point de terminaison REST exposé par un modèle Azure ML formé pour prédire les anomalies. Lorsque le service Web signale à plusieurs reprises des anomalies, la fonction PubNub envoie un message à une alarme simulée. Si l’alarme reste sans surveillance pendant une durée prédéfinie, elle arrête automatiquement la turbine en question.

introduction

PubNub, la société de réseau de streaming de données en temps réel a été lancée en 2010 par Stephen Blum et Todd Greene avec une vision de développer un réseau de streaming pour les développeurs afin de créer des applications en temps réel aussi facilement que de créer une page Web. Le réseau de diffusion de données PubNub (DSN) est actuellement disponible dans plus de 15 points de présence (PoP) à travers le monde, permettant aux développeurs de créer des applications et des services connectés.

J’ai exploré PubNub lorsque je voulais connecter des appareils IoT distants à d’autres appareils. Ce qui m’a frappé instantanément, c’est le fait que je pouvais connecter deux appareils Raspberry Pi sans serveur fonctionnant dans le cloud. Avec moins de dix lignes de code, je pouvais facilement connecter les deux extrémités. Il existe plus de 70 SDK de PubNub couvrant les langages et plates-formes populaires, notamment JavaScript, .NET, Java, Python et Swift. Tout développeur peut être opérationnel avec la messagerie PubNub en un rien de temps.

Pour apprécier la puissance de PubNub, pensez-y comme un Content Delivery Network (CDN) mais pour les flux. PubNub consiste à diffuser ce qu’est Akamai au stockage d’objets. Chaque message envoyé à PubNub DSN sera livré sur 15 sites couvrant l’Asie, l’Europe et les Amériques. Soutenus par un SLA de 99,999%, ces messages sont garantis pour être livrés dans un délai de 250 ms partout dans le monde.

PubNub a ajouté la possibilité d’intercepter et de manipuler dynamiquement les messages dans le flux. Cela signifie que les développeurs peuvent prendre le contrôle des messages à la volée pour modifier le contenu et cibler différents canaux de diffusion. Cette programmabilité des flux est fournie via l’offre sans serveur appelée PubNub Functions. Comme AWS Lambda et Azure Functions, les développeurs peuvent écrire des extraits de code JavaScript qui sont invoqués chaque fois qu’un message est envoyé. Cela ouvre de nombreuses opportunités pour inspecter les données et effectuer des actions personnalisées.

Nous allons explorer trois acteurs clés du didacticiel: les appareils, PubNub DSN et Azure ML. En plus d’orchestrer le flux de messages entre les couches d’appareils constituées d’une turbine et d’une alarme, PubNub est responsable de l’appel du service Web ML hébergé dans Azure. Le gros du travail impliqué dans la formation et le déploiement du modèle d’apprentissage automatique est délégué à Azure ML.

Pour exécuter cet exemple, vous avez besoin d’un compte avec PubNub.com et Azure ML Studio.

La couche des appareils

Nous avons deux entités – une turbine et une alarme – dans la couche des appareils. Les deux sont connectés au DSN PubNub.

La turbine utilise des bibliothèques MQTT standard pour publier des messages sur PubNub. Récemment, PubNub a ajouté la prise en charge native de MQTT, qui permet aux développeurs de publier des messages sur le réseau à l’aide de bibliothèques MQTT familières telles que Paho. Le point de terminaison MQTT est exposé à mqtt.pndsn.com. Le mécanisme d’authentification pour le point de terminaison MQTT est basé sur la combinaison de clés d’éditeur et d’abonné disponibles sur admin.pubnub.com. L’ID client du client MQTT utilise ces clés pour construire un identifiant unique. L’authentification basée sur l’ID client garantit qu’aucune modification n’est apportée au programme MQTT standard. Ceci est très utile pour connecter des appareils existants qui utilisent MQTT au réseau PubNub. Reportez-vous à l’article de blog MQTT et à la documentation MQTT PubNub Bridge pour plus de détails sur la prise en charge de PubNub pour MQTT.

L’extrait de code ci-dessous représente une turbine envoyant des messages à PubNub via MQTT.


Installez les modules et les dépendances avant d’exécuter le script:

Premièrement, le code est basé sur la bibliothèque Paho qui est populaire parmi les développeurs. Le courtier pointe vers mqtt.pndsn.com, qui est le point de terminaison du pont MQTT hébergé. Remarquez la façon dont l’ID client est construit. Il utilise la combinaison des clés éditeur et abonné avec un identifiant client. Ceci est essentiel pour que les clients s’authentifient avec la plate-forme PubNub.

Dans des conditions normales, les données de télémétrie générées par le code Python tombent sous des niveaux acceptables. Nous pouvons changer les métriques lorsque nous devons simuler une anomalie en tournant la variable faute à Vrai.

Si vous êtes nouveau sur MQTT, reportez-vous au tutoriel de plongée profonde que j’ai publié sur The New Stack.

Le code publie les données de télémétrie dans la rubrique MQTT turbine / messages tout en vous abonnant au turbine / commande. Lorsqu’un dispositif d’alarme souhaite arrêter la turbine défectueuse, il publie la commande sur le même sujet.

Fait intéressant, les sujets MQTT, turbine / message et turbine / commande carte vers les canaux de PubNub, qui suivent la convention de dénomination de turbine.message et turbine.command. Tout client PubNub peut récupérer les données de télémétrie ou envoyer une commande à la turbine via ces canaux. Cette interopérabilité facilite l’intégration des clients MQTT avec les clients natifs PubNub.

Les clients Native PubNub peuvent également s’abonner aux rubriques à l’aide de la notation générique. Par exemple, vous abonner à turbine.* Cette rubrique permettrait au client de recevoir tous les messages envoyés au parent, turbine.

Dans la prochaine partie de cette série de didacticiels, nous allons créer le client PubNub natif en Python. Nous allons également implémenter l’informatique sans serveur via les fonctions PubNub pour appeler le modèle d’apprentissage automatique de maintenance prédictive dans Azure ML. Restez à l’écoute!

Microsoft est un sponsor de The New Stack.

Image de la fonctionnalité via Pixabay.

Laisser un commentaire