|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
  Raspberry Pi Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  AutoIt (Programación) Visual Basic Cosas de Windows Webs interesantes
Translate:
Búsqueda en este sitio:


.

Tutorial del Internet de las Cosas y Bluetooth con el HM10
Juan Antonio Villalpando

Volver al índice del tutorial

____________________________

161.- HM-10. BLE. Actualizar el firmaware. PIO. MLT-BT05.

- Este tutorial es la continuación de 161_HM10_BLE.htm

- Primero cargaremos en el dispositivo el firmware correspondiente a la versión HV540, para ello necesitaremos soldar 3 cables al módulo.

- Después actualizaremos a la versión v 551, para lo cual necesitaremos un adaptador FTDI.

- Con esto lograremos que funcionen los PIO.

___________________________________________________________

- Firmware HM-10. Convertir MLT-BT05 en un HM-10.

- Para que nuestro clon MLT-BT05 se un verdadero HM-10, vamos a realizar el siguiente proceso.

1.- Soldamos tres cables a los terminales 7, 8 y 11 del módulo como indico en la imagen.

- Cortamos un pequeño rectángulo del plástico transparente que envuelve al módulo, no hace falta quitar todo el plástico, solo cortar una ventana rectangular en las proximidades de los terminales 7, 8 y 11 como indica la imagen y la foto. En vez de soldar cable, puedes soldar directamente el terminal de las resistencias.

- Conectamos tres resistencia de 1 K, para limitar la corriente y proteger al módulo, ya que Arduino entrega 5 V y el módulo requiere entradas de 3,3 V, al colocar esas resistencia se limita la intensidad que entra en el módulo.

- Bajamos y descomprimimos este archivo:

HM10_firmware.zip

- El CCloader.ino lo cargamos en el Arduino UNO.

- Mediante el símbolo de sistema ejecutamos el CCLoader_x86_64.exe

- Para cargar el CC2541hm10v540.bin que es el firmware para convertirlo en HM10 con la versión v540

D:\HM10\ CCLoader_x86_64.exe 2 CC2541hm10v540.bin 0

- El número 2 es el puerto en donde tengo mi Arduino, debes cambiarlo por el puerto de tu Arduino.

- Tuve un problema con este puerto, por defecto mi Arduino estaba en el puerto 63 y la orden no admitía ese puerto, así que tuve que cambiar el número de puerto 63 por el 2.

- Para ello fui al Administrador de dispositivos y lo cambié.

- Ya tenemos a nuestro módulo actualizado a HMSoft con la versión V540.

- Lo conectamos al Arduino como indica la imagen.

- Volvemos a cargar en el Arduino este programa:

Comandos_AT.ino

// Juan A. Villalpando
// http://kio4.com/arduino/161_HM10_BLE.htm

#include <SoftwareSerial.h>
// El TXD del módulo al pin 2 (RX) del Arduino.
// El RXD del módulo al pin 3 (TX) del Arduino.
SoftwareSerial HM10(2, 3);

void setup(){
  Serial.begin(9600);
  HM10.begin(9600);
}
 
void loop(){
  if(HM10.available()){Serial.write(HM10.read());}
 
  if(Serial.available()) {HM10.write(Serial.read());}
}

- y consultamos los comandos AT.

- Los comandos AT ya no son los mismos que teníamos en el MLT-BT05, han cambiado. Algunas órdenes acaban en ?

- En el Monitor Serie establece "Sin ajuste de línea"

 

- Escribimos: AT+VERR?

y obtenemos

HMSoft V540

 

- DataSheet

_________________________________________________________________

- Actualización de V540 a V551.

- Antes de comenzar debemos tener el conectado el HM-10 al Arduino como lo hemos visto en el apartado anterior para poder escribir los comandos AT.

- Escribimos el siguiente comando: (Escribe este comando solo si vas a realizar la actualización).

AT+SBLUP

- Eso lo hacemos para poner al módulo en modo "actualización". Observa que el LED se quedará encendido y no parpadeará.

- Aunque le quitemos la alimentación y la volvamos a poner el LED volverá a quedar encendido.

- Una vez que el módulo está en modo "actualización", lo quitamos del Arduino y lo conectamos una conversor FTDI.

- Debemos conectar el módulo HM-10 al ordenador mediante este conversor FTDI. (el cable para este módulo es USB - USB mini)(tambien lo hay USB - USB, consulta el tipo de conector del cable)

