Bagikan melalui


Integrasi Sensor sebagai mitra dan pelanggan di Azure Data Manager for Agriculture

Ikuti langkah-langkah di bawah ini untuk mendaftar sebagai mitra sensor sehingga Anda dapat mulai mendorong data ke instans Data Manager for Agriculture Anda.

Langkah 1: Mengaktifkan integrasi sensor

  1. Integrasi sensor harus diaktifkan sebelum dapat dimulai. Langkah ini menyediakan sumber daya Azure internal yang diperlukan untuk integrasi sensor untuk instans Data Manager for Agriculture. Ini dapat dilakukan dengan menjalankan perintah armclient berikut.
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'}}}"

Contoh 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. Pekerjaan di atas mungkin perlu waktu beberapa menit untuk diselesaikan. Untuk mengetahui status pekerjaan, perintah armclient berikut harus dijalankan:
armclient get /subscriptions/<subscription-id>/resourceGroups/<resource-group-name> /providers/Microsoft.AgFoodPlatform/farmBeats/<datamanager-instance-name>?api-version=2023-04-01-preview
  1. Untuk memverifikasi apakah sudah selesai, lihat atribut yang disorot. Ini harus diperbarui sebagai "Berhasil" dari "Membuat" di langkah sebelumnya. Atribut yang menunjukkan bahwa integrasi sensor diaktifkan ditunjukkan oleh provisioningState di dalam objek sensorIntegration.

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

Setelah status provisi untuk integrasi sensor selesai, objek integrasi sensor dapat dibuat.

Langkah 2: Membuat integrasi mitra sensor

Membuat langkah integrasi mitra sensor harus dijalankan untuk menghubungkan pelanggan dengan penyedia. IntegrationId kemudian digunakan dalam pembuatan sensor.

Dokumentasi API: Integrasi Mitra Sensor - Buat Atau Perbarui

Langkah 3: Membuat model data sensor

Gunakan model data sensor untuk menentukan model telemetri yang dikirim. Semua telemetri yang dikirim oleh sensor divalidasi sesuai model data ini.

Dokumentasi API: Model Data Sensor - Buat Atau Perbarui

Telemetri sampel

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

Model data sensor yang sesuai

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

Langkah 4: Buat sensor

Buat sensor menggunakan ID integrasi dan ID model data sensor yang sesuai. DeviceId dan HardwareId adalah parameter opsional, jika diperlukan, Anda dapat menggunakan Perangkat - Buat Atau Perbarui untuk membuat perangkat.

Dokumentasi API: Sensor - Buat Atau Perbarui

Langkah 5: Dapatkan IoTHub string koneksi

Dapatkan string koneksi IoTHub untuk mendorong telemetri sensor ke platform untuk Sensor yang dibuat.

Dokumentasi API: Sensor - Dapatkan String Koneksi ion

Langkah 6: Mendorong data menggunakan IoT Hub

Gunakan SDK Perangkat IoT Hub untuk mendorong telemetri menggunakan string koneksi.

Untuk semua peristiwa telemetri sensor, "tanda waktu" adalah properti wajib dan harus dalam format ISO 8601 (YYYY-MM-DDTHH:MM:SSZ).

Anda sekarang siap untuk mulai mendorong data sensor untuk semua sensor menggunakan masing-masing string koneksi yang disediakan untuk setiap sensor. Namun, data sensor harus dikirim dalam format yang ditentukan dalam model data sensor yang dibuat di Langkah 3. Lihat contoh skema telemetri yang mengikuti:

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

Langkah berikutnya