¿Qué servicios de IoT están disponibles para almacenar / enviar / publicar datos genéricos en la nube?

16

¿Qué servicios de IoT están disponibles para almacenar / enviar / publicar (y operaciones opuestas) una pequeña cantidad genérica de datos en la nube?

Estoy buscando, por ejemplo, un servicio donde un dispositivo pueda almacenar un valor en la nube. Y alguna otra entidad (otro dispositivo, un sitio web con algún código JS, un servidor web, una aplicación móvil) podría recuperar este valor.

Podría ser algún tipo de comunicación asincrónica, por ejemplo, para almacenar y recuperar algo tan pequeño como un par de clave y valor, <255bytes, un entero, una cadena, como mucho un pequeño objeto JSON. El servicio podría ofrecer una API REST (por lo que podría accederse a ella mediante una gran variedad de idiomas) con algún token para autenticar y la clave y el valor para almacenar.

Un ejemplo detallado de un caso de uso es:

Hay un sensor de temperatura en casa y quiero que almacene el valor en la nube (en algún lugar fuera de casa ). De esa manera, podría acceder a él, independientemente de que mi conexión doméstica esté desconectada o no. Más aún, esto evitaría mantener y mantener un servidor dedicado + reenvío de puertos + DynamicDNS.

Hasta ahora no he podido encontrar algo como esto, pero ocasionalmente, he encontrado algunos ejemplos de lo que quiero describir:

¿Qué otras alternativas similares (gratuitas / abiertas) hay?

Urnenfeld
fuente
@BenceKaulics Creo que ambos casos de uso se aplicarían. La solución profesional podría implicar más estandarización y fiabilidad. La solución experimental podría ser un interesante proyecto de código abierto para unirse.
urnenfeld
Odio ser un deporte mimado, pero no veo esto como una solicitud de IoT, más como servidores web, para lo cual tenemos otros sitios. Use lo que quiera: su propio sitio, alojamiento gratuito, servicios web de Amazon, etc. Realmente no nos ha dicho lo que está tratando de lograr. Por ejemplo, ¿desea codificar el software del servidor? Sin detalles, solo una sensación cálida y difusa, por lo que será muy difícil responderle.
Mawg dice que reinstalar a Monica el
2
@Mawg Tiene la etiqueta de servicio web (que no creé). El caso de uso está enfocado en IoT, como lo están las referencias dadas. Pide los servicios disponibles, aunque esto podría lograrse mediante un simple php + db, la intención no es reinventar la rueda y conocer qué servicios conoce la comunidad IoT. Pero déjame saber en qué comunidad crees que encaja mejor.
urnenfeld
Es una llamada cerrada. Admitiré que a veces publico en Stack Overflow, donde otro sitio sería más correcto. PERO, SO tiene una audiencia más grande, así que tengo más posibilidades de una respuesta. Siempre hay un poco de superposición con otros sitios y tendremos que resolverlo a medida que avanzamos. +1 por no ofenderse y ahora conoce el sitio de seguridad. Sin embargo, la pregunta * aún podría usar un poco más de detalle :-)
Mawg dice que reinstalar a Monica el
2
@Mawg, por supuesto, sin ofender :). Realmente pasé algún tiempo pensando dónde colocar la pregunta ... Intenté darle más forma a la pregunta antes. Veamos ahora, agregué el caso de uso exacto y las soluciones provisionales.
urnenfeld

Respuestas:

10

Eche un vistazo a estos servicios:

Ambos servicios aceptarán datos simples de clave / valor de un dispositivo. Creo que ambos tienen bibliotecas listas para importar para dispositivos Particle desde que lo mencionaste.

Rico
fuente
7

Muchos proveedores de la nube como Amazon, Microsoft, Google, IBM, etc., intentan atraer el espacio de IoT al proporcionar formas más fáciles de enviar / almacenar / analizar datos de sensores a su nube. Incluso deben adquirir proveedores de hardware para aumentar su alcance en IoT.

No utilicé ningún servicio que no sea AWS, por lo que puedo explicar mi experiencia con AWS y cómo integramos esto para el uso de producción.


Guión:

Tenemos cientos de sensores cada uno enviando 184-428 bytes de datos cada minuto a la puerta de enlace local que agrega los datos y almacena los datos localmente y envía los mismos datos a la nube de AWS. También tenemos sensores con carcasa especial que envían datos directamente a la nube.

Servicios en la nube

