Tutorial: Uso del Módulo RFM69HCW con Arduino
Introducción
En este tutorial, se mostrará cómo utilizar el módulo transceptor LoRa RFM69HCW de 915 MHz con un Arduino Uno. Además, se explicará el uso de un módulo bidireccional TTL TXS0108E, que puede ser necesario si se utiliza una placa Arduino que opere con niveles de voltaje de E/S de 5V. Si utilizas un Arduino o una placa que funcione a 3.3V, el módulo bidireccional puede no ser necesario.
RFM69HCW
El RFM69HCW es un módulo de radiofrecuencia de alta potencia para aplicaciones de comunicación inalámbrica en la banda ISM. Es conocido por su eficiencia energética, largo alcance y transmisión de datos confiable. El RFM69HCW viene en dos versiones de frecuencia: una versión de 915 MHz y una versión de 434 MHz.
Características principales
- Frecuencia de operación: 315, 433, 868 y 915 MHz.
- Potencia de salida: hasta +20 dBm.
- Sensibilidad de recepción: hasta -120 dBm.
- Modulación: FSK, GFSK, MSK, OOK.
- Tasa de datos: 1.2 kbps a 300 kbps.
- Voltaje de operación: 1.8V a 3.6V.
- Consumo de energía en modo espera: 0.1 µA.
- Interfaz SPI.
- Largo alcance.
- Eficiencia energética.
- Seguridad con cifrado AES-128.
- Flexibilidad en frecuencia y modulación.
Lista de Materiales para el Tutorial
- 2 Arduinos
- 2 módulos transceptores LoRa RFM69HCW (915 MHz)
- 2 módulos bidireccionales TTL TXS0108E (o cualquier otro convertidor lógico de niveles)
- Cables de conexión
- 2 resistencias de 220 ohmios
- 2 LEDs
- 2 fuentes de alimentación de 3.3V
Requerimientos de Energía del RFM69HCW
El módulo RFM69HCW funciona con voltajes de 1.8V a 3.6V y puede consumir hasta 130mA de corriente cuando está transmitiendo.
IMPORTANTE: No alimentes tu RFM69HCW con 5V ni conectes las líneas de datos directamente a un microprocesador de 5V. Hacerlo dañará el dispositivo.
Consejo: Si tu fuente de alimentación no puede proporcionar 130mA, tu Arduino puede reiniciarse o bloquearse cuando intentes transmitir. En estos casos, un capacitor grande colocado entre la alimentación y tierra en la placa del RFM69HCW debería ayudar. Este capacitor almacenará energía mientras la placa no esté transmitiendo y la liberará cuando sea necesario.
Por cierto, el RFM69HCW consume 16mA cuando está en modo de recepción, y tiene varias opciones de sueño que consumen menos energía.
Diagrama de conexión
Diferentes modelos de Arduino utilizan pines distintos para el puerto SPI (Serial Peripheral Interface). El puerto SPI es una interfaz de comunicación que permite que el microcontrolador del Arduino se comunique con otros dispositivos, como sensores o módulos. Aunque el protocolo SPI es estándar, la asignación de los pines específicos (como MISO, MOSI, SCK y SS) puede variar entre modelos de Arduino. Por ejemplo, en un Arduino Uno, los pines SPI son el 11 (MOSI), 12 (MISO), 13 (SCK) y 10 (SS), mientras que en un Arduino Mega, los pines correspondientes son el 51 (MOSI), 50 (MISO), 52 (SCK) y 53 (SS).
El módulo RFM69HCW se puede conectar directamente a placas que operen a 3.3V, como el Arduino Pro o el Arduino Pro Mini, ya que estos operan a un voltaje compatible con el módulo. Sin embargo, si estás utilizando placas que funcionan a 5V, como el Arduino Uno, necesitarás un convertidor de nivel lógico para adaptar los niveles de voltaje y evitar dañar el RFM69HCW, ya que el módulo no soporta señales de 5V.
Antena
IMPORTANTE: Debes conectar una antena al RFM69HCW para evitar daños y asegurar su funcionamiento. La antena más sencilla es un cable de 78 mm soldado al pin "A / ANT", pero también puedes usar antenas como dipolos o antenas comerciales para mejorar el alcance. Para esto, puedes soldar un conector SMA a la placa RFM69HCW y conectar una antena externa.
Librería
Para instalar la librería RFM69 LowPowerLab en el IDE de Arduino, abre el IDE y ve a "Sketch" > "Include Library" > "Manage Libraries". En el gestor de bibliotecas, busca "RFM69_LowPowerLab" en el campo de búsqueda. Selecciona la librería y haz clic en "Install" para instalarla. Instala con todas las dependencias relacionadas. Esto te permitirá utilizar la librería en tus proyectos y aprovechar sus funciones para el módulo RFM69.
Código
Carga el siguiente código en uno de los Arduinos:Y el siguiente código en el otro Arduino:
Para configurar el módulo RFM69HCW y enviar o recibir datos, puedes ajustar varias opciones en el código:
- Dirección y Red: Asigna un número único de nodo y un número de red a cada módulo para identificar y separar las comunicaciones. El número de red debe ser el mismo para todos los módulos que se comuniquen entre sí, mientras que cada nodo debe tener un número único en su red.
- Modo Promiscuo: Habilita o desactiva el modo promiscuo para que el nodo reciba todos los mensajes en la red, útil para depuración pero no para comunicaciones privadas.
- Reconocimiento (ACK): Configura si deseas recibir un reconocimiento del receptor para asegurar que el mensaje se haya recibido correctamente. Puedes optar por enviar mensajes "a ciegas" o con confirmación de recepción.
- Encriptación: Activa o desactiva la encriptación AES para proteger los datos transmitidos. Asegúrate de que ambos extremos de la comunicación utilicen la misma clave de 16 bytes para descifrar los mensajes.
Resultados
Con los Arduinos programados, abre dos monitores seriales a 9600 baudios y con retorno de carro activado. Puedes hacer esto abriendo dos instancias del IDE de Arduino y seleccionando el puerto correspondiente a cada Arduino. Deberías ver una confirmación de que los módulos se iniciaron correctamente.
Prueba enviando un mensaje desde cada nodo. Verás cómo la información se recibe en el otro nodo y cómo los LEDs parpadearán para indicar que se ha recibido información.
Conclusiones
Esperamos que este tutorial te haya proporcionado una base sólida para comenzar a trabajar con el módulo RFM69HCW. Con la información y los ejemplos proporcionados, tendrás las herramientas necesarias para explorar más a fondo sus características y capacidades.
Te animamos a investigar más sobre este módulo y experimentar con sus distintas funcionalidades para aprovechar al máximo su potencial en tus proyectos. La comprensión y el dominio de estos componentes te permitirán desarrollar aplicaciones más avanzadas y eficientes en el ámbito de la comunicación inalámbrica.
No comments
comments