Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Siga as etapas abaixo para se registrar como parceiro de sensor, permitindo que você comece a enviar seus dados para a sua instância do Gerenciador de Dados para Agricultura.
Etapa 1: Habilitar a integração do sensor
- A integração do sensor deve ser habilitada antes de ser iniciada. Esta etapa provisiona os recursos internos do Azure necessários para a 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-06-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"
}
- 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-06-01-preview
- Para verificar se ele foi concluído, examine o atributo realçado. Ela será atualizada para “Bem-sucedido” partindo do status “Criando” na etapa anterior. O atributo que indica que a integração do sensor está habilitada é indicado pelo 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 da 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 sensor
A etapa de integração do parceiro do 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 sensores com parceiros - 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 conforme este modelo de dados.
Documentação da API: Modelos de dados de sensores - 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 Dispositivos - Criar ou Atualizar para criar o dispositivo.
Documentação da API: Sensores - Criar ou atualizar
Etapa 5: Obter cadeia de conexão do IoTHub
Obtenha a cadeia de conexão do Hub IoT 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 os SDKs de Dispositivo Hub IoT para enviar a telemetria usando a cadeia de conexão.
Para todos os eventos de telemetria do sensor, o "timestamp" é uma propriedade obrigatória e deve estar no formato ISO 8601 (AAAA-MM-DDTHH:MM:SSZ).
Agora está tudo pronto para você começar a enviar dados de sensores 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.