Estamos utilizando AWS IoT , AWS S3, AWS DynamoDB, AWS Lambda, AWS API Gateway, AWS SNS, AWS Cloudwatch, AWS RedShift para crear una solución completa. Básicamente, estos no son específicos de IoT (excepto AWS IoT) ya que podemos usarlos para dispositivos móviles y web.

Gateway usa AWS IoT SDK para conectar, autenticar e intercambiar mensajes con AWS IoT usando los protocolos MQTT, HTTP o WebSockets (Estamos usando el nodo JS SDK que se conecta a través de MQTT). Somos intermediarios de MQTT localmente en la puerta de enlace del dispositivo y desde allí estamos conectando con AWS IoT endpoint, estamos ejecutando verificaciones instantáneas de los datos recibidos (utilizando el motor de reglas, funciones de AWS Lambda) y almacenándolos en el archivo DynamoDB en S3, Glacier (el almacenamiento se realiza sin escribir una sola línea de hecho simplemente usando los desencadenadores de AWS para almacenar datos).

bravokeyl
fuente
6

Es solo para uso experimental o de prueba, pero tal vez cambie en el futuro.

Entonces, mi sugerencia es usar MQTT , más precisamente su implementación Mosquitto . Alojan un agente de prueba al que puede conectar sus clientes de suscriptor y editor. ( Aquí hay una guía sobre el proceso de configuración en Windows 7. )

Tenga en cuenta lo siguiente:

Puede usarlo libremente para cualquier aplicación, pero no lo abuse ni confíe en nada importante. También debe construir su cliente para hacer frente al reinicio del agente.

Pero básicamente puede publicar datos de temperatura a este corredor.

En el lado del suscriptor-cliente, recientemente he usado esta aplicación de Android . Es una aplicación muy básica, todavía en desarrollo, pero para fines de prueba es muy buena. Los mensajes recibidos se muestran en un tablero, nada especial solo los valores básicos.

Comencé a usar ambos como una primera etapa de mi proceso de aprendizaje MQTT y los encontré excelentes para principiantes.

Bence Kaulics
fuente
1
¿No sería MQTT una solución más adecuada en un contexto LAN? ¿Para problemas como privacidad / seguridad / multiusuario?
urnenfeld
@urnenfeld MQTT puede admitir el requisito de su sitio web, aplicación móvil y "otro dispositivo", ya que puede suscribirse con todos ellos. También, ciertamente, le gustaría enviar datos desde otros dispositivos en el futuro y no solo la temperatura, por lo que la capacidad multiusuario es una buena OMI, incluso si es solo una red de suscriptor único de editor múltiple. También la seguridad y la privacidad siempre deberían ser un problema. En cuanto a LAN, tal vez se ajuste más a eso, pero si se ocupa de la seguridad, podría hacer que su corredor esté disponible desde cualquier lugar, no como un experto en este asunto.
Bence Kaulics
1
Erm, este agente de prueba es un agente de prueba, por lo que no debe usarse para una aplicación en ejecución. Pero la idea está aquí: puede abrir el puerto de su agente MQTT desde su firewall y conectarse desde cualquier lugar.
Goufalite
Lo siento, pero OP quiere almacenar datos, MQTT es solo un mensajero, pero puede usarlo para enviar datos a un servidor dedicado. Para recuperar un valor, el cliente debe enviar una consulta a MQTT para recuperar el valor a través de una publicación. MQTT es genial, pero un servicio web tiene un lugar mejor aquí ...
Goufalite
@Goufalite Sí, almacenar datos es más complicado.
Bence Kaulics
5