- Entramos en la web de HM-10

- http://jnhuamao.cn/download_rom_en.asp?id=1#

- Instalé la versión V709 pero no me funcionó bien los comandos AT, así que volví a instalar esta vez la V551.

[A partir de la versión V7xx las velocidad de transmisión por defecto es de 1152000]

- También es conveniente bajar el HMPC Assistant.

- Ejecutamos HMSoft.exe y cargamos HMSoft.bin

- HMPC Assistant.

 

- Una vez actualizado volvemos a conectarlo al Arduino. Volvemos a cargar este programa.

Comandos_AT.ino

// Juan A. Villalpando
// http://kio4.com/arduino/161_HM10_BLE.htm

#include <SoftwareSerial.h>
// El TXD del módulo al pin 2 (RX) del Arduino.
// El RXD del módulo al pin 3 (TX) del Arduino.
SoftwareSerial HM10(2, 3);

void setup(){
  Serial.begin(9600);
  HM10.begin(9600);
}
 
void loop(){
  if(HM10.available()){Serial.write(HM10.read());}
 
  if(Serial.available()) {HM10.write(Serial.read());}
}

- Abrimos el Monitor Serie.

- Establecemos 9600 baudios y "Sin ajuste de línea"

- Escribimos en el Monitor Seria: AT+VERR?

y obtenemos

HMSoft V551

- Escribimos: AT+BAUD?

- Obtendremos Get:0, indicando que está a 9600

- También podemos enviar los comando mediante el programa HMPC Assistant.

_________________________________________________________________

- Intento.

- Intenté cargar directamente el firmware V551 con el primer método, es decir con las tres resistencias, pero no me funcionó.

- Cargaba el firmware pero se mantenía con el LED encendido.

- Así que solo lo pude hacer en dos pasos, primero con las tres resistencias cargo la versión V540 y luego con el módulo FTDI actualizo a V551.

_________________________________________________________________

- PIO. Programmed Input Output.

- Vamos a utilizar los pines del módulo HM-10

- Vamos a probar si funcionan los PIO.

AT+PIO40 ---- Poner el terminal 4 en bajo

AT+PIO41 ---- Poner el terminal 4 en alto

AT+PIO4? ---- Obtener el estado del terminal 4.

AT+PIO?? ---- Obtener el estado de todos los terminales.

- Podemos soldar una resistencia y un LED al PIO2 y encenderlo y apagarlo desde el Monitor Serie mediante:

AT+PIO20 ---- Poner el terminal 2 en bajo

AT+PIO21 ---- Poner el terminal 2 en alto

- Obtener el estado del PIO11

- AT+ADCB?

PIO2 y PIO3 pueden suministrar 20 mA, los demás 4 mA

_________________________________________________________________

- PIO. Programmed Input Output. Stand alone. Independiente.

- Al PIO10 se le denomina PIOA.
- Al PIO11 se le denomina PIOB.

- DataSheet

- Estando conectado al Arduino como en el apartado anterior, escribimos el siguiente comando para ponerlo en MODE2

AT+MODE2

- Confirmamos

AT+MODE?

- También lo vamos a poner de modo que realice notificaciones:

AT+NOTI1

- Ya podemos quitar el módulo del Arduino y alimentarlo independientemente, en mi caso lo alimento con una pila de botón de 3 V.

- Si no tienes pila, aliméntalo con los 3,3 V de la placa de Arduino, (pero sin conectar los cables TX y RX).

- Ahora podemos ejecutar la nRF app y enviar el String AT+PIO21

1.- Lo vamos a realizar también con App Inventor.

p110_hm10_AT_Command.aia

- Enviaremos AT+PIO21 para encender el LED y AT+PIO20 para apagarlo.

_____________________________
- Diseño.

____________________________
- Bloques.

__________________________________________________
2.- Ahora vamos a obtener respuesta mediante RegisterForString.

p110_hm10_AT_Command_Register.aia

- En el mismo ejemplo anterior he añadido RegisterForStrings.

- Cuando cambia el dato, el BLE envía una respuesta de la forma:

["OK+PIO2:0"]

["OK+Col:80"]

---------------------

["OK+PIO2:1"]

["OK+Col:84"]

____________________________
- Diseño.

____________________________
- Bloques.

 

_______________________________

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información