Intégration de capteur en tant que partenaire et client dans Azure Data Manager pour l’agriculture
Suivez les étapes ci-dessous pour vous inscrire en tant que partenaire de capteur afin de pouvoir commencer à envoyer vos données à votre instance Data Manager for Agriculture.
Étape 1 : Activer l’intégration des capteurs
- L’intégration du capteur doit être activée avant de pouvoir être lancée. Cette étape provisionne les ressources Azure internes requises pour l’intégration des capteurs pour l’instance Data Manager for Agriculture. Pour ce faire, exécutez la commande armclient suivante.
armclient patch /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.AgFoodPlatform/farmBeats/<datamanager-instance-name>?api-version=2023-06-01-preview "{properties:{sensorIntegration:{enabled:'true'}}}"
Exemple de sortie :
{
"id": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.AgFoodPlatform/farmBeats/<datamanager-instance-name>",
"type": "Microsoft.AgFoodPlatform/farmBeats",
"sku": {
"name": "A0"
},
"systemData": {
"createdBy": "<customer-id>",
"createdByType": "User",
"createdAt": "2022-03-11T03:36:32Z",
"lastModifiedBy": "<customer-id>",
"lastModifiedByType": "User",
"lastModifiedAt": "2022-03-11T03:40:06Z"
},
"properties": {
"instanceUri": "https://<datamanager-instance-name>.farmbeats.azure.net/",
"provisioningState": "Succeeded",
"sensorIntegration": {
"enabled": "True",
"provisioningState": "**Creating**"
},
"publicNetworkAccess": "Enabled"
},
"location": "eastus",
"name": "myfarmbeats"
}
- La tâche ci-dessus peut prendre quelques minutes. Pour connaître l’état du travail, la commande armclient suivante doit être exécutée :
armclient get /subscriptions/<subscription-id>/resourceGroups/<resource-group-name> /providers/Microsoft.AgFoodPlatform/farmBeats/<datamanager-instance-name>?api-version=2023-06-01-preview
- Pour vérifier s’il est terminé, examinez l’attribut mis en surbrillance. Elle doit être mise à jour en tant que « Réussite » de « Création » à l’étape précédente. L’attribut qui indique que l’intégration du capteur est activée est indiquée par provisioningState à l’intérieur de l’objet sensorIntegration.
Exemple de sortie :
{
"id": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.AgFoodPlatform/farmBeats/<datamanager-instance-name>",
"type": "Microsoft.AgFoodPlatform/farmBeats",
"sku": {
"name": "A0"
},
"systemData": {
"createdBy": "<customer-id>",
"createdByType": "User",
"createdAt": "2022-03-11T03:36:32Z",
"lastModifiedBy": "<customer-id>",
"lastModifiedByType": "User",
"lastModifiedAt": "2022-03-11T03:40:06Z"
},
"properties": {
"instanceUri": "https://<customer-host-name>.farmbeats.azure.net/",
"provisioningState": "Succeeded",
"sensorIntegration": {
"enabled": "True",
"provisioningState": "**Succeeded**"
},
"publicNetworkAccess": "Enabled"
},
"tags": {
"usage": "<sensor-partner-id>"
},
"location": "eastus",
"name": "<customer-id>"
}
Une fois l’état d’approvisionnement de l’intégration de capteur terminé, des objets d’intégration de capteur peuvent être créés.
Étape 2 : Créer une intégration de partenaire de capteur
L’étape d’intégration du partenaire de capteur doit être exécutée pour connecter le client au fournisseur. L’integrationId est utilisé ultérieurement dans la création de capteurs.
Documentation de l’API : Intégrations des partenaires de capteur - Créer ou mettre à jour
Étape 3 : Créer un modèle de données de capteur
Utilisez le modèle de données de capteur pour définir le modèle de télémétrie en cours d’envoi. Toutes les données de télémétrie envoyées par le capteur sont validées conformément à ce modèle de données.
Documentation de l’API : Modèles de données de capteur - Créer ou mettre à jour
Exemple de télémétrie
{
"pressure": 30.45,
"temperature": 28,
"name": "sensor-1"
}
Modèle de données de capteur correspondant
{
"type": "Sensor",
"manufacturer": "Some sensor manufacturer",
"productCode": "soil m",
"measures": {
"pressure": {
"description": "measures soil moisture",
"dataType": "Double",
"type": "sm",
"unit": "Bar",
"properties": {
"abc": "def",
"elevation": 5
}
},
"temperature": {
"description": "measures soil temperature",
"dataType": "Long",
"type": "sm",
"unit": "Celsius",
"properties": {
"abc": "def",
"elevation": 5
}
},
"name": {
"description": "Sensor name",
"dataType": "String",
"type": "sm",
"unit": "none",
"properties": {
"abc": "def",
"elevation": 5
}
}
},
"sensorPartnerId": "sensor-partner-1",
"id": "sdm124",
"status": "new",
"createdDateTime": "2022-01-24T06:12:15Z",
"modifiedDateTime": "2022-01-24T06:12:15Z",
"eTag": "040158a0-0000-0700-0000-61ee433f0000",
"name": "my sdm for soil moisture",
"description": "description goes here",
"properties": {
"key1": "value1",
"key2": 123.45
}
}
Étape 4 : Créer un capteur
Créez un capteur à l’aide de l’ID d’intégration et de l’ID de modèle de données de capteur correspondants. DeviceId et HardwareId sont des paramètres facultatifs, si nécessaire, vous pouvez utiliser les appareils - Créer ou mettre à jour pour créer l’appareil.
Documentation de l’API : Capteurs - Créer ou mettre à jour
Étape 5 : Obtenir le chaîne de connexion IoTHub
Obtenez les chaîne de connexion IoTHub pour envoyer (push) les données de télémétrie de capteur à la plateforme pour le capteur créé.
Documentation de l’API : Capteurs - Obtenir la chaîne d’Connecter ion
Étape 6 : Envoyer des données à l’aide d’IoT Hub
Utilisez les kits SDK d’appareil IoT Hub pour envoyer (push) les données de télémétrie à l’aide de la chaîne de connexion.
Pour tous les événements de télémétrie de capteur, « timestamp » est une propriété obligatoire et doit être au format ISO 8601 (AAAA-MM-DDTHH :MM :SSZ).
Vous êtes maintenant prêt à commencer à envoyer des données de capteur pour tous les capteurs à l’aide des chaîne de connexion respectives fournies pour chaque capteur. Toutefois, les données de capteur doivent être envoyées au format défini dans le modèle de données du capteur créé à l’étape 3. Reportez-vous à un exemple de schéma de télémétrie qui suit :
{
"timestamp": "2022-02-11T03:15:00Z",
"bar": 30.181,
"bar_absolute": 29.748,
"bar_trend": 0,
"et_day": 0.081,
"humidity": 55,
"rain_15_min": 0,
"rain_60_min": 0,
"rain_24_hr": 0,
"rain_day": 0,
"rain_rate": 0,
"rain_storm": 0,
"solar_rad": 0,
"temp_out": 58.8,
"uv_index": 0,
"wind_dir": 131,
"wind_dir_of_gust_10_min": 134,
"wind_gust_10_min": 0,
"wind_speed": 0,
"wind_speed_2_min": 0,
"wind_speed_10_min": 0
}
Étapes suivantes
- Testez nos API ici.