Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Télémétrie du capteur 2.0.1

Sensor Telemetry 2.0.1 Conduisez les données de température vers Microsoft Azure IoT Hub et surveillez les données à distance à partir d'une application Windows Universal. Remasterisé numériquement !

Histoire

MISE À JOUR :Le projet Sensor Telemetry a été remasterisé numériquement. Mis à jour le 17 mai 2017 et renommé Sensor Telemetry 2.0.1

Introduction

Aperçu

Dans ce projet, nous surveillerons un capteur de température (MCP9808 ) et envoyer les relevés de télémétrie à un Microsoft Azure IoT Hub où un Stream Analytics La tâche traitera les messages et les écrira dans un SQL Azure Base de données tableau. Nous utiliserons les applications mobiles pour afficher l'historique des lectures du capteur.

L'Application

Le projet contient deux applications Windows universelles (sur la plate-forme Windows universelle, UWP) qui partagent environ 99% du code. L'un est destiné au Raspberry Pi (ou ARM) et l'autre aux plates-formes x86 ou x64.

La version IoT de l'application s'exécute sur le Raspberry Pi et lit la température du MCP9808. L'application envoie des événements de télémétrie à Azure IoT Hub et au SignalR moyeu. Cette version écoutera également les commandes d'Azure IoT Hub.

La version client, démarrée sur un ordinateur, écoutera les mises à jour des capteurs du hub SignalR et les affichera à l'écran. Cette version enverra également des commandes à la version IoT via Azure IoT Hub.

Technologies

L'application de ce projet est basée sur le MVVM (Modèle-Vue-VueModèle) et a été construit à l'aide du prisme bibliothèque et utilise Prism.Unity pour le IoC (Inversion de contrôle) conteneur. En plus de ces bibliothèques, l'application utilise l'Agrégateur d'événements trouvé dans le Prism.Event bibliothèque pour créer, au mieux, une architecture purement événementielle. L'application utilise cette bibliothèque pour permettre aux modules internes de communiquer tout en restant faiblement couplés.

L'application utilise également SignalR sur Azure Mobile App pour permettre à plusieurs instances de l'application de communiquer entre elles. Les relevés de température sont « diffusés » à tous les clients fonctionnant à distance afin qu'ils puissent recevoir les relevés du capteur de température à afficher dans la vue principale.

Architecture

Au cœur de l'application se trouve la bibliothèque MCP9808 construite en tant que projet distinct pouvant être réutilisé dans d'autres applications. Ce projet est développé comme une bibliothèque UWP qui peut être utilisée dans n'importe quelle application Windows 10. Si la bibliothèque est utilisée sur un appareil qui n'a pas de I2C bus, la bibliothèque ne renverra aucun objet périphérique. Cette approche peut être utilisée pour "détecter" un capteur et ignorer gracieusement la bibliothèque lorsqu'un capteur n'est pas trouvé.

Dans l'application cliente UWP, plusieurs blocs constituent l'application globale. Les vues sont les pages visibles et chaque vue a un modèle de vue responsable de l'état de la vue. Il existe trois référentiels :les paramètres des applications (IApplicationSettingsRepository ), informations de débogage (IDebugConsoleRepository ) et lire et écrire le MCP9808 (ITemperatureRepository ). Il existe deux classes concrètes construites autour de ITemperatureRepository ; l'un enveloppe la bibliothèque MCP9808 et l'autre est un périphérique nul utilisé lorsque l'application ne s'exécute pas sur le Raspberry Pi.

La classe Mcp9808TemperatureRepository  surveille le MCP9808 à l'aide du service de minuterie et publie des informations sur la température via l'agrégateur d'événements interne chaque fois que la lecture de la température ou l'état d'alerte change. Un nouvel événement est envoyé uniquement lorsque la lecture actuelle est différente de la lecture précédente.

Il existe également une série de services définis par IBackgroundService  qui s'exécutent en arrière-plan pour diverses activités.

Le diagramme ci-dessous représente une vue de haut niveau de l'architecture et de la connectivité entre les différents blocs et services.

Service de télémétrie

Ce service surveille l'événement de changement de température (via un abonnement) et envoie un message à Azure Service Bus Event Hub chaque fois que la température change.

Service de minuterie

Ce service simple est un minuteur qui publie un événement toutes les 500 millisecondes et est utilisé par les modèles de vue pour afficher l'heure actuelle sur une vue. Il est également utilisé par le Mcp9808TemperatureRepository  pour lire le capteur une fois par seconde. Les arguments d'événement timer incluent un compteur qui peut être utilisé avec la fonction mod pour diviser facilement l'intervalle de timer en la longueur souhaitée. Il existe une méthode appelée IsMyInterval(TimeSpan interval) sur l'argument d'événement qui fait le calcul pour vous. Tout ce que vous avez à faire est de fournir l'intervalle sous forme de TimeSpan  objet.

Service de surveillance des broches d'alerte

Ce service surveille l'état de la broche GPIO connectée à la broche d'alerte sur le MCP9808. Lorsque la valeur du GPIO est modifiée, ce service publie un événement.

Service LED

Ce service est chargé d'allumer et d'éteindre les LED. Cela se fait en surveillant (via un abonnement) l'événement de changement de température qui inclut également l'état d'alerte du MCP9808. Lorsque l'état d'alerte change, les LED sont mises à jour en conséquence.

Service de surveillance des boutons poussoirs

