Share via


Érzékelőintegráció partnerként és ügyfélként az Azure Data Manager for Agriculture szolgáltatásban

Az alábbi lépéseket követve regisztrálhat érzékelőpartnerként, hogy megkezdhesse az adatok leküldését a Data Manager for Agriculture-példányba.

1. lépés: Érzékelőintegráció engedélyezése

  1. Az érzékelőintegrációt engedélyezni kell, mielőtt elindítható lenne. Ez a lépés belső Azure-erőforrásokat igényel a Data Manager for Agriculture-példány érzékelőintegrálásához. Ez az armclient parancs futtatásával végezhető el.
armclient patch /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.AgFoodPlatform/farmBeats/<datamanager-instance-name>?api-version=2023-04-01-preview "{properties:{sensorIntegration:{enabled:'true'}}}"

Sample output:

{
  "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. A fenti feladat végrehajtása eltarthat néhány percig. A feladat állapotának megismeréséhez futtassa a következő armclient parancsot:
armclient get /subscriptions/<subscription-id>/resourceGroups/<resource-group-name> /providers/Microsoft.AgFoodPlatform/farmBeats/<datamanager-instance-name>?api-version=2023-04-01-preview
  1. Annak ellenőrzéséhez, hogy befejeződött-e, tekintse meg a kiemelt attribútumot. A korábbi lépésben "Sikeres" állapotúként kell frissíteni a "Létrehozás" elemet. Az érzékelőintegráció engedélyezését jelző attribútumot a sensorIntegration objektumon belüli ProvisioningState jelzi.

Sample output:

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

Az érzékelőintegráció kiépítési állapota után létre lehet hozni az érzékelőintegrációs objektumokat.

2. lépés: Érzékelőpartner-integráció létrehozása

Az érzékelőpartnerek integrációs lépését végre kell hajtani az ügyfél szolgáltatóhoz való csatlakoztatásához. Az integrációs azonosítót később az érzékelő létrehozásakor használják.

API-dokumentáció: Érzékelőpartner-integrációk – Létrehozás vagy frissítés

3. lépés: Érzékelőadat-modell létrehozása

Az elküldött telemetriai modell meghatározásához használjon érzékelőadat-modellt. Az érzékelő által küldött összes telemetriát az adatmodellnek megfelelően ellenőrzi a rendszer.

API-dokumentáció: Érzékelő adatmodelljei – Létrehozás vagy frissítés

Mintatelemetria

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

Megfelelő érzékelőadat-modell

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

4. lépés: Érzékelő létrehozása

Hozzon létre érzékelőt a megfelelő integrációs azonosító és az érzékelő adatmodell-azonosítójával. A DeviceId és a HardwareId opcionális paraméterek, ha szükséges, az Eszközök – Létrehozás vagy frissítés használatával hozhatja létre az eszközt.

API-dokumentáció: Érzékelők – Létrehozás vagy frissítés

5. lépés: IoTHub-kapcsolati sztring lekérése

Kérje le az IoTHub kapcsolati sztring, hogy leküldje az érzékelő telemetriáját a létrehozott érzékelő platformjához.

API-dokumentáció: Érzékelők – Csatlakozás ion-sztring lekérése

6. lépés: Adatok leküldése az IoT Hub használatával

Az IoT Hub Device SDK-k használatával küldje le a telemetriát a kapcsolati sztring használatával.

Minden érzékelőtelemetria-esemény esetében az "időbélyeg" kötelező tulajdonság, amelynek ISO 8601 formátumban kell lennie (YYYY-MM-DDTHH:MM:SSZ).

Most már minden olyan beállítással rendelkezik, hogy az egyes érzékelőkhöz megadott kapcsolati sztring használatával elindítsa az érzékelőadatok küldését az összes érzékelőhöz. Az érzékelőadatokat azonban a 3. lépésben létrehozott érzékelőadat-modellben meghatározott formátumban kell elküldeni. Tekintse meg az alábbi telemetriaséma példáját:

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

Következő lépések

  • Itt tesztelje az API-kat.