Hay dos componentes para esto:

  1. ¿Cómo quieres que se almacenen tus datos? No existe una forma real de crear un servicio de datos "genérico" que realmente se ajuste a todas las necesidades. Lo que desea se llama "Bases de datos de series temporales" , y hay cientos de ellas porque cada detalle de cómo almacena los datos es importante a escala. (Si no está a escala, simplemente guárdelo en cualquier base de datos antigua, funcionará por un tiempo).

    Cada base de datos de series de tiempo se escribió porque los demás no hicieron exactamente lo que querían. Por ejemplo, considere cómo Graphite almacena sus datos: cada métrica (por ejemplo, la temperatura de una fuente) se almacena en un archivo de tamaño fijo. No importa con qué frecuencia envíe métricas o cuánto tiempo las envíe, el archivo tiene un tamaño constante.

    La desventaja es que los datos más antiguos tienen una resolución más baja, y después de un intervalo establecido que usted define (como 1 año), los datos se descartan. Pero lo bueno es que es tan rápido graficar un día como un año, y las métricas no crecen en tamaño con el tiempo.

    En otros sistemas de almacenamiento, generar un gráfico durante un año puede implicar obtener millones de puntos de datos y puede requerir grandes cantidades de almacenamiento de datos.

    La gran desventaja de Graphite es que cada métrica crea un nuevo archivo, por lo que si tiene métricas dinámicas (digamos que las cajas de nubes van y vienen), podría no ser una buena opción.

    Compare eso con Prometeo , donde las métricas se almacenan principalmente por tiempo. Puede tener muchas métricas dinámicas, y está bien. Pero no intente almacenar esas métricas a largo plazo, le llevará una eternidad volver a leerlas.

    No hay una talla única para todos.

    PS Graphana es una excelente manera de visualizar sus datos. Tiene complementos para la mayoría de las bases de datos de series temporales.

  2. ¿Quién va a almacenar sus datos? Hay miles de lugares como los que mencionaste. Es muy fácil hacer girar una base de datos de series temporales en la nube, pero es REALMENTE difícil ganar dinero con ella. La mayoría de estas compañías cerrarán su negocio después de un tiempo o comenzarán a aumentar los precios. (Incluso mantener sus precios estables es un aumento de precios, ya que el costo de la informática está bajando constantemente.) Muchas veces, descubren que no pueden atraer a tantos clientes nuevos como lo hacen, por lo que intentan aumentar los precios (bajo el pretexto de cambiar su modelo de precios). Resulta que cuesta MUCHO dinero almacenar los datos de todos ...

    Recomiendo autohospedaje, o use un proveedor en la nube de buena reputación como AWS CloudWatch . (Caro si tiene muchas métricas, ¡pero gratis por menos de 50 métricas!)

ValienteNuevoMoneda
fuente
La idea era obtener un conjunto de lo mejor de esos "miles de lugares". Ya he recopilado una colección (incluso la mía) que publicaré aquí en algún momento
urnenfeld
3

uBeac es una nueva herramienta de visualización gratuita que hemos desarrollado y es una versión Beta. No es de código abierto, pero es totalmente gratuito.

Puede definir una puerta de enlace y obtendrá un URI único. Puede configurar el URI en su puerta de enlace o dispositivo para enviar datos HTTP / MQTT.

Estas son algunas de sus características:

  • Equipo, edificio, definición de planta
  • Visualización de datos en tiempo real.
  • Diseño de tablero personalizado con diferentes widgets
  • Definir tipos de sensores, unidades y prefijos Visualización de mapas
  • ...

Es compatible con el formato de datos Json genérico y diferentes puertas de enlace predefinidas también. Si no desea utilizar formatos de carga útil predefinidos, están abiertos para desarrollar su procesamiento de carga personalizada.

Amir Pournasserian
fuente
Hola @Amir, hemos notado que sus respuestas hasta ahora son duplicadas entre sí y están promocionando su producto. Está bien responder dónde está relevante su producto, pero asegúrese de leer las pautas de autopromoción en el centro de ayuda. También es una buena idea adaptar sus respuestas a la pregunta en cuestión en lugar de publicar un texto idéntico para asegurarse de que realmente está respondiendo la pregunta en lugar de solo promocionar su producto. Gracias.
Aurora0001
1

Me sorprende que nadie aquí haya mencionado a Dweet . Esta es una forma súper simple y súper divertida de comunicar las cosas. Seguramente deberías probarlo, porque oye, ¡es gratis!

TheFreddyKilo
fuente
1
De hecho, se propuso, pero la moderación lo eliminó. Una de las cosas interesantes de este servicio es que ni siquiera necesita registrarse, y muestran algunos trazados de sus datos. Por el contrario, sus datos son bastante públicos :)
urnenfeld
0

flespi ofrece servicios en la nube gratuitos y comerciales:

Descargo de responsabilidad obligatorio: estoy trabajando para la empresa que desarrolla la plataforma flespi. Si bien hice todo lo posible para mantenerme objetivo, como siempre en Internet, verifique toda la información en esta respuesta para descartar sesgos que puedan afectar su decisión.

shal
fuente
Nuevamente, declare cualquier conexión a un servicio al recomendarlo (por ejemplo, que trabaja para flespi)
hardillb