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

6

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 interactuar con Arduino
  • Funciona en un rango pequeño (5-6 metros como máximo)
  • Consume poco poder, lo menos posible
  • Los dispositivos no deben interferir entre sí
  • No es necesario que sea en tiempo real, el retraso puede ser de cientos de milisegundos
  • En general, los dispositivos no están a la vista unos de otros (lo que significa que las soluciones de IR y similares no funcionarán)

El escenario es:

  

Alrededor de 10 dispositivos en la misma habitación, que se comunican entre sí y se envían mensajes cortos (30 caracteres como máximo) de vez en cuando, durante unas pocas horas (sin cambiar las baterías).

Lo mejor que pude encontrar es Bluetooth (BLE, específicamente), principalmente porque hay algunos Arduino + Bluetooth listos para usar módulos y la prometedora etiqueta de "Baja energía" (como máximo la mitad del consumo de energía del Bluetooth normal), pero me encantaría obtener una opinión de las personas con más experiencia en este campo.

    

6 respuestas

2

"Mejor" es difícil de definir, pero buscaría un transceptor IEEE 802.15.4.

Utilicé un MRF24J40MA para un proyecto ( enlace ). Puedes intentar ver si hay algún código que puedas 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 aproximadamente 20 mA en rx / tx, lo cual 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. Podría usar una red habilitada para balizas 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 ver los números exactos)

El único problema que se relaciona con un Arduino es que necesitas un cambiador de nivel 5- > 3.3 (si Arduino aún usa 5v).

Otro transceptor popular para el protocolo IEEE 802.15.4 es el módulo XBee, pero es mucho más caro.

    
respondido por el Bitgamma
2

No lo veo como un problema inalámbrico, sino más bien 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, se puede asignar un intervalo de tiempo a cada otro dispositivo. Una vez que se realiza la asignación, el maestro temporal puede volver a ser un compañero, pero lo importante es que se ha creado un marco de intervalos de tiempo y todos los compañeros han comprado 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 que se desea recibir. 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 quieres una batería de larga duración, entonces concéntrate en el protocolo. Esta respuesta es sólo una bocanada de una idea. La ranura de tiempo de activación se subdividirá en otras 8 ranuras que cada uno de los otros 8 pares están asignados para transmitir y, si una está transmitiendo, las otras pueden escuchar primero para verificar si pueden transmitir. Algo como esto: -

Laranura"siguiente" permite que nuevos pares se unan al grupo.

Los transceptores de baja potencia son lugares comunes, así que no voy a analizar esto.

    
respondido por el Andy aka
2

Eche un vistazo a la línea XBee de tranceivers. Existen varios tipos según el rango de transmisión y la potencia nominal deseada.

Estos dispositivos también interactúan con los proyectos de Arduino de forma casi trivial. La biblioteca Serial 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.

TENGA EN CUENTA , sin embargo, el XBee debe ser alimentado con 3.3V, por lo que se puede usar un simple regulador de voltaje de 3.3V LDO.

    
respondido por el sherrellbc
2

Prueba los módulos baratos de 433 mhz txrx. son útiles y pueden ser fácilmente interconectados con arduino. Los uso para mis proyectos de robótica hobby personal.

    
respondido por el Haresh K Miriyala
2

¿Solo por qué no se ha mencionado el módulo transceptor inalámbrico de 2,4 GHz NRF24L01? Es una unidad de baja potencia, se puede cambiar a un modo de espera para un consumo aún menor. Funciona a partir de 3.3 v, por lo que puede usar un arduino de baja potencia o un divisor, y lo mejor de todo es bastante barato.

Aquí está la nRF24L01 + página del producto junto con una nRF24L01 How-To que contiene información sobre cómo interactuar con Arduino junto con el código de muestra.

    
respondido por el NZM
0

El RFM12B viene a la mente ...

enlace

Algunas características:

  • interfaz compatible con SPI
  • Alta velocidad de datos (hasta 115.2 kbps en modo digital)
  • fuente de alimentación 2.2V-3.8V
  • Sintonización automática de la antena
  • FIFO de datos RX de 16 bits
  • Desviación de frecuencia de 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 estar bien configurada con Arduino.

El modelo RFM12B-S2 se vende por menos de $ 7 en estos días.

    
respondido por el captcha

Lea otras preguntas en las etiquetas