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:
El escenario es:
Unos 10 dispositivos en la misma habitación, comunicándose entre sí, enviándose mensajes cortos (30 caracteres como máximo) de vez en cuando, durante unas horas (sin cambiar las pilas).
Lo mejor que pude encontrar es Bluetooth (BLE, específicamente), principalmente porque hay algunos módulos Arduino + Bluetooth listos para usar y la prometedora etiqueta "Baja energía" (como máximo la mitad del consumo de energía de Bluetooth normal), pero yo Me encantaría conocer la opinión de personas con más experiencia en este campo.
Eche un vistazo a la línea de transceptores XBee . Hay 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 manera casi trivial. La Serial
biblioteca utiliza el hardware UART del AVR, que es directamente compatible con el pin Rx del XBee. ¡También tenga en cuenta que no se necesitan cambiadores de nivel porque el pin XBee Rx/Tx funciona con 5V!
Sin embargo, tenga en cuenta que el XBee debe funcionar con 3,3 V, por lo que se puede utilizar un regulador de voltaje LDO de 3,3 V simple.
"Mejor" es difícil de definir, pero buscaría un transceptor IEEE 802.15.4.
Usé 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 unos 20mA en rx/tx, que no es mucho. Sin embargo, para prolongar la duración de la batería, 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 actuando 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 caro.
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 adecuada, adoptar el papel de "maestro" temporal, entonces se puede asignar un intervalo de tiempo a cada uno de los demás dispositivos. 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 aceptado 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 par se despierta, tiene que esperar para ver si alguno de los otros 8 pares le está enviando un mensaje. El tiempo es fundamental, pero si desea una batería de larga duración, concéntrese en el protocolo. Esta respuesta es solo una bocanada de una idea. El intervalo de tiempo de activación se subdividirá en otros 8 intervalos en los que cada uno de los otros 8 pares está asignado para transmitir y, si uno está transmitiendo, los demás pueden escuchar primero para verificar si pueden transmitir. Algo como esto: -
El espacio "siguiente" permite que nuevos compañeros se unan al grupo.
Los transceptores de baja potencia son un lugar común, así que no voy a investigar esto.
Prueba los módulos txrx de 433 mhz baratos. son útiles y se pueden interconectar fácilmente con arduino. Los uso para mis proyectos personales de robótica de hobby.
Solo por curiosidad, ¿por qué no se ha mencionado el módulo transceptor inalámbrico NRF24L01 de 2,4 GHz? Es una unidad de baja potencia, se puede cambiar a un modo de espera para un consumo aún menor. 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 nRF24L01 How-To que contiene información sobre cómo conectar uno a un Arduino junto con un código de muestra.
El RFM12B viene a la mente..
http://www.hoperf.com/rf/fsk_module/RFM12B.htm
Algunas caracteristicas:
La interfaz de comunicaciones SPI debe ser bastante adecuada para configurarse con Arduino.
El modelo RFM12B-S2 se vende por menos de $7 en estos días.
nidin
Jason_L_Bens
Andy alias
Julio Muscarello
Julio Muscarello
Ignacio Vázquez-Abrams
vladimir cravero
Julio Muscarello