Ce service surveille la broche GPIO connectée au bouton poussoir et publie un événement lorsque le bouton est relâché. Cet événement est capté par le Mcp9808TemperatureRepository  lorsque l'appareil est en mode de réinitialisation d'alerte manuelle (mode d'interruption MCP9808). Les événements de débogage sont également publiés afin que l'état du bouton puisse être affiché dans la console de débogage.

Service de relais de notification

Le service surveille le hub SignalR et l'agrégateur d'événements interne et relaie les messages entre les deux en fonction d'un mappage prédéfini (à l'aide de EventRelayMap  classer). Cela permet essentiellement à l'application d'être uniquement consciente du système d'événements interne et toujours capable d'envoyer et de recevoir des messages avec d'autres instances de l'application.

Service de console de débogage

Ce service surveille les applications (via un abonnement) pour les événements de débogage et les ajoute à une collection interne. Il implémente également DebugConsoleRepository , qui permet à la vue de la console de débogage d'afficher ces événements dans l'application via le modèle de vue.

Initialisation de l'application

Lorsque l'application démarre, elle lance la StartPage  view first, qui appelle automatiquement le StartPageViewModel . Ce modèle de vue met tout en place avant de se lancer dans la vue principale.

Mise en route

Exigences du circuit

Le circuit nécessite une grande planche à pain sans soudure et, en option, un cordonnier en forme de T et un câble plat (j'utilise la version vendue par Vilros). La planche à pain peut être obtenue à partir d'une multitude d'endroits (j'ai acheté dans les magasins locaux et sur Amazon). Le circuit utilise également un bouton-poussoir tactile momentané à quatre broches. Il existe de nombreux types; tout fera l'affaire. Enfin, pour le capteur de température, j'utilise la carte de déploiement de capteur de température I2C haute précision MCP9808 d'Adafruit.

Le circuit peut être construit sans le cordonnier. Suivez simplement le diagramme alternatif de la maquette à la fin du projet.

Assemblage du circuit

Utilisez ce guide pour assembler le circuit en utilisant le schéma situé près du bas de la page comme guide (remarque :la couleur des fils est facultative et a été sélectionnée pour aider à rendre le circuit facile à suivre quand il est construit).

Vous trouverez ci-dessous quelques photos du circuit que j'ai construit à l'aide du cordonnier.


Exigences Microsoft Azure

Si vous n'avez pas de compte Azure, vous devrez en créer un. Vous pouvez obtenir un crédit de 200 $ lorsque vous démarrez votre compte. Accédez à azure.com  et cliquez sur le lien COMPTE GRATUIT . Si vous avez déjà un compte, connectez-vous au portail à l'adresse portal.azure.com .

REMARQUE :ce guide n'est pas un guide exhaustif de configuration d'Azure. Vous devrez peut-être vous familiariser avec le portail si vous ne l'avez jamais utilisé auparavant. Je vais parcourir les étapes nécessaires à ce projet du mieux que je peux.

Laissez-vous connecté au portail Azure pendant tout le processus d'installation. Vous devrez vous y référer plusieurs fois.

Configuration Azure IoT Event Hub



Créer un appareil

Azure IoT Hub requiert que chaque appareil soit identifié et enregistré de manière unique dans le hub à des fins de sécurité. Un appareil peut être enregistré à l'aide du SDK et du code Azure, mais pour ce projet, nous utiliserons l'explorateur d'appareils disponible dans le SDK Azure.




Configuration de la base de données Azure SQL

Les données de télémétrie seront stockées dans une base de données Azure SQL. Utilisez le portail pour créer la base de données.




Créer la table de base de données

La table utilisée sera créée manuellement. Le déploiement de Code First peut être utilisé dans les applications mobiles, mais la table créée ne sera pas compatible avec Stream Analytics.




Créer le plan de service d'application

Le plan App Service est requis pour créer un App Service.

Créez l'App Service ( Application mobile

Le site Web et le hub SignalR fonctionneront avec un service d'application.



Configuration Azure Stream Analytics

Le travail Stream Analytics surveillera les événements de données sur l'IoT Hub et les écrira dans une base de données SQL Server. Le travail consistera en une entrée (l'IoT Hub) et une sortie (la table SQL) et une requête qui choisit les champs à utiliser.





Configuration du logiciel

À l'aide du lien du référentiel en bas de la page, téléchargez le code sous forme de fichier zip ou clonez le référentiel sur votre ordinateur et ouvrez le projet dans Visual Studio .

Configurer et publier l'application mobile

L'application Web (située dans le dossier Web) doit être publiée sur Azure App Service.



Enter the IoT Hub Credentials

Before running the application, you will need to enter your IoT Hub device credentials into the code.



Enter the Mobile App URL

The Mobile App URL also needs to be entered into the code.

Read More Detail :Sensor Telemetry 2.0.1


Processus de fabrication

  1. Qu'est-ce que l'étalonnage du capteur - Définition et son application
  2. Capteur de rythme cardiaque – Fonctionnement et application
  3. Bibliothèque Python du capteur de température TMP006 utilisant Raspberry pi,
  4. Capteur de mouvement utilisant Raspberry Pi
  5. Capteur d'humidité du sol Raspberry Pi
  6. Test du capteur DS18B20
  7. Capteur de température Raspberry Pi
  8. Télémétrie du capteur 2.0.1
  9. Capteur d'émotion/EEG