Añade Wifi a tú proyecto arduino.

hlk-rm04Con éste módulo podemos dotar de conectividad Wifi a una placa Arduino, o a cualquier desarrollo basado en microcontrolador (PIC, AVR, etc), gracias a su UART podemos comunicarnos facilmente con él, todo lo que recibe es transmitido mediante su puerto serie, o si lo preferimos, podemos utilizar el puerto Ethernet (disponibles en los pines de conexión) que permite también conectividad cableada por LAN y funciones de router entre las interfaces (Ethernet-Serial-Wifi), además de poder funcionar como cliente o como AP.

El módulo tiene la posibilidad de configurarse mediante una interface Web en forma inalámbrica, como veremos a continuación, o si preferimos podemos utilizar comandos AT.

Otra de las características a destacar, es que el módulo corre sobre una distribución Linux, OpenWRT, con lo que podemos incluso compilar nuestros propios firmwares.

Un módulo con una relación calidad/precio insuperable, que permite una infinidad de aplicaciones prácticas en domótica, automatización, seguridad, robótica, etc.

 

Principales especificaciones:

- Estandares soportados: 802.11n, 802.11g, 802.11b (inalámbrico) y 802.3, 802.3u (cableado)
- Data rate inalámbrico: 11n/b/g
- Potencia de Transmisión: 12-15dBm
- Antena: Onboard/Externa
- Modo de funcionamiento Wifi: Cliente/AP/Router
- WDS: Soportado
- Seguridad Wireless: Filtrado MAC/WEP/WPA/WPA2.
- Configuración Web y comandos AT.
- Baud Rate Serial: 50-230400bps.
- Voltaje de operación: 5V.
- Voltage GPIO: 3V.

 

El objetivo de ésta entrada será configurar el módulo para dotar de wifi nuestra placa arduino, pero si alguién quiere utilizarlo para su proyecto con cualquier otra placa de desarrollo, los pasos son los mismos.

Lo primero que debemos realizar es el conexionado para alimentar nuestra placa, si estamos utilizando arduino, podemos conectar directamente y obtener de ahí los 5v con los que trabaja.

Hay que tener encuenta que el consumo del hlk-rm04 es de 300mA, por lo que sumado a nuestro arduino es posible que si utilizamos nuestro puerto USB del PC para alimentación, pueda no tener suficiente pontencia para el conjunto. Nosotros no hemos tenido ningún problema en todas las pruebas que hemos realizado.

hlk-rm04 pinhlk-rm04 Pin definition 

Para el desarrollo recomendamos utilizar un arduino mega con varios puertos serie, ya que si utilizas arduino uno, será mucho más difícil realizar debug, ya que el único puerto serie que dispone será utilizado para la conexión con el módulo HLK-RM04. 

Para arduino uno: Recuerda que si tienes conectado el puerto serie del RM04 en tu placa no podrás programarla y tendrás que desconectar el módulo para hacerlo.

 

Los pines de conexiones con nuestro arduino será de la siguiente forma:

Pines:

Pin 1 y pin 28 --> VCC (5v)

Pin 2 --> GND

Si tienes un arduino uno deberás conectar estos dos pines: 

 HLK-RM04 P20 (RX) -> P1 (TX) arduino 
 HLK-RM04 P21 (TX) -> P0 (RX) arduino

Si tienes un arduino mega utiliza el Serial1:

 HLK-RM04 P20 (RX) -> P18 (TX) arduino 
 HLK-RM04 P21 (TX) -> P19 (RX) arduino

Asegura que la conexión es la correcta para evitar problemas

Si queremos también está disponible una shield para arduino uno que nos facilita el conexionado. Dispone de un switch con el que podemos programar arduino sin necesidad de quitar la shield. Pero si estamos utilizando Arduino Mega no será necesario preocuparse de nada.

shield hlk-rm04shield hlk-rm04 2 

Pongo el esquema de la documentación por si alguién no está utilizando arduino.

Tener en cuenta los condensadores de filtro, ya que eliminan ruido y posibles lecturas erróneas en la unidad. Podemos obviar el RST y WPS.

Reference design wi046 

Una vez realizado el conexionado nos disponemos a realizar la primera puesta en marcha, conectamos arduino y esperamos como unos 10 segundos a que el sistema este completamente cargado, aparecerá una nueva red wifi llamada HI_LINK_XXXX, los últimos dígitos coinciden con la MAC que verás en la etiqueta de tu módulo.

Como clave por defecto pondremos 12345678.

Si no la recuerdas puedes resetear el dispositivo

Conecta y entramos en la web de gestión:

Abrimos el navegador con la siguiente url: http://192.168.16.254/

Por defecto:

Usuario: admin 
Clave: admin

Bien, ya estamos dentro de nuestro módulo, ahora nos encontramos con varias formas de configuración.

Ethernet Mode:

Ethernet mode


 Wifi AP Mode:

WifiAp mode

Wifi Client Mode:

Wifi client mode

 

Nosotros nos vamos a centrar en ésta última configuración cliente, es decir, nuestro arduino será un dispositivo más de nuestra red doméstica, con lo cual será accesible desde cualquier PC o Móvil que esté conectado en nuestra red.

Para configurar este modo realizamos lo siguiente.

configuracion cliente

 

En éste modo de configuración tambien nos permite configurar el puerto serie. En principio lo vamos a dejar tal y como está, excepto el protocolo de red que lo vamos a cambiar por TCP/IP.

configuracion uart

Una vez relleno todos nuestros datos, guardamos los cambios y esperamos a que el módulo arranque con el nuevo modo de trabajo.

Con esto ya tenemos el hlk-rm04 configurado y listo para trabajar con nuestra placa arduino.

 

Ahora programaremos el arduino mega:

Vamos con un pequeño ejemplo el cual enviará todo lo que recibe.

										

 void setup() {
  Serial1.begin(115200);
}

void loop() {
  char c;
  c = Serial1.read();
  // Enviamos el texto introducido por el monitor serial.
  if (c=='a') {
    Serial1.println();
    Serial1.println("Action A");
  }
  if(c=='b'){
    Serial1.println();
    Serial1.println("Action B");
  }
 
}


Una vez finalizada la programación, esperamos unos diez segundos para que nuestro módulo se haya conectado a la red wifi y finalmente para una prueba rápidaconectamos por telnet a la IP de nuestro dispositivo 192.168.11.245 y puerto 8080.

telnet 192.168.11.245 8080

Una vez conectado, obtendremos un mensaje u otro dependiendo si enviamos el carácter 'a' o el 'b'.
telnet

Con esto hemos ampliado las funcionalidades de nuestra placa arduino, añadiendo Wifi a nuestros poryectos de una forma muy económica.

Como proyecto podemos utilizar un sensor de temperatura y humedad, tal y como se explica en el artículo anterior, y obtener estos datos vía wifi.

 

 

Compartir