Fermer

avril 22, 2019

Développement d'applications DIY IoT pour Azure en trois étapes


Apprenez à créer et à programmer un capteur personnalisé Internet des objets (IoT) pour un concentrateur Azure IoT, et à utiliser et visualiser ces données dans une application ASP.NET Core MVC.

Pour les développeurs de logiciels, avec l'Internet des objets (IoT) signifie généralement se concentrer exclusivement sur le serveur. Les questions et problèmes typiques sont avant tout la sélection de fournisseurs de cloud ou de méthodes pour un stockage et une analyse efficaces des données. Cependant, il est tout aussi fascinant de regarder de plus près les "choses" réelles – leur construction et leur programmation -.

Un scénario complet de l'IoT en trois actes

Dans cet article de blog, nous créons un IoT de base. scénario et regardez-le d'un point de vue de bout en bout. Avec juste un peu de bricolage et de programmation, nous pouvons même créer un dispositif de capteur IoT personnalisé qui publie des données dans un hub Azure IoT. Ces données seront ensuite utilisées et visualisées dans une application ASP.NET Core MVC. Ce scénario complet est structuré en trois actes .

  • Acte 1 : préparation et configuration du noyau Azure IoT Hub
  • Acte 2 : création et programmation d'un Dispositif de capteur IoT fournissant des données pour Azure IoT Hub
  • Acte 3 : traitement et visualisation des données provenant d'Azure IoT Hub dans une application ASP.NET Core MVC

Acte 1: Préparations

Avant de pouvoir commencer Pour construire et programmer un appareil IoT réel, quelques étapes de préparation doivent être effectuées dans le Microsoft Azure Portal .

Création d'un hub IoT

  • Tout d'abord, un Azure IoT Hub. doit être créé en sélectionnant Créer une ressource Internet des objets IoT Hub .

 Créer un nouveau IoT Hub

Dans le étape suivante, vous devez configurer quelques paramètres obligatoires:

  • Abonnement: si plusieurs abonnements sont disponibles , il faut en sélectionner une qui est associée au groupe de ressources IoT
  • : si aucun groupe de ressources n’existe, il faut en créer un nouveau ici
  • Région: emplacement où le concentrateur IoT sera hébergé
  • Nom du concentrateur IoT: cela peut être choisi arbitrairement tant qu'il est encore disponible

 Configuration de base du concentrateur IoT

Ensuite, taille et échelle du hub IoT doit être configuré. Free Tier devrait suffire.

 Détermination de la taille et de la taille du hub IoT

