Autor Tema: Conexion PIC - WiFi  (Leído 10089 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Conexion PIC - WiFi
« en: 29 de Diciembre de 2014, 21:40:55 »
Saludos!

Ya que ando con algo de tiempo, me he puesto en la tarea de realizar un robot parecido al que hice AQUI, pero esta vez quiero controlarlo por WiFi.

Para ello he adquirido el modulo HLK-RM04, cuyo funcionamiento basico lo describo AQUI.



Este modulo viene configurado de fabrica como Acces Point (AP), es decir, genera una red WiFi propia a la cual nos podemos conectar desde cualquier equipo con la clave: 12345678. Una vez estemos conectados al modulo, podemos configurarlo como si de un router se tratara; solo es necesario entrar desde el navegador a la direccion: 192.168.11.254 y listo, aparecen las opciones de configuracion (en algunos modulos la direccion es 192.168.16.254 y la clave es 00000000).



Desde esta pagina se puede configurar la parte de comunicacion serial tambien.

En mi caso, voy a dejarlo como AP ya que lo que quiero es poder controlar al robot sin necesidad de que haya servicio de internet ... algo asi como el WiFi Direct.

La base que compre para este bicho es la siguiente:



Mide 10cm x 10cm y trae el compartimento para 4 pilas AA; como tengo unas pilas recargables, quedan justos los 5V.

La conexion con los pines TX y RX del modulo es TTL, por lo tanto la conexion con el PIC es muy sencilla: TX del modulo(PIN21) a RX del PIC y RX del modulo(PIN20) al TX del PIC, pero hay que tener en cuenta que los otros pines GPIO soportan 3.3V. El modulo se energiza con 5V(PIN1) y GND(PIN0).

El control del motor es similar al del robot bluetooth, lo hare con una tarjeta identica a la que diseñe AQUI

Para el envio de los datos de control se debe hacer uso de unos comandos de peticion de paginas web que son: GET y POST (mas informacion AQUI y AQUI)

Buscando en la red, encontre ESTA pagina en donde envian datos con Arduino, solo es cuestion de adaptar el codigo para PIC segun las necesidades del proyecto.

Ya con toda esa informacion, me puse a la tarea de realizarle las pruebas a la base para ver que tanto consumen los motores. Los datos obtenidos son los siguientes:

Voltaje:


Corriente sin carga de friccion:


Corriente con carga de friccion:


Eso hasta el momento, ahora me pongo en la tarea de realizar el programa del PIC y hacerme una apk para controlarlo ... claro que, se podria hacer desde un navegador usando botones o formularios jejeje


continuara...
El papel lo aguanta todo

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Conexion PIC - WiFi
« Respuesta #1 en: 10 de Enero de 2015, 22:55:51 »
Y bueno, ya pasados los carnavales de blancos y negros que se celebran por aca, sigo con mi tarea jejeje ... he diseñado ya las PCB para poner en marcha a mi robot WiFi (WiBOT)

Es un PIC16 que tengo por ahi con los pines suficientes para controlar el puente H y el modulo WiFi:



y el puente H:



Lo he hecho a parte por si utilizo este puente en otras cosas ...

Las PCB ruteadas:



una imagen 3D de como quedaran







ahora si, a fabricarlas y a poner en marcha este bicho ...
« Última modificación: 11 de Enero de 2015, 01:01:18 por MLO__ »
El papel lo aguanta todo

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Conexion PIC - WiFi
« Respuesta #2 en: 12 de Enero de 2015, 01:03:14 »
Las tarjetas ya realizadas  :-/ :-/ :-/



Ahora si, apurarse a soldar y demas que las vacaciones se acaban  :( :(
El papel lo aguanta todo

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Conexion PIC - WiFi
« Respuesta #3 en: 12 de Enero de 2015, 23:59:23 »
 :-/ :-/ :-/



Ya lo he terminado ... jejeje. Un video del funcionamiento


La apk (AQUI) que hice para controlarlo, envia peticiones GET y POST y en el PIC tengo un parser (AQUI) que decodifica los comandos que envio desde la apk.

El codigo es muy simple, muy similar al que hice para controlar al robot por Bluetooth:

Código: C
  1. include<16F688.h>
  2. #fuses HS,NOWDT,NOBROWNOUT,NOMCLR
  3. #use delay(clock=20M)
  4. #use rs232(baud=57600,parity=N,bits=8,UART1)
  5.  
  6. #zero_ram
  7.  
  8. #define on            output_high
  9. #define off            output_low
  10.  
  11. #define EN_MLEFT      on(pin_c0)
  12. #define EN_MRIGHT      on(pin_a2)
  13. #define DIS_MLEFT      off(pin_c0)
  14. #define DIS_MRIGHT      off(pin_a2)
  15.  
  16. #define LEFT1         pin_c1
  17. #define LEFT2         pin_c2
  18. #define RIGHT1         pin_a1
  19. #define RIGHT2         pin_a0
  20.  
  21. #define GIROL1         on(LEFT1); off(LEFT2)
  22. #define GIROL2         off(LEFT1); on(LEFT2)
  23. #define STOPL         off(LEFT1); off(LEFT2)
  24.  
  25. #define GIROR1         on(RIGHT1); off(RIGHT2)
  26. #define GIROR2         off(RIGHT1); on(RIGHT2)
  27. #define STOPR         off(RIGHT1); off(RIGHT2)
  28.  
  29. const int LENGHT_BUFER = 70;
  30.  
  31. struct BytesUSART
  32. {
  33.    int i;
  34.    int Buffer[LENGHT_BUFER];
  35.    short FlagOk;
  36.    short EnableRX;
  37. }USART;
  38.  
  39. struct BytesTimer
  40. {
  41.    int Ints;
  42. }Timer;
  43.  
  44. #int_TIMER1
  45. void Tiempo_isr(void)
  46. {
  47.    Timer.Ints++;
  48.    if(Timer.Ints>=15)
  49.    {
  50.       Timer.Ints=0;
  51.       DIS_MLEFT;
  52.       DIS_MRIGHT;
  53.    }
  54. }
  55.  
  56. void USARTProcess(DatoRx);
  57. void LimpiarBufer(void);
  58.  
  59. #int_RDA
  60. void Serial_isr(void)
  61. {    
  62.   if(kbhit())
  63.   {
  64.    USARTProcess(getc());
  65.    Timer.Ints=0;
  66.   }
  67. }
  68.  
  69. void main(void)
  70. {
  71.    setup_comparator(NC_NC_NC_NC);
  72.    setup_timer_1(T1_INTERNAL|T1_DIV_BY_4);
  73.    enable_interrupts(INT_RDA);
  74.    enable_interrupts(GLOBAL);
  75.    EN_MLEFT;
  76.    EN_MRIGHT;
  77.    
  78.    GIROL2; GIROR1; //UP
  79.    delay_ms(500);
  80.    GIROL1; GIROR2; //DOWN
  81.    delay_ms(500);
  82.    GIROL1; GIROR1; //LEFT
  83.    delay_ms(500);
  84.    GIROL2; GIROR2; //RIGHT
  85.    delay_ms(500);
  86.  
  87.    enable_interrupts(INT_TIMER1);
  88.  
  89.    while(true)
  90.    {
  91.       if(USART.FlagOk)
  92.       {
  93.          USART.FlagOk=0;
  94.          EN_MLEFT;
  95.          EN_MRIGHT;
  96.          switch(USART.Buffer[0])
  97.          {
  98.             case 'U':
  99.                GIROL2;
  100.                GIROR1;
  101.                break;
  102.                
  103.             case 'D':
  104.                GIROL1;
  105.                GIROR2;
  106.                break;
  107.                
  108.             case 'L':
  109.                GIROL1;
  110.                GIROR1;
  111.                break;
  112.                
  113.             case 'R':
  114.                GIROL2;
  115.                GIROR2;
  116.                break;
  117.                
  118.             case 'S':
  119.                STOPL;
  120.                STOPR;
  121.                break;
  122.          }
  123.          LimpiarBufer();
  124.       }
  125.    }
  126. }
  127.  
  128. void USARTProcess(DatoRx)
  129. {
  130.    if(USART.EnableRX==1)
  131.    {
  132.       switch(DatoRx)
  133.       {
  134.          case '!':
  135.             USART.FlagOk = 1;
  136.             USART.EnableRX = 0;
  137.             break;
  138.            
  139.          default:
  140.             USART.Buffer[USART.i++]=DatoRx;
  141.             break;
  142.       }
  143.    }
  144.    
  145.    if(DatoRx=='~')
  146.       USART.EnableRX = 1;
  147. }
  148.  
  149. void LimpiarBufer(void)
  150. {
  151.    int i;
  152.  
  153.    for(i=0;USART.Buffer[i]!=0;i++)
  154.       USART.Buffer[i]=0;
  155.    USART.i=0;
  156. }

Por si les puede ser util dejo los enlaces de descarga para el puente H (AQUI) y para el PIC (AQUI)

En realidad que es muy sencillo el manejo de este modulo HLK RM04 ... ahora ya estoy esperando el ESP8266 para cacharrearlo ...

Saludos

El papel lo aguanta todo

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1697
Re: Conexion PIC - WiFi
« Respuesta #4 en: 22 de Enero de 2015, 14:33:46 »
quedó muuuy vacano MLO, en que plataforma desarrollaste la APK? 
Uy ya cambiaste de cel a un HTC  :mrgreen: :D
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Conexion PIC - WiFi
« Respuesta #5 en: 22 de Enero de 2015, 20:48:32 »
 :D :D :D

lo que uno hace para mostrar el celular!!! jajajajaja  :D :D :D

la apk la hice "rapidamente" en appInventor jejeje

Saludos
El papel lo aguanta todo

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Conexion PIC - WiFi
« Respuesta #6 en: 22 de Marzo de 2015, 00:31:37 »
Otro video controlando el robot, esta vez con un server en el PIC.

El papel lo aguanta todo

Desconectado miguelcgl

  • PIC10
  • *
  • Mensajes: 1
Re:Conexion PIC - WiFi
« Respuesta #7 en: 28 de Febrero de 2018, 17:41:25 »
hola me interesa hacer un proyecto como este con este mismo modulo HLK-RM04 o el DT-06 ESP-M2, con la diferencia de no solo poder enviar comandos sino tambien recibir datos como por ejemplo un sensor conectado al conversor A/D al PIC y de ahi a un app y no solo conectando en dispositivo WiFi y controlandolo desde la misma red LAN sino desde internet. Igualmente gracias por subir el .apk pero me gustaria saber que lineamientos se deben tener en cuenta para hacer la aplicacion como la necesito desde 0 con app inventor. En resumen quiero hacer una prueba por ejemplo consectqando un sensor de temperatura a un PIC y poder ver el valor remotamente desde internet en mi celular, agradezco a cualquiera que me pueda ayudar de antemano mas que todo en el tema del manejo del modulo WiFi y las consideraciones a tener en cuenta en el desarrollo de la app con app inventor

Desconectado carpoolo

  • PIC10
  • *
  • Mensajes: 19
Re:Conexion PIC - WiFi
« Respuesta #8 en: 08 de Marzo de 2018, 23:56:46 »
Hola me gustaria saber si alguno ha trabajado con el modulo nRF24L01, para la parte Wi-Fi? y como se hace para obtener los datos del modulo? según el datasheet maneja SPI, entonces seria igual que una memoria?

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re:Conexion PIC - WiFi
« Respuesta #9 en: 14 de Mayo de 2018, 10:41:43 »
hola me interesa hacer un proyecto como este con este mismo modulo HLK-RM04 o el DT-06 ESP-M2, con la diferencia de no solo poder enviar comandos sino tambien recibir datos como por ejemplo un sensor conectado al conversor A/D al PIC y de ahi a un app y no solo conectando en dispositivo WiFi y controlandolo desde la misma red LAN sino desde internet. Igualmente gracias por subir el .apk pero me gustaria saber que lineamientos se deben tener en cuenta para hacer la aplicacion como la necesito desde 0 con app inventor. En resumen quiero hacer una prueba por ejemplo consectqando un sensor de temperatura a un PIC y poder ver el valor remotamente desde internet en mi celular, agradezco a cualquiera que me pueda ayudar de antemano mas que todo en el tema del manejo del modulo WiFi y las consideraciones a tener en cuenta en el desarrollo de la app con app inventor

saludos!!... tiempo sin pasar por acá ...

Respecto a lo que mencionas, sería algo así?
http://mlopic.blogspot.com.co/2016/01/data-logger-wifi.html

La aplicación la puedes descargar desde el siguiente enlace:
https://play.google.com/store/apps/details?id=appinventor.ai_miguel_adolfo_lopez.ADQWiFi

Para controlar desde Internet tocaría configurar el HLK como cliente, en el siguiente enlace explican cómo:
https://rayshobby.net/wordpress/first-impression-on-hlk-rm04-serial-to-wifi-module/

Un abrazo

El papel lo aguanta todo


 

anything