Estoy trabajando en un proyecto que se basa en la comunicación inalámbrica y estoy buscando la mejor alternativa. Estos son los requisitos de diseño:
- Es fácil de interactuar con Arduino
- Funciona en un rango pequeño (5-6 metros como máximo)
- Consume poca energía, lo menos posible
- Los dispositivos no deben interferir entre sí
- No necesita ser en tiempo real, el retraso puede ser del orden de cientos de milisegundos
- En general, los dispositivos no están a la vista entre sí (lo que significa que IR y soluciones similares no funcionarán)
El escenario es:
Alrededor de 10 dispositivos en la misma habitación, comunicándose entre sí, enviándose mensajes cortos (30 caracteres como máximo) entre sí de vez en cuando, durante unas horas (sin cambiar las baterías).
Lo mejor que pude encontrar es Bluetooth (BLE, específicamente), principalmente porque hay algunos módulos Bluetooth Arduino + listos para usar y la prometedora etiqueta "Low Energy" (como máximo la mitad del consumo de energía del Bluetooth normal), pero Me encanta recibir una opinión de personas con más experiencia en este campo.
Respuestas:
Eche un vistazo a la línea de tranceivers XBee . Hay varios tipos según el rango de transmisión y la potencia nominal deseada.
Estos dispositivos también interactúan con proyectos de Arduino de manera casi trivial. La
Serial
biblioteca hace uso del hardware UART del AVR que es directamente compatible con el pin Rx del XBee. También tenga en cuenta que no se necesitan cambios de nivel porque el pin XBee Rx / Tx funciona con 5V.DO nota , sin embargo, que el XBee debe ser alimentado con 3,3 V, por lo que un simple regulador de 3.3V LDO se puede utilizar.
fuente
"Mejor" es difícil de definir, pero buscaría un transceptor IEEE 802.15.4.
Utilicé un MRF24J40MA para un proyecto ( https://github.com/briksoftware/gradusnik ). Puede intentar ver si hay algún código que pueda usar allí. El proyecto es para PIC, pero muchas cosas son en realidad independientes de la plataforma (especialmente los otros proyectos de los que depende).
El módulo consume alrededor de 20 mA en rx / tx, que no es mucho. Sin embargo, para obtener un tiempo de batería prolongado, debe poner el módulo en reposo la mayor parte del tiempo. Puede usar una red con baliza habilitada para esto, con un dispositivo que actúa como coordinador. El módulo consume algunos µA en modo de suspensión (consulte la hoja de datos para conocer los números exactos)
El único problema al interactuar con un Arduino es que necesita una palanca de cambios de nivel 5-> 3.3 (si Arduino todavía usa 5v).
Otro transceptor popular para el protocolo IEEE 802.15.4 es el módulo XBee, pero es mucho más costoso.
fuente
No lo veo como un problema inalámbrico, sino más como un problema de protocolo.
Si la conservación de la batería es el nombre del juego y si un dispositivo puede, a través de la programación apropiada, adoptar el rol de "maestro" temporal, entonces a cada otro dispositivo se le puede asignar un intervalo de tiempo. Una vez que se realiza la asignación, el maestro temporal puede volver a ser un par, pero lo importante es que se ha creado un marco de intervalos de tiempo y todos los pares habrán comprado en este marco.
¿Qué hace esto? Tener un intervalo de tiempo significa que puede apagar la radio durante cientos de milisegundos y despertarse para ver si hay una transmisión en curso destinada a ser recibida. Cuando un compañero se despierta, tiene que esperar para ver si alguno de los otros 8 compañeros le está enviando un mensaje. El tiempo es crítico, pero si desea una batería de larga duración, concéntrese en el protocolo. Esta respuesta es solo una bocanada de idea. El intervalo de tiempo de activación se subdividirá en otros 8 intervalos que cada uno de los otros 8 pares están asignados para transmitir y, si uno está transmitiendo, los otros pueden escuchar primero para verificar si pueden transmitir. Algo como esto: -
El "siguiente" espacio permite que nuevos pares se unan al grupo.
Los transceptores de baja potencia son lugares comunes, por lo que no voy a investigar esto.
fuente
Pruebe los módulos baratos 433 mhz txrx. son útiles y pueden interactuar fácilmente con arduino. Los uso para mis proyectos personales de robótica hobby.
fuente
¿Solo por qué no se ha mencionado el módulo de transceptor inalámbrico NRF24L01 2.4GHz? Es una unidad de baja potencia, se puede cambiar al modo de espera para un consumo aún más bajo. Funciona con 3.3v, por lo que puede usar un arduino de baja potencia o un divisor, y lo mejor de todo es bastante barato.
Aquí está la página del producto nRF24L01 + junto con un tutorial nRF24L01 que contiene información sobre la interfaz de uno con un Arduino junto con un código de muestra.
fuente
El RFM12B viene a la mente.
http://www.hoperf.com/rf/fsk_module/RFM12B.htm
Algunas caracteristicas:
La interfaz de comunicaciones SPI debe configurarse de manera justa con Arduino.
El modelo RFM12B-S2 se vende por menos de $ 7 en estos días.
fuente