Comparteix a través de


Integración de sensores como asociado y cliente en Azure Data Manager for Agriculture

Siga los pasos siguientes para registrarse como asociado de sensor para que pueda empezar a insertar los datos en la instancia de Data Manager for Agriculture.

Paso 1: Habilitación de la integración de sensores

  1. La integración del sensor debe estar habilitada antes de que se pueda iniciar. Este paso aprovisiona los recursos internos de Azure necesarios para la integración de sensores para la instancia de Data Manager for Agriculture. Para ello, ejecute el siguiente 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'}}}"

Resultados del ejemplo:

{
  "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. El trabajo anterior puede tardar unos minutos en completarse. Para conocer el estado del trabajo, se debe ejecutar el siguiente comando armclient:
armclient get /subscriptions/<subscription-id>/resourceGroups/<resource-group-name> /providers/Microsoft.AgFoodPlatform/farmBeats/<datamanager-instance-name>?api-version=2023-06-01-preview
  1. Para comprobar si se ha completado, examine el atributo resaltado. Debe actualizarse como "Correcto" de "Crear" en el paso anterior. El atributo que indica que la integración del sensor está habilitada se indica mediante provisioningState dentro del objeto sensorIntegration.

Resultados del ejemplo:

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

Una vez completado el estado de aprovisionamiento para la integración del sensor, se pueden crear objetos de integración de sensores.

Paso 2: Creación de la integración de asociados de sensor

Se debe ejecutar el paso de integración de asociados de sensor para conectar al cliente con el proveedor. IntegrationId se usa más adelante en la creación del sensor.

Documentación de API: Integraciones de asociados de sensor: creación o actualización

Paso 3: Creación de un modelo de datos de sensor

Use el modelo de datos del sensor para definir el modelo de telemetría que se envía. Toda la telemetría enviada por el sensor se valida según este modelo de datos.

Documentación de API: Modelos de datos del sensor: creación o actualización

Telemetría de ejemplo

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

Modelo de datos del sensor correspondiente

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

Paso 4: Creación de un sensor

Cree el sensor mediante el identificador de integración correspondiente y el identificador del modelo de datos del sensor. DeviceId y HardwareId son parámetros opcionales, si es necesario, puede usar Devices - Create Or Update (Dispositivos: crear o actualizar ) para crear el dispositivo.

Documentación de API: Sensores: Creación o actualización

Paso 5: Obtener cadena de conexión de IoTHub

Obtenga cadena de conexión de IoTHub para insertar la telemetría del sensor en la plataforma del sensor creado.

Documentación de API: Sensors - Get Conectar ion String

Paso 6: Inserción de datos mediante IoT Hub

Use los SDK de dispositivo de IoT Hub para insertar la telemetría mediante el cadena de conexión.

Para todos los eventos de telemetría del sensor, "marca de tiempo" es una propiedad obligatoria y tiene que estar en formato ISO 8601 (AAAA-MM-DDTHH:MM:SSZ).

Ahora está todo configurado para empezar a insertar datos del sensor para todos los sensores mediante el cadena de conexión correspondiente proporcionado para cada sensor. Sin embargo, los datos del sensor deben enviarse en el formato definido en el modelo de datos del sensor creado en el paso 3. Consulte un ejemplo del esquema de telemetría siguiente:

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

Pasos siguientes

  • Pruebe nuestras API aquí.