다음을 통해 공유


Azure Data Manager for Agriculture에서 파트너이자 고객으로 센서 통합

아래 단계에 따라 센서 파트너로 등록하면 Data Manager for Agriculture 인스턴스에 데이터를 푸시할 수 있습니다.

1단계: 센서 통합 사용

  1. 센서 통합을 시작하려면 먼저 사용하도록 설정해야 합니다. 이 단계에서는 Data Manager for Agriculture 인스턴스의 센서 통합에 필요한 내부 Azure 리소스를 프로비전합니다. 다음 armclient 명령을 실행하면 됩니다.
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'}}}"

샘플 출력:

{
  "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. 위 작업을 완료하는 데 몇 분 정도 걸릴 수 있습니다. 작업 상태를 확인하려면 다음 armclient 명령을 실행해야 합니다.
armclient get /subscriptions/<subscription-id>/resourceGroups/<resource-group-name> /providers/Microsoft.AgFoodPlatform/farmBeats/<datamanager-instance-name>?api-version=2023-06-01-preview
  1. 완료되었는지 확인하려면 강조 표시된 특성을 살펴봅니다. 이전 단계의 "만들기 중"에서 "성공"으로 업데이트되어야 합니다. 센서 통합이 사용하도록 설정되었음을 나타내는 특성은 sensorIntegration 개체 내부의 ProvisioningState로 표시됩니다.

샘플 출력:

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

센서 통합을 위한 프로비전 상태가 완료되면 센서 통합 개체를 만들 수 있습니다.

2단계: 센서 파트너 통합 만들기

고객을 공급자와 연결하려면 센서 파트너 통합 만들기 단계를 실행해야 합니다. IntegrationId는 나중에 센서 만들기에 사용됩니다.

API 설명서: 센서 파트너 통합 - 만들기 또는 업데이트

3단계: 센서 데이터 모델 만들기

센서 데이터 모델을 사용하여 전송되는 원격 분석 모델을 정의합니다. 센서에서 보낸 모든 원격 분석은 이 데이터 모델에 따라 유효성이 검사됩니다.

API 설명서: 센서 데이터 모델 - 만들기 또는 업데이트

샘플 원격 분석

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

해당 센서 데이터 모델

{
  "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단계: 센서 만들기

해당 통합 ID와 센서 데이터 모델 ID를 사용하여 센서를 만듭니다. DeviceId 및 HardwareId는 선택적 매개 변수입니다. 필요한 경우 디바이스 - 만들기 또는 업데이트를 사용하여 디바이스를 만들 수 있습니다.

API 설명서: 센서 - 만들기 또는 업데이트

5단계: IoTHub 연결 문자열 가져오기

만들어진 센서의 플랫폼에 센서 원격 분석을 푸시하려면 IoTHub 연결 문자열을 가져옵니다.

API 설명서: 센서 - 연결 문자열 가져오기

6단계: IoT Hub를 사용하여 데이터 푸시

연결 문자열을 사용하여 원격 분석을 푸시하려면 IoT Hub 디바이스 SDK를 사용합니다.

모든 센서 원격 분석 이벤트의 경우 "타임스탬프"는 필수 속성이며 ISO 8601 형식(YYYY-MM-DDTHH:MM:SSZ)이어야 합니다.

이제 각 센서에 제공된 각 연결 문자열을 사용하여 모든 센서에 대한 센서 데이터 푸시를 시작하도록 설정되었습니다. 단, 센서 데이터는 3단계에서 만들어진 센서 데이터 모델에 정의된 형식으로 전송되어야 합니다. 다음 원격 분석 스키마의 예를 참조하세요.

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

다음 단계

  • 여기에서 API를 테스트합니다.