Compartilhar via


Integração de sensores como parceiro e cliente no Azure Data Manager for Agriculture

Siga as etapas abaixo para se registrar como um parceiro de sensor para que você possa começar a enviar seus dados para sua instância do Data Manager for Agriculture.

Etapa 1: Ativar a integração do sensor

  1. A integração do sensor deve ser ativada antes de poder ser iniciada. Esta etapa provisiona recursos internos do Azure para integração de sensores para a instância do Data Manager for Agriculture. Isso pode ser feito executando o seguinte comando armclient .
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'}}}"

Saída de exemplo:

{
  "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. O trabalho acima pode levar alguns minutos para ser concluído. Para saber o status do trabalho, o seguinte comando armclient deve ser executado:
armclient get /subscriptions/<subscription-id>/resourceGroups/<resource-group-name> /providers/Microsoft.AgFoodPlatform/farmBeats/<datamanager-instance-name>?api-version=2023-04-01-preview
  1. Para verificar se ele foi concluído, examine o atributo realçado. Ele deve ser atualizado como "Sucedido" de "Criando" na etapa anterior. O atributo que indica que a integração do sensor está habilitada é indicado por provisioningState dentro do objeto sensorIntegration.

Saída de exemplo:

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

Depois que o status de provisionamento para integração do sensor for concluído, os objetos de integração do sensor poderão ser criados.

Etapa 2: Criar integração de parceiros de sensores

A etapa de integração Criar parceiro de sensor deve ser executada para conectar o cliente ao provedor. O integrationId é usado posteriormente na criação do sensor.

Documentação da API: Integrações de parceiros de sensor - Criar ou atualizar

Etapa 3: Criar modelo de dados do sensor

Use o modelo de dados do sensor para definir o modelo de telemetria que está sendo enviado. Toda a telemetria enviada pelo sensor é validada de acordo com este modelo de dados.

Documentação da API: Modelos de dados do sensor - Criar ou atualizar

Exemplo de telemetria

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

Modelo de dados do sensor correspondente

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

Etapa 4: Criar sensor

Crie o sensor usando o ID de integração correspondente e o ID do modelo de dados do sensor. DeviceId e HardwareId são parâmetros opcionais, se necessário, você pode usar o Devices - Create Or Update para criar o dispositivo.

Documentação da API: Sensores - Criar ou atualizar

Etapa 5: Obter a cadeia de conexão IoTHub

Obtenha a cadeia de conexão IoTHub para enviar a telemetria do sensor para a plataforma do sensor criado.

Documentação da API: Sensores - Obter cadeia de conexão

Etapa 6: enviar dados por push usando o Hub IoT

Use SDKs de Dispositivo do Hub IoT para enviar por push a telemetria usando a cadeia de conexão.

Para todos os eventos de telemetria do sensor, "carimbo de data/hora" é uma propriedade obrigatória e deve estar no formato ISO 8601 (AAAA-MM-DDTHH:MM:SSZ).

Agora você está pronto para começar a enviar dados do sensor para todos os sensores usando a respectiva cadeia de conexão fornecida para cada sensor. No entanto, os dados do sensor devem ser enviados no formato definido no modelo de dados do sensor criado na Etapa 3. Consulte um exemplo do esquema de telemetria a seguir:

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

Próximas etapas

  • Teste nossas APIs aqui.