Maintenant que le hub IoT a été créé avec succès, il constitue un véritable périphérique IoT (notre

Enregistrement d’un périphérique IoT

Sur le nouveau hub IoT, sélectionnez Périphériques IoT puis cliquez sur Ajouter pour enregistrer un nouveau périphérique. .

 Enregistrer un nouvel appareil IoT

À l'étape suivante, vous devez attribuer un nom à ce nouvel appareil (ici: DIY_IoT_Sensor). Après avoir cliqué sur Save il sera enregistré et associé à l'IdO. Hub.

 Configurer le nouvel appareil IoT

En sélectionnant l'appareil, sa page de propriétés s'ouvre. Elle contient des informations (entre autres) sur la chaîne de connexion de cet appareil . Cette chaîne de connexion sera requise ultérieurement pour y associer un périphérique physique réel. Il est donc temps de copier cette chaîne de connexion et de la sauvegarder pour une utilisation ultérieure.

 La chaîne de connexion de l'appareil sera nécessaire ultérieurement

Télécharger le code source

Pour la dernière étape de préparation, nous allons cloner l'exemple. application pour le scénario complet de bout en bout.

 $ git clone https://github.com/z1c0/diy-iot-sample.git[19659032unsetCeréférentielestcomposédedeuxdossiers/projets:
  • capteur : Projet Arduino contenant le code de programmation d'un microcontrôleur NodeMCU qui agit comme un capteur Microsoft Azure IoT.
  • webapp : Un ASP.NET. Application MVC principale, qui consommera et visualisera les données du capteur IoT.

Acte 2: le capteur IoT

Maintenant que tout est en place et que toutes les étapes de préparation ont été terminées avec succès, nous pouvons commencer à développer et à programmer le véritable IoT. capteur

Détecteur

La création d’un capteur physique nécessite généralement ng des morceaux de matériel. Dans ce cas, les composants suivants ont été utilisés:

  • Microcontrôleur NodeMCU : Le NodeMCU est un choix très populaire parmi les microcontrôleurs, car il est livré avec le WIFI intégré et possède une micro-USB. connecteur et peut être programmé à l'aide de la plate-forme Arduino . Il est également très bon marché à des prix aussi bas que 3 $.
  • Capteur de température et d'humidité DHT11 : Ce capteur est également utilisé fréquemment pour les projets de bricolage et de démonstration. Il offre une précision correcte et est disponible à moins de 1 dollar.

Le schéma suivant montre comment connecter le capteur et le microcontrôleur.

 Schéma du capteur de température et d'humidité DHT connecté au NodeMCU

 Schéma du capteur de température et d'humidité DHT connecté au logiciel de capteur NodeMCU

Le microcontrôleur NodeMCU peut être programmé à l'aide de Arduino IDE . Cet environnement de développement gratuit peut être téléchargé à partir du site Web Arduino et prend en charge un grand nombre de cartes et de microcontrôleurs de manière normalisée.

 L'IDE Arduino

Le microcontrôleur NodeMCU n'étant pas compatible pris en charge immédiatement, un logiciel supplémentaire doit d'abord être installé. Pour cela, la boîte de dialogue Préférences doit être ouverte via le menu Outils et cette adresse URL http://arduino.esp8266.com/stable/package_esp8266com_index.json Vous devez ajouter cette option à la zone de texte intitulée URL supplémentaires du gestionnaire de planches .

 Incluez la prise en charge de matériel supplémentaire

. Pour télécharger le module complémentaire, ouvrez le Outils - . - Board Manager entrez "esp8266" (ESP8266 est la puce utilisée pour NodeMCU et les autres microcontrôleurs) dans le champ de recherche et installez version 2.4.2 . ] de ce paquet.

 Support de téléchargement pour les cartes ESP8266

Note: La dernière version actuellement disponible du paquet esp8266 est 2.5.0 . Cependant, cette version a des problèmes de compatibilité avec le SDK Microsoft Azure IoT Arduino. Nous utilisons donc la version 2.4.2 .

Désormais, la carte NodeMCU devrait être disponible sous Outils - Conseil: menu et vous devez y être sélectionné.

 La prise en charge de NodeMCU est maintenant disponible

La dernière chose à faire avant de pouvoir compiler avec succès le code du référentiel précédemment cloné est d'installer deux ou trois bibliothèques nécessaires dans l'exemple de code.

Les bibliothèques Arduino peuvent être téléchargées en ouvrant le Libary Manager à Sketch - Inclure la bibliothèque - Gérer les bibliothèques… .

 Installation de nouvelles bibliothèques dans l'IDE Arduino

Il s'agit des bibliothèques nécessaires pour utiliser le SDK Arduino Microsoft Azure IoT et collecter des données à partir du capteur de température et d'humidité:

  • AzureIoTHub
  • AzureIoTUtility [1 9459024]
  • AzureIoTPTrocol_HTTP
  • Bibliothèque de capteurs DHT
  • Capteur unifié d'Adafruit

À présent, ouvrez l'esquisse Arduino sensor à partir du référentiel diy-iot-sample il doit être compilé sans erreur.

Avant de télécharger enfin l'esquisse sur le périphérique, une dernière étape de configuration est requise. Étant donné que NodeMCU n'a pas d'interface utilisateur et que l'esquisse ne fournit aucun mécanisme d'interaction, les paramètres de connexion pour WIFI et la chaîne de connexion Azure IoT (que nous avons copiées pour une utilisation ultérieure dans l'Acte 1) sont codés en dur.

 // TODO: définissez ces valeurs avant de télécharger l'esquisse
#define IOT_CONFIG_WIFI_SSID ""
#define IOT_CONFIG_WIFI_PASSWORD ""
#define IOT_CONFIG_CONNECTION_STRING "" 

