Aracılığıyla paylaş


Tarım için Azure Data Manager'da hem iş ortağı hem de müşteri olarak Algılayıcı Tümleştirmesi

Verilerinizi Tarım için Data Manager örneğine göndermeye başlamak üzere sensör iş ortağı olarak kaydolmak için aşağıdaki adımları izleyin.

1. Adım: Algılayıcı tümleştirmesini etkinleştirme

  1. Algılayıcı tümleştirmesi başlatılmadan önce etkinleştirilmelidir. Bu adım, Tarım için Data Manager örneği için algılayıcı tümleştirmesi için gerekli iç Azure kaynaklarını sağlar. Bu, aşağıdaki armclient komutu çalıştırılarak yapılabilir.
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'}}}"

Örnek çıkış:

{
  "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. Yukarıdaki işin tamamlanması birkaç dakika sürebilir. İşin durumunu bilmek için aşağıdaki armclient komutu çalıştırılmalıdır:
armclient get /subscriptions/<subscription-id>/resourceGroups/<resource-group-name> /providers/Microsoft.AgFoodPlatform/farmBeats/<datamanager-instance-name>?api-version=2023-04-01-preview
  1. Tamamlanıp tamamlanmadığını doğrulamak için vurgulanan özniteliğe bakın. Önceki adımda "Oluşturma" bölümünden "Başarılı" olarak güncelleştirilmelidir. Algılayıcı tümleştirmesinin etkinleştirildiğini belirten öznitelik, sensorIntegration nesnesinin içindeki provisioningState ile belirtilir.

Örnek çıkış:

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

Algılayıcı tümleştirmesi için sağlama durumu tamamlandıktan sonra algılayıcı tümleştirme nesneleri oluşturulabilir.

2. Adım: Algılayıcı iş ortağı tümleştirmesi oluşturma

Müşteriyi sağlayıcıya bağlamak için algılayıcı iş ortağı tümleştirme adımı oluşturulmalıdır. IntegrationId daha sonra algılayıcı oluşturmada kullanılır.

API belgeleri: Algılayıcı İş Ortağı Tümleştirmeleri - Oluşturma veya Güncelleştirme

3. Adım: Algılayıcı veri modeli oluşturma

Gönderilen telemetri modelini tanımlamak için algılayıcı veri modelini kullanın. Algılayıcı tarafından gönderilen tüm telemetri verileri bu veri modeline göre doğrulanır.

API belgeleri: Algılayıcı Veri Modelleri - Oluşturma veya Güncelleştirme

Örnek telemetri

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

İlgili sensör veri modeli

{
  "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. Adım: Algılayıcı oluşturma

İlgili tümleştirme kimliğini ve algılayıcı veri modeli kimliğini kullanarak algılayıcı oluşturun. DeviceId ve HardwareId isteğe bağlı parametrelerdir; gerekirse cihazı oluşturmak için Cihazlar - Oluştur veya Güncelleştir'i kullanabilirsiniz.

API belgeleri: Algılayıcılar - Oluşturma veya Güncelleştirme

5. Adım: IoTHub bağlantı dizesi alma

Oluşturulan Algılayıcı için platforma algılayıcı telemetrisi göndermek için IoTHub bağlantı dizesi edinin.

API Belgeleri: Algılayıcılar - Bağlan Ion Dizesini Alma

6. Adım: IoT Hub kullanarak veri gönderme

bağlantı dizesi kullanarak telemetriyi göndermek için IoT Hub Cihaz SDK'larını kullanın.

Tüm algılayıcı telemetri olayları için "zaman damgası" zorunlu bir özelliktir ve ISO 8601 biçiminde olmalıdır (YYYY-MM-DDTHH:MM:SSZ).

Artık her sensör için sağlanan ilgili bağlantı dizesi kullanarak tüm algılayıcılar için sensör verilerini göndermeye başlamaya hazırsınız. Ancak algılayıcı verileri, 3. Adımda oluşturulan algılayıcı veri modelinde tanımlanan biçimde gönderilmelidir. Aşağıdaki telemetri şeması örneğine bakın:

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

Sonraki adımlar