La mejor opción para comunicaciones inalámbricas de baja potencia y corto alcance


9

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.


2
Yo voto por Bluetooth.
nidhin

Danos algo de información sobre lo que decidiste no usar y tu justificación.
Jason_L_Bens

Como máximo, de 5 a 6 metros (el bluetooth puede funcionar más allá de esto). ¿Son los 6 m el valor absoluto que no debe superar el límite? Muy poco poder: ¿qué tal si nombra y avergüenza algunos números aquí? No debe interferir entre sí, ¿qué significa esto exactamente?
Andy alias

@Andyaka: No, lo que quiero decir es que los dispositivos estarán separados por 6 metros como máximo, por lo tanto, no hay necesidad de soportar distancias mayores. En cuanto a "muy poca energía", planeo ejecutar cada dispositivo (Arduino + LCD + módulo inalámbrico) con una o dos baterías AA como máximo, y estos dispositivos deberían poder comunicarse durante al menos una hora sin cambiar las baterías.
Giulio Muscarello

1
A mí me suena como una piconet Bluetooth.
Ignacio Vazquez-Abrams

Respuestas:


3

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 Serialbiblioteca 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.


2

"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.


2

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: -

ingrese la descripción de la imagen aquí

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.


2

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.


2

¿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.


0

El RFM12B viene a la mente.

http://www.hoperf.com/rf/fsk_module/RFM12B.htm

Algunas caracteristicas:

  • Interfaz compatible con SPI
  • Alta velocidad de datos (hasta 115.2 kbps en modo digital)
  • Fuente de alimentación de 2.2V-3.8V
  • Sintonización automática de antena
  • FIFO de datos RX de 16 bits
  • Desviación de frecuencia TX programable (de 15 a 240 kHz)
  • Ancho de banda del receptor programable (de 67 a 400 kHz)
  • Indicador de intensidad de señal analógica y digital.
  • Salida de señal de reloj y reinicio para uso externo de MCU

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.