You are on page 1of 16

Objetivos

o Presentar el módulo WIFI HLK-RM04.


o Entrar en detalle en la configuración básica.
o Montar un pequeño circuito con él para comprobar que se comporta como es
debido.
o Ver como resetearlo cuando os de problemas.

Material requerido.

Arduino UNO o MEGA.

Un módulo WIFI HLK-RM04,

Algunos cables de protoboard, preferiblemente Dupont


macho/hembra más una protoboard

Presentando el módulo WIFI HLK-RM04


En sesiones previas, ya vimos el módulo WIFI ESP8266, que en muchos aspectos es muy similar
al que nos ocupa hoy HLK-RM04, porque al igual que aquel convierte el WIFI a puerta serie y
el manejo es similar, pero también hay diferencias importantes que conviene conocer.

Lo primero que salta a la vista es que la documentación del fabricante chino es un auténtico
barullo, con malas traducciones al inglés y omisiones clamorosas de información, y tampoco
ayuda mucho que no hay demasiados ejemplos detallados por ahí de cómo usar el módulo de
marras.

Por eso voy a excederme un poco (Espero que no mucho) en detallar en este capítulo la
configuración del módulo WIFI, porque a mí me ha dado guerra el tema como pocos, y he
perdido mucho tiempo revisando páginas por ahí. Así que voy a intentar evitar el problema a los
sufridos lectores que no hayan tenido la precaución de irse.

En primer lugar tenemos que decir que este módulo no es un adaptador WIFI para tu Arduino,
sino un micro PC (Ahora se llaman SOCs, ele ahí) corriendo un Linux OpenWrt similar al que
incluye el Arduino Yun y que incorpora un módulo WIFI.

 El módulo HLK-RM04 acepta la distribución OpeWrt y podéis volcarle modificaciones


de esta distro o actualizarla de un modo similar a como lo hacéis con cualquier distro
normal de Linux.
 Eso incluye cargarle vuestros propios programas en Python o PHP, por ejemplo, lo que
abre posibilidades muy interesantes a muy bajo coste.

Es el micro PC el que gestiona toda la conexión a la WIFI y gestiona la pila (Stack) TCPIP, con
lo que encima tenemos la ventaja de quitarnos de encima la gestión en Arduino de toda esa
historia.

Pero… ¿Y entonces como nos comunicamos con el HLK-RM04? Pues tranquilamente a través
de una puerta serie que incluye.

De hecho, lo que hace este modulito es gestionar la conexión WIFI de forma autónoma y enviar
a nuestro Duino lo que le entra por TCPIP y nos lo convierte, limpio de polvo y paja, a datos en
nuestra puerta serie y viceversa (En esto es igual que el módulo ESP8266 que vimos en las
sesiones previas).

Esto tiene el inconveniente de que nosotros no vemos la WIFI, sino una puerta serie. Y a cambio
nos despreocupamos de la gestión de la conexión y del transporte de datos liberando memoria y
tiempo de Arduino para nuestras cosas.

A diferencia del ESP-8266 el modulo HLK-RM04 dispone de un servidor web en una dirección
concreta que podemos usar para configurar los datos de la conexión y por si esto se queda corto,
podemos usar, además, comandos AT (Os acordáis aun de ellos) para configurar vía el puerto
serie distintos aspectos.

Lo primero necesitamos conectar el HLK-RM04 a nuestro Arduino y aunque es un módulo con


un montón de pines no hay que asustarse. Solo se necesita conectar 4 a nuestro Arduino.

 Vale la pena indicar aquí, que la distancia entre pines del módulo HLK-RM04, no
permite insertarlo en una protoboard, por lo que necesitaras cables Dupont
macho/hembra.

Como siempre, conviene que le echéis un vistazo a la hoja de características. Aquí tenéis el
pinout del modulo

La conexión a un Arduino UNO o MEGA es tan sencilla que ni siquiera compensa dibujar un
diagrama de conexión.

Arduino 5V GND 3 (Rx) 2 (Tx)


HLK-RM04 1 2 20 (Tx) 21 (Rx)
De nuevo, he visto varios ejemplos en Internet que piden que lo conectemos a los pines 0 y 1 de
Arduino para aprovechar la puerta serie, pero aquí no vamos a hacer eso si podemos evitarlo.
Solo faltaría andar desconectándolos cada vez que queramos reprogramar el Arduino.

Así que si queremos usar un Arduino UNO usaremos la librería SoftwareSerial, como es habitual
y por eso conectamos a los pines digitales 2 y 3 de nuestro Duino,pero como yo soy vago
homologado, voy a usar un MEGA porque me va a dejar subir la velocidad mas y poder probar
el modulo dándole caña.

Pero antes de escribir el programa de gestión de Arduino, vamos a necesitar configurar el


módulo HLK-RM04 a nuestros intereses. Vamos a ver cómo.

Configurando el HLK-RM04

Para poder probar el módulo basta con que enchufes los pines 0 y 1 del módulo a 5V y GND
respectivamente. Con esto el chip se activara y ya podremos buscarlo en la WIFI.

Cuando arranca por primera vez está en la dirección 192.168.16.254 y además se configura como
un Router WIFI. Eso significa que no necesitas cambiar tu IP para buscarlo, si no que si
configuras tu IP por DHCP bastará con que busques un Router que se llamará algo así como Hi-
LINK-xxxx, en mi caso es HI-LINK_8835.

