¿Cuál es la 'mejor' forma de comunicarse con microcontroladores/dispositivos pequeños?

var mejor = "simple y barato";

Tengo un servidor en mi apartamento al que tengo conectado un XBEE. Lo uso para comunicarme con otro XBEE conectado a un Arduino. Estoy tratando de conectar muchas cosas a mi servidor, pero no quiero tener 10 XBEE conectados a 10 Arduinos, porque eso es caro. Tampoco quiero tener cables por todas partes para conectar sensores/etc. a mi único Arduino.

Mi primer pensamiento fue comprar algunos Arduino Minis y conectarles algo como esto:
RF Link Transmitter
RF Link Receiver

¿Habría una solución mejor? ¿Tiene algún recurso en particular que deba ir a leer? Los dispositivos de punto final tendrían que hacer cosas como leer sensores, activar interruptores e incluso mostrar datos. Además, no estoy seguro de si usaría baterías para estos o intentaría obtener adaptadores de corriente para estos.

¡Por favor comente si debo incluir más información sobre algo! :)

Pruebe el Jeenode , tableros basados ​​en arduino con enlaces de radio por poco dinero. Jeelabs tiene un blog increíble y toneladas de ejemplos e información.

Respuestas (1)

Bluetooth LE (Low Energy) es realmente perfecto para este tipo de aplicación. Está diseñado para necesidades de comunicación de baja potencia y bajo ancho de banda, donde cada dispositivo solo necesita enviar ráfagas de información muy pequeñas periódicamente. También está altamente optimizado para funcionar con baterías de tipo botón, por lo que es posible que no necesite adaptadores de CA si las funciones del sensor son lo suficientemente simples. Recientemente hicimos un proyecto que usó muchas balizas Bluetooth LE y cada una duró aproximadamente 2 meses con una batería de celda de moneda.

El hardware que usamos ya estaba construido para nosotros, pero existen soluciones BLE para Arduino: http://www.adafruit.com/products/1697

¡Lo mejor es que puedes usarlo con cualquier dispositivo que tenga Bluetooth 4.0! (iPhone, teléfono Android, dongle BT 4.0). Y solo necesitaría un receptor, ya que Bluetooth ya está altamente optimizado para compartir el espectro de RF.

Utilicé este libro para familiarizarme con BLE, fue bastante útil (muy detallado, pero puede hojear lo que necesita): http://amzn.com/013288836X

Una cosa importante a tener en cuenta si desea usar Android: hubo un error bastante molesto con su implementación de BLE, por lo que necesita la última versión de Android (4.4.3) para obtener los mejores resultados. Sin embargo, solo le afecta si tiene toneladas (más de 2000) ID de dispositivos BLE únicos flotando (lo que puede suceder si algunos dispositivos quieren rotar su dirección MAC por razones de privacidad).

Gracias por la respuesta. Estaba pensando en mantenerme alejado de Bluetooth. No voy a usar dispositivos bluetooth para conectarme a los dispositivos de punto final. Quería apegarme a la comunicación RF regular debido a su costo y alcance. Además, solo consideraría una opción de batería si dura como un año.
Dependiendo del escenario de uso, puede obtener un año de dispositivos BLE con algunas baterías AA.
@AndrewKoroluk Si desea algo simple y económico, esta es la mejor manera de hacerlo, es compatible con muchas plataformas y con muchos hardware diferentes y es bien compatible con los OEM. Cualquier solución de RF requerirá que mantenga hardware personalizado, controladores, etc. porque no existe un estándar para las comunicaciones de RF. Si desea que algo funcione hoy por muy poco dinero y un esfuerzo mínimo, envíe un BT LE y llámelo por día.
Y para aclarar, bluetooth es RF, pero tiene una pila de comunicación estándar definida. Si usa transpondedores de RF sin procesar, tendrá que diseñar su propia pila de comunicación (lo que significa controladores y código arduino). Y no ganarás mucho en términos de potencia. ¡LE está diseñado para bajo consumo! ¿Por qué no confiar en toda una industria de ingenieros para brindar una mejor solución a un problema de interfaz poco interesante en su dispositivo?
Si lee los comentarios en una de las páginas a las que se vinculó, verá en su mayoría comentarios negativos: los usuarios tienen todo tipo de problemas. Además, si desea tener múltiples transmisores y solo un receptor, tendrá que diseñar algún tipo de esquema para evitar colisiones para lidiar con más de un transmisor que intenta enviar al mismo tiempo. Y con una comunicación unidireccional, el remitente no tiene forma de saber si el mensaje se transmitió. Con todo, no se recomienda el "esquema RF simple" . Ir con BLE.
La cosa es que no estoy preocupado por el software. Soy desarrollador de software de día. Lo que realmente estoy tratando de preguntar es si hay una mejor solución que los módulos de enlace Arduino mini + RF, especialmente uno más barato con una funcionalidad similar.
@AndrewKoroluk, lea mi respuesta a otra pregunta, hay MUCHO más para diseñar una interfaz RF robusta de lo que piensa. El módulo rflink le brinda un receptor y un transmisor, nada más. Depende de usted diseñar e implementar un sistema de comunicación que sea lo suficientemente robusto para su uso. Si desea varios dispositivos, esto significa detección de colisiones, codificación de paquetes, todo tipo de cosas desordenadas. Claro que ya hay algunas bibliotecas escritas, ¡pero todavía es una TONELADA de trabajo para algo que ya está hecho para ti!
Todavía necesita otro hardware para codificar/decodificar, multiplexar frecuencias y muchas otras cosas que ya se implementaron en BT LE. Por supuesto, si el objetivo es aprender a hacer esto, ciertamente hay formas de hacerlo funcionar, si el objetivo es "simple y barato", como dice en la primera oración de su publicación, este no es el camino a seguir.