Udostępnij za pośrednictwem


Integracja czujników zarówno jako partner, jak i klient w usłudze Azure Data Manager for Agriculture

Wykonaj poniższe kroki, aby zarejestrować się jako partner czujnika, aby rozpocząć wypychanie danych do wystąpienia usługi Data Manager for Agriculture.

Krok 1. Włączanie integracji czujników

  1. Integracja czujnika powinna być włączona, zanim będzie można ją zainicjować. Ten krok aprowizuje wewnętrzne zasoby platformy Azure na potrzeby integracji czujników dla wystąpienia usługi Data Manager for Agriculture. Można to zrobić, uruchamiając następujące polecenie 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'}}}"

Przykładowe dane wyjściowe:

{
  "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. Wykonanie powyższego zadania może potrwać kilka minut. Aby poznać stan zadania, należy uruchomić następujące polecenie armclient:
armclient get /subscriptions/<subscription-id>/resourceGroups/<resource-group-name> /providers/Microsoft.AgFoodPlatform/farmBeats/<datamanager-instance-name>?api-version=2023-06-01-preview
  1. Aby sprawdzić, czy został ukończony, zapoznaj się z wyróżnionym atrybutem. Powinien zostać zaktualizowany jako "Powodzenie" z sekcji "Tworzenie" we wcześniejszym kroku. Atrybut wskazujący, że integracja czujnika jest włączona, jest wskazywana przez provisioningState wewnątrz obiektu sensorIntegration.

Przykładowe dane wyjściowe:

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

Po zakończeniu aprowizacji na potrzeby integracji czujników można utworzyć obiekty integracji czujników.

Krok 2. Tworzenie integracji partnera czujników

Aby połączyć klienta z dostawcą, należy wykonać krok integracji partnera czujników. Identyfikator integrationId jest później używany podczas tworzenia czujnika.

Dokumentacja interfejsu API: Integracja partnerów czujników — tworzenie lub aktualizowanie

Krok 3. Tworzenie modelu danych czujnika

Użyj modelu danych czujnika, aby zdefiniować model wysyłanych danych telemetrycznych. Wszystkie dane telemetryczne wysyłane przez czujnik są weryfikowane zgodnie z tym modelem danych.

Dokumentacja interfejsu API: Modele danych czujników — tworzenie lub aktualizowanie

Przykładowa telemetria

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

Odpowiedni model danych czujnika

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

Krok 4. Tworzenie czujnika

Utwórz czujnik przy użyciu odpowiedniego identyfikatora integracji i identyfikatora modelu danych czujnika. DeviceId i HardwareId są opcjonalnymi parametrami, w razie potrzeby można użyć pozycji Urządzenia — utwórz lub zaktualizuj , aby utworzyć urządzenie.

Dokumentacja interfejsu API: Czujniki — tworzenie lub aktualizowanie

Krok 5. Pobieranie parametry połączenia usługi IoTHub

Pobierz parametry połączenia IoTHub, aby wypchnąć dane telemetryczne czujnika do platformy utworzonej przez czujnik.

Dokumentacja interfejsu API: Czujniki — pobieranie ciągu Połączenie ion

Krok 6. Wypychanie danych przy użyciu usługi IoT Hub

Użyj zestawów SDK urządzeń usługi IoT Hub, aby wypchnąć dane telemetryczne przy użyciu parametry połączenia.

W przypadku wszystkich zdarzeń telemetrii czujnika "sygnatura czasowa" jest obowiązkową właściwością i musi być w formacie ISO 8601 (RRRR-MM-DDTHH:MM:SSZ).

Teraz wszystko jest gotowe, aby rozpocząć wypychanie danych czujników dla wszystkich czujników przy użyciu odpowiednich parametry połączenia dostarczonych dla każdego czujnika. Jednak dane czujnika powinny być wysyłane w formacie zdefiniowanym w modelu danych czujnika utworzonym w kroku 3. Zapoznaj się z przykładem schematu telemetrii, który jest następujący:

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

Następne kroki