Antes de comenzar tu proyecto, necesitas tener una clara comprensión de los componentes involucrados en tu solución. Las siguientes preguntas te ayudarán a aclarar lo que puedes necesitar.
API – Guía rápida
Comienza rápidamente con una visión general de los componentes que intervienen en una solución típica y ejemplos prácticos sobre cómo conectar un dispositivo y cómo integrar un sistema externo a la Plataforma SDS.
Visión general
- Dispositivos
¿Desde dónde quieres recuperar información o a qué dispositivo enviarás instrucciones? Algunos ejemplos comunes son los contadores de servicios públicos, los sensores de temperatura, los mecanismos de bloqueo / desbloqueo de puertas, etc. - Conectividad
¿El dispositivo ya tiene conectividad y permite configurar los parámetros a enviar, o necesitas proporcionar conectividad a través de una puerta de enlace? - Plataforma SDS
¿Utilizarás la plataforma como interfaz de usuario para proporcionar tu solución o crearás o utilizarás un sistema externo? - Sistema externo
¿Desarrollarás tu propia aplicación externa o integrarás un sistema de terceros?
Conecta un dispositivo
En este ejemplo enviaremos una lectura de un dispositivo a la plataforma a través de la API de dispositivos. Como lenguaje de programación se ha utilizado el PHP, pero puedes seleccionar el lenguaje que prefieras.
-
/*
-
-
This example sends a numerical measurement (10.5) from sensor
-
SENSOR001, owned by provider PROVIDER001, identified by token:
-
-
79d2dfe9ea9af9dd015befebda62180673314c8abb8898d626c66959448cae0d
-
-
And then prints the platform server reply.
-
-
*/
-
-
$providername = ‘PROVIDER001’;
-
$sensorname = ‘SENSOR001’;
-
$token = ’79d2dfe9ea9af9dd015befebda62180673314c8abb8898d626c66959448cae0d’;
-
-
$value = ‘10.5’;
-
-
$json = ‘{«observations»:[{«value»:»‘.$value.‘»}]}’;
-
-
$api_request_url = ‘[DEVICES API URL]/data/’.$providername.‘/’.$sensorname;
-
-
$ch = curl_init();
-
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
-
curl_setopt($ch, CURLOPT_HEADER, TRUE);
-
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, ‘PUT’);
-
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
-
curl_setopt($ch, CURLOPT_HTTPHEADER, array(‘IDENTITY_KEY: ‘.$token,‘Content-Type: application/json’));
-
curl_setopt($ch, CURLOPT_URL, $api_request_url);
-
-
$api_response = curl_exec($ch);
-
-
$api_response_info = curl_getinfo($ch);
-
-
curl_close($ch);
-
-
$api_response_header = trim(substr($api_response, 0, $api_response_info[‘header_size’]));
-
-
echo $api_response_header;
Integra una aplicación
Leamos algunos datos del sensor de temperatura que acabamos de conectar (ver «Conecta un dispositivo») a través de la API para aplicaciones, y los insertamos en una base de datos externa.
-
/*
-
-
This example gets the list of raw measurements sent by a temperature sensor, which ID is 5123, from 2016-10-10 00:00:00 UTC to 2016-10-11 00:00:00 UTC.
-
-
The user who’s sending the request is identified by token:
-
-
0a2fb1d34c30dab68c6cf36c7218b4b332059e19db35c6fc9f6c56fd30d0223d
-
-
After the request, it prints the list as a HTML table.
-
-
*/
-
-
$sensorid = ‘5123’;
-
-
$begin = ‘1476057600’; // 2016-10-10 00:00:00 UTC
-
-
$end = ‘1476144000’; // 2016-10-11 00:00:00 UTC
-
-
$apiKey = ‘0a2fb1d34c30dab68c6cf36c7218b4b332059e19db35c6fc9f6c56fd30d0223d’;
-
-
$api_request_url = ‘http://api.smartdatasystem.es/v1/measurements?sensorid=’.$sensorid.‘&begin=’.$begin.‘&end=’.$end;
-
-
$ch = curl_init();
-
-
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
-
-
curl_setopt($ch, CURLOPT_HEADER, TRUE);
-
-
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, ‘GET’);
-
-
curl_setopt($ch, CURLOPT_HTTPHEADER, array(‘apiKey: ‘.$apiKey,‘Content-Type: application/json’));
-
-
curl_setopt($ch, CURLOPT_URL, $api_request_url);
-
-
$api_response = curl_exec($ch);
-
-
$api_response_info = curl_getinfo($ch);
-
-
$results = json_decode(trim(substr($api_response, $api_response_info[‘header_size’])))->measurements;
-
-
curl_close($ch);