Share via


Sensorintegratie als partner en klant in Azure Data Manager for Agriculture

Volg de onderstaande stappen om u te registreren als sensorpartner, zodat u uw gegevens naar uw Data Manager for Agriculture-exemplaar kunt pushen.

Stap 1: Sensorintegratie inschakelen

  1. Sensorintegratie moet zijn ingeschakeld voordat deze kan worden gestart. In deze stap zijn interne Azure-resources vereist voor sensorintegratie voor Data Manager for Agriculture-exemplaar. U kunt dit doen door de volgende armclient-opdracht uit te voeren.
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'}}}"

Voorbeelduitvoer:

{
  "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"
}
  1. Het kan enkele minuten duren voordat de bovenstaande taak is voltooid. Als u de status van de taak wilt weten, moet de volgende armclient-opdracht worden uitgevoerd:
armclient get /subscriptions/<subscription-id>/resourceGroups/<resource-group-name> /providers/Microsoft.AgFoodPlatform/farmBeats/<datamanager-instance-name>?api-version=2023-06-01-preview
  1. Als u wilt controleren of het is voltooid, bekijkt u het gemarkeerde kenmerk. Deze moet in de vorige stap worden bijgewerkt als 'Geslaagd' van 'Maken'. Het kenmerk dat aangeeft dat de sensorintegratie is ingeschakeld, wordt aangegeven door provisioningState binnen het sensorIntegration-object.

Voorbeelduitvoer:

{
  "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>"
}

Zodra de inrichtingsstatus voor sensorintegratie is voltooid, kunnen sensorintegratieobjecten worden gemaakt.

Stap 2: Integratie van sensorpartner maken

De integratiestap van sensorpartner moet worden uitgevoerd om de klant te verbinden met de provider. De integrationId wordt later gebruikt bij het maken van de sensor.

API-documentatie: Sensor Partner-integraties - Maken of bijwerken

Stap 3: Sensorgegevensmodel maken

Gebruik sensorgegevensmodel om het model van telemetrie te definiƫren dat wordt verzonden. Alle telemetrie die door de sensor wordt verzonden, wordt gevalideerd volgens dit gegevensmodel.

API-documentatie: Sensorgegevensmodellen - Maken of bijwerken

Voorbeeldtelemetrie

{
	"pressure": 30.45,
	"temperature": 28,
	"name": "sensor-1"
}

Bijbehorend sensorgegevensmodel

{
  "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
  }
}

Stap 4: Sensor maken

Maak sensor met behulp van de bijbehorende integratie-id en sensorgegevensmodel-id. DeviceId en HardwareId zijn optionele parameters, indien nodig, kunt u de apparaten - Maken of bijwerken gebruiken om het apparaat te maken.

API-documentatie: Sensoren - Maken of bijwerken

Stap 5: IoTHub-verbindingsreeks ophalen

Download IoTHub verbindingsreeks om sensortelemetrie te pushen naar het platform voor de gemaakte sensor.

API-documentatie: Sensoren - Verbinding maken ion-tekenreeks ophalen

Stap 6: Gegevens pushen met IoT Hub

Gebruik IoT Hub Device SDK's om de telemetrie te pushen met behulp van de verbindingsreeks.

Voor alle sensortelemetriegebeurtenissen is 'timestamp' een verplichte eigenschap en moet de ISO 8601-indeling hebben (JJJJ-MM-DDTHH:MM:SSZ).

U bent nu klaar om sensorgegevens te pushen voor alle sensoren met behulp van de respectieve verbindingsreeks voor elke sensor. Sensorgegevens moeten echter worden verzonden in de indeling die is gedefinieerd in het sensorgegevensmodel dat in stap 3 is gemaakt. Raadpleeg een voorbeeld van het telemetrieschema dat volgt:

{
	"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
} 

Volgende stappen

  • Test onze API's hier.