¿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?
fuente
Respuestas:
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.
fuente
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).
fuente
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:
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.
fuente
Hay dos componentes para esto:
¿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.
¿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!)
fuente
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:
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.
fuente
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!
fuente
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.
fuente