Conéctate a él con la clave por defecto: 12345678.


Con ello te habrás conectado al módulo que por defecto está configurado como un Router WIFI.

Ahora vamos a conectarnos al servidor Web del módulo. Para ello abre tu navegador y llévale a
la dirección IP 192.168.16.254. Si no hay problemas te pedirá un usuario y password para
conectarte al Router. Usa:

Usuario: admin

Password: admin

Si todo va bien verás la pantalla de bienvenida del Router:

Tenemos ahora que configurar unos pocos parámetros. Lo primero es seleccionar el NetMode,
porque este curioso módulo, puede funcionar de varios modos:

 Cliente WIFI a puerto serie.


 Punto de acceso WIFI.
 Cliente Ethernet a puerto serie, para lo que necesitamos un adaptador adicional.

Vamos a seleccionar WIFI (Client)-Serial, para que se pueda conectar a nuestra WIFI principal.
Veréis algo como esto:

Ahora tenemos que configurar el acceso WIFI a nuestra red. Pulsa en el botón SCAN para
localizar WIFIs, selecciona la que corresponda y pulsa Apply.
 El modulo por sí mismo no tiene antena WIFI, (aunque si un conector para una antena
estándard) y necesitaras tener buena señal WIFI o te puede dar problemas para
descubrir las redes.
 Puedes conectarle una antena típica al conector del que dispone y mejorará mucho la
recepción.
Configura ahora, los parámetros de tu WIFI: Contraseña y tipo de encriptación.

Dependiendo de si vas a utilizar tu modulo como cliente o servidor WEB, te interesa configurar
tu IP por DHCP o bien con dirección estática respectivamente. En mi caso he elegido una
dirección IP estática: 192.168.1.254 de mi subred y he configurado la dirección de mi Router y
DNS primario. Asegúrate de configurar correctamente todos estos valores o tendrás problemas a
la hora de conectar.

También he elegido configurar la velocidad de comunicación serie en 57600, 8, n, 1. SI vas a


usar un UNO para conectar no te conviene pasar de esta velocidad para evitar problemas, pero
con un MEGA o DUE que tienen puertas hardware puedes subir esta velocidad.

Configuramos además, el puerto donde atenderá los servicios de red como el 8080 (En el 80 sale
siempre la página de configuración del módulo, y no he visto como cambiarla).
Pulsa el botón de Apply, y listo. Perderás la conexión con el modulo porque cambia de dirección
IP y deja de ser punto de acceso WIFI, así que te desconectará.

 Un punto que tienden a olvidarse de decirte en Internet, es que aparentemente, para


activar la configuración nueva, hay que apagar y encender el modulo ( Y darle al menos
30 segundos para que arranque).

Vuelve a conectarte a la red local, bien por WIFI o por Ethernet y ya deberías poderte conectar al
módulo desde tu red, accediendo a su nueva dirección IP local. En mi caso 192.168.1.254:
Si algo falla y no ves el módulo: Reset

Si no consigues conectarte al módulo, no te asustes todavía. Podemos resetearlo para que vuelva
a su condición inicial. Para ello tienes que saber que según el manual del fabricante hay que
poner el pin 10 del módulo a GND durante no menos de 6 segundos (Recordad que cuando todo
falla, es que hay que leerse el manual).

Como a mí, me ha estado mareando continuamente, acabé, haciendo un programa para resetear
el modulo, porque eso de mirar cómo pasan 6 segundos me acaba cabreando.
Aquí tienes el programita para Resetear el módulo:

//#include <SoftwareSerial.h>
//SoftwareSerial BT1(3, 2); // RX | TX

void setup()
{ Serial.begin(9600);
pinMode(7,OUTPUT);
digitalWrite( 7 , HIGH); // Levanta el pin 7
delay(1000);
Serial.println("Reseteando el modulo WIFI HLK-RM04 ");

digitalWrite( 7 , LOW); // Iniciamos el Reset


Serial.println("Iniciando reset...");
delay(6500);
digitalWrite( 7 , HIGH); // Volvemos alevantar el pin 7

Serial.println("HLK-RM04 reseteado OK");


}

void loop()
{ }

Para probar la comunicación

Cuando puedas, accede a su dirección IP de nuestra red local, ya solo falta comprobar que la
puerta serie comunica correctamente con nuestro Duino. Para ello conecta los hilos de
comunicaciones entre el módulo y tu Arduino:
Carga ahora este programa de comunicaciones en tu Arduino, que lo único que hace es enviar y
recibir todo que llegue a las puertas serie:

//#include <SoftwareSerial.h> //Si tu Arduino es UNO o similar descomenta


esta linea
//SoftwareSerial Serial3(3, 2); // RX | TX y crea una instancia de
Softwareserial

void setup()
{ Serial.begin(57600);
Serial3.begin(57600);
}

void loop()
{ if (Serial3.available())
{ char c = Serial3.read() ;
Serial.print(c);
}

if (Serial.available())
{ char c = Serial.read();
Serial3.print(c);
}
}

Solo falta ya acceder al puerto 8080 de la dirección IP del modulo:

En la consola serie de Arduino deberías ver algo parecido a esto:


Tenemos activado un servidor Web en el módulo HLK-RM04, que nos reenvía los datos a través
d la puerta serie. No está mal para un módulo de menos de 20€

En la próxima sesión haremos algún ejemplo de prueba para ver cómo manejar el acceso WIFI
de este modulito.

You might also like