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

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.

  1. 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.
  2. 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?
  3. Plataforma SDS
    ¿Utilizarás la plataforma como interfaz de usuario para proporcionar tu solución o crearás o utilizarás un sistema externo?
  4. 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.

  1. /*
  2.  
  3. This example sends a numerical measurement (10.5) from sensor
  4. SENSOR001, owned by provider PROVIDER001, identified by token:
  5.  
  6. 79d2dfe9ea9af9dd015befebda62180673314c8abb8898d626c66959448cae0d
  7.  
  8. And then prints the platform server reply.
  9.  
  10. */
  11.  
  12. $providername = ‘PROVIDER001’;
  13. $sensorname = ‘SENSOR001’;
  14. $token = ’79d2dfe9ea9af9dd015befebda62180673314c8abb8898d626c66959448cae0d’;
  15.  
  16. $value = ‘10.5’;
  17.  
  18. $json = ‘{«observations»:[{«value»:»‘.$value.‘»}]}’;
  19.  
  20. $api_request_url = ‘[DEVICES API URL]/data/’.$providername.‘/’.$sensorname;
  21.  
  22. $ch = curl_init();
  23. curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
  24. curl_setopt($ch, CURLOPT_HEADER, TRUE);
  25. curl_setopt($ch, CURLOPT_CUSTOMREQUEST, ‘PUT’);
  26. curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
  27. curl_setopt($ch, CURLOPT_HTTPHEADER, array(‘IDENTITY_KEY: ‘.$token,‘Content-Type: application/json’));
  28. curl_setopt($ch, CURLOPT_URL, $api_request_url);
  29.  
  30. $api_response = curl_exec($ch);
  31.  
  32. $api_response_info = curl_getinfo($ch);
  33.  
  34. curl_close($ch);
  35.  
  36. $api_response_header = trim(substr($api_response, 0, $api_response_info[‘header_size’]));
  37.  
  38. 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.

  1. /*
  2.  
  3. 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.
  4.  
  5. The user who’s sending the request is identified by token:
  6.  
  7. 0a2fb1d34c30dab68c6cf36c7218b4b332059e19db35c6fc9f6c56fd30d0223d
  8.  
  9. After the request, it prints the list as a HTML table.
  10.  
  11. */
  12.  
  13. $sensorid = ‘5123’;
  14.  
  15. $begin = ‘1476057600’; // 2016-10-10 00:00:00 UTC
  16.  
  17. $end = ‘1476144000’; // 2016-10-11 00:00:00 UTC
  18.  
  19. $apiKey = ‘0a2fb1d34c30dab68c6cf36c7218b4b332059e19db35c6fc9f6c56fd30d0223d’;
  20.  
  21. $api_request_url = ‘http://api.smartdatasystem.es/v1/measurements?sensorid=’.$sensorid.‘&begin=’.$begin.‘&end=’.$end;
  22.  
  23. $ch = curl_init();
  24.  
  25. curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
  26.  
  27. curl_setopt($ch, CURLOPT_HEADER, TRUE);
  28.  
  29. curl_setopt($ch, CURLOPT_CUSTOMREQUEST, ‘GET’);
  30.  
  31. curl_setopt($ch, CURLOPT_HTTPHEADER, array(‘apiKey: ‘.$apiKey,‘Content-Type: application/json’));
  32.  
  33. curl_setopt($ch, CURLOPT_URL, $api_request_url);
  34.  
  35. $api_response = curl_exec($ch);
  36.  
  37. $api_response_info = curl_getinfo($ch);
  38.  
  39. $results = json_decode(trim(substr($api_response, $api_response_info[‘header_size’])))->measurements;
  40.  
  41. curl_close($ch);
Mycelium Networks, SL | 2025. © |