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

MKR1000 avec DHT22 : Surveillance température/humidité temps réel vers Azure

Composants et fournitures

Composant Quantité
Arduino MKR1000 1
Capteur température/humidité DHT22 1

Applications et services en ligne

À propos de ce projet

Paul DeCarlo a publié un excellent article sur l'envoi de données météo d'un Particle Photon vers Microsoft Azure. Je voulais reproduire cela avec le nouvel Arduino MKR1000.

Le Photon utilise un webhook pour envoyer les données du cloud Particle vers Azure. Comme le MKR1000 supporte HTTPS nativement, les données peuvent être envoyées directement vers Azure. Ce guide connecte votre MKR1000 à Azure et réutilise une grande partie du code serveur du projet Microsoft Connect the Dots.

Matériel

Un capteur DHT22 mesure température et humidité. Le DHT11 est aussi supportable par modification du code. Câblage sur breadboard :

Plus d'infos sur le DHT22 : Tutoriel Adafruit.

Arduino IDE

  1. Gestionnaire de cartes : installez la carte « Arduino SAMD Boards » (inclut MKR1000).
  2. Gestionnaire de bibliothèques : installez « WiFi101 », « DHT sensor library », « ArduinoJson », « RTCZero ».

HTTPS et certificats

Le MKR1000 supporte HTTPS mais la mémoire limitée impose d'installer manuellement les certificats des sites visités. Deux étapes :

  1. Téléversez le sketch « Firmware Updater » (fourni avec la librairie WiFi101) sur la carte.
  2. Téléchargez WiFi101 Firmware Updater, décompressez, lancez winc1500-uploader-gui.exe.
  3. Le certificat HTTPS pour Azure Event Hubs est émis pour servicebus.windows.net. Entrez ctd-ns.servicebus.windows.net dans l'outil, choisissez le port COM, et uploadez les certificats.

Sketch Arduino

  1. Clonez/téléchargez le sketch depuis GitHub.
  2. Éditez l'onglet ssid : renseignez votre SSID et mot de passe Wi‑Fi.
  3. Téléversez sur le MKR1000.
  4. Ouvrez le moniteur série : vérifiez l'envoi des données vers Azure.

Le sketch réutilise un Event Hub public du projet Connect the Dots. Visualisez les données sur connectthedotsdx.azurewebsites.net. Vos données seront mélangées à d'autres capteurs. Pour les différencier, modifiez displayname ou guid dans la fonction createJSON().

Créer votre propre Event Hub

Pour un Event Hub dédié : Visual Studio 2015 Community (gratuit) + abonnement Azure (essai gratuit possible).

  1. Clonez Connect the Dots : git clone https://github.com/Azure/connectthedots.git
  2. Ouvrez la solution AzurePrep dans connectthedots\Azure\AzurePrep. Exécutez en mode Release.
  3. Connectez-vous à Azure, autorisez l'accès, répondez aux questions du terminal pour créer les ressources. Nommez-les ctd<vos_initiales> (ex: ctddc).
  4. Dans Visual Studio, lancez la cible CreateWebConfig du projet AzurePrep. Un fichier web.config est généré sur le Bureau.
  5. Copiez web.config dans connectthedots\Azure\WebSite\ConnectTheDotsWebSite.
  6. Ouvrez la solution ConnectTheDotsWebsite dans connectthedots\Azure\WebSite. Ajoutez web.config au projet (clic droit → Add → Existing Item).
  7. Exécutez le site dans Microsoft Edge. Aucune donnée n'apparaîtra tant que le sketch MKR1000 n'est pas mis à jour.

Générer la clé SAS pour l'Event Hub

  1. Téléchargez Event Hubs Signature Generator (RedDog).
  2. Renseignez : namespace (ex: ctddc-ns), hub name (ehdevices), publisher/sender key name (D1), Token TTL (ex: 525600 minutes = 1 an).
  3. Dans le portail Azure (ancien) : Event Hubs → votre namespace → ehdevices → Configure → copiez la clé primaire pour D1.
  4. Collez la clé dans l'outil Signature Generator, cliquez Generate → copiez la signature générée.
  5. Dans le sketch Arduino, remplacez hostname[] par ctddc-ns.servicebus.windows.net et authSAS[] par la signature.
  6. Téléversez le sketch mis à jour. Vérifiez le moniteur série. Actualisez le site web : vos données apparaissent.

IoT Hub (alternative plus récente)

Azure IoT Hub est plus récent qu'Event Hub et peut être plus adapté. Il supporte device-to-cloud (comme ce projet) et cloud-to-device.

  1. Créez un IoT Hub dans le portail Azure.
  2. Téléchargez Device Explorer (SetupDeviceExplorer.msi).
  3. Dans le portail : IoT Hub → clé d'accès (icône clé) → iothubowner → copiez la chaîne de connexion (clé primaire).
  4. Dans Device Explorer : collez la chaîne de connexion → Update → onglet Management → Create → Device ID D1 → Create.
  5. Sélectionnez D1 → SAS Token → générez un token.
  6. Dans le sketch Arduino :
char hostname[] = "votrehub.azure-devices.net";
char authSAS[] = "SharedAccessSignature sr=votrehub.azure-devices.net%2fdevices%2fD1&sig=...&se=...";
String deviceName = "D1";
String uri = "/devices/" + deviceName + "/messages/events?api-version=2016-02-03";
  1. Modifiez la vérification de réponse dans sendEvent() : Event Hub renvoie HTTP 201, IoT Hub renvoie HTTP 204.
// Remplacez :
if (response.startsWith("HTTP/1.1 201"))
// Par :
if (response.startsWith("HTTP/1.1 204"))
  1. Téléversez. Dans Device Explorer, onglet Data → Monitor pour voir les données arrivant dans l'Event Hub.

Ce projet utilise HTTP POST pour l'envoi device-to-cloud. Des bibliothèques Azure IoT Hub existent pour Arduino mais ne sont pas encore très « Arduino-like ». Pour recevoir des données du cloud, elles peuvent aider. Voir aussi l'article de Mohan Palanisamy sur l'envoi de données IoT Hub vers MKR1000.

Pensez à supprimer/désactiver les ressources Azure inutilisées pour éviter des frais. Le projet AzurePrep inclut un projet ClearResources pour nettoyer.

Ressources et outils

Schémas

Photo du câblage fournie (pas de pièce Fritzing MKR1000). Voir détails dans le texte.

Processus de fabrication

  1. Capteurs Arduino : Types, Applications et Projets Réels
  2. Capteurs d'humidité : Fonctionnement et applications clés
  3. Capteur DHT11 : Fonctionnement et applications clés
  4. Construire un système aéroponique automatisé avec Raspberry Pi et capteur d'humidité
  5. Vérifier et calibrer votre capteur d'humidité pour des mesures précises
  6. Projet capteur DHT11 température/humidité avec indicateurs LED et buzzer piézo
  7. Enregistreur de Température et Humidité Arduino avec DHT11 et Shield Ethernet
  8. Moniteur de Température et Horloge Temps Réel Arduino avec Écran TFT 3.2"
  9. Tour de Capteurs avec Arduino Cloud : Température, Mouvement et Gaz