Note: Pour des raisons de simplicité, ces paramètres sont gérés en tant que constantes de code. Assurez-vous de ne pas les enregistrer accidentellement dans GitHub ou dans un système de contrôle de source public!

Après avoir configuré ces paramètres, l'esquisse est prête à être téléchargée et notre tout nouvel appareil DIY IoT devrait déjà publier des données dans Azure IoT.

Test du capteur

Un moyen rapide de vérifier si le capteur fonctionne correctement et si les données publiées utilisent un outil appelé Azure IoT Device Explorer . Ceci est une petite application de test (Windows) qui peut être téléchargée ici et fournit un dépannage rapide dans Azure IoT Hub.

 Azure IoT Device Explorer

Si un système d'exploitation différent de celui utilisé Windows est utilisé, nous pouvons toujours vérifier si notre capteur fonctionne correctement à l'aide de la commande Azure CLI ( az ).

Après l'installation et le téléchargement de l'Azure CLI, nous devons enregistrer initialement:

 $ az login 

Ensuite, nous pouvons nous connecter à notre hub IoT en spécifiant simplement son nom et en surveillant les événements entrants.

 $ az iot hub monitor-events --nom-nom  [19659032] Si tout était configuré correctement, la sortie de la commande devrait ressembler à ceci: 
 À partir du moniteur d'événements, utilisez ctrl-c pour arrêter ...
{
  "un événement": {
    "origine": "DIY_IoT_Sensor",
    "charge utile": "{'humidité': 24.00, 'température': 22.00}"
  }
}
{
  "un événement": {
    "origine": "DIY_IoT_Sensor",
    "charge utile": "{'humidité': 32.00, 'température': 22.00}"
  }
} 

Acte 3: Visualisation des données de capteur IoT

Maintenant que nous savons que notre capteur développé sur mesure fournit des données IoT, nous souhaitons les visualiser à l'aide d'une application ASP.NET Core MVC . . Le code source de cette application se trouve dans le dossier webapp du référentiel précédemment cloné diy-iot-sample .

L'application utilise:

Avant de pouvoir exécuter l'application Web, vous devez définir quelques constantes pour pouvoir vous connecter au hub IoT:

 / / Endpoint compatible avec Event Hub
chaîne de const privé EventHubsCompatibleEndpoint = "...";

// Nom compatible avec Event Hub
private const string EventHubsCompatiblePath = "...";

// SharedAccessKeyName
private const string IotHubSasKey = "..."; 

Le moyen le plus simple de récupérer les valeurs correctes pour ces constantes utilise à nouveau la commande Azure CLI ( az ). [19659056] EventHubsCompatibleEndpoint :

 $ az iot hub show 
  --query properties.eventHubEndpoints.events.endpoint 
  --name  

EventHubsCompatiblePath :

 $ az iot hub show 
  --query properties.eventHubEndpoints.events.path 
  --name  

IotHubSasKey :

 $ az Voir la politique de la plaque tournante 
  --nom iothubowner 
  --query primaryKey 
  --hub-name  

Note: Pour des raisons de simplicité, ces paramètres sont gérés en tant que constantes de code. Assurez-vous de ne pas les commettre accidentellement dans GitHub ou dans un système de contrôle de source public!

Idéalement, utilisez les mécanismes intégrés d'ASP.NET Core pour le traitement des secrets .

Ensuite, l'application devrait commencer, se connecter à notre hub IoT et afficher des graphiques pour les données du dispositif de capteur entrant.

 Les données IoT visualisées dans une application ASP.NET MVC

IoT for Everyone!

sujet car il peut être abordé de plus d’une direction. L'accent et l'intérêt personnels peuvent se trouver du côté du client, du matériel de construction et des capteurs. Ou bien il peut traiter des données IoT entrantes dans un hub IoT, en y appliquant des techniques d'apprentissage automatique et d'IA. Cela peut également être du côté de la visualisation, où le défi consiste à condenser toutes ces données en graphiques et diagrammes faciles à comprendre. Quel que soit le domaine qui vous intéresse, il y a probablement au moins un scénario IoT qui attend exactement vos compétences et vos capacités de résolution de problèmes.


Les commentaires sont désactivés en mode de prévisualisation.




Source link