Meteorología Fácil

Área técnica. => Programación de microcontroladores. => Mensaje iniciado por: David Met en Mayo 26, 2015, 10:35:28 PM

Título: ESP8266 serie-wifi
Publicado por: David Met en Mayo 26, 2015, 10:35:28 PM
Este maravilloso dispositivo nos provee de una conexión WIFI a cualquier microcontrolador; ya sea PIC; ARM; ect. Lo mejor es que solo se necesita un puerto serie, algo disponible en la mayoría de los microcontroladores de baja  y media gama.
Otra particularidad, es que nos permite trabajar en forma de cliente o realizar un servidor  :\
Otra ventaja que tiene, es que la antena está integrada en la plaqueta; por lo que no es necesario estar comprando una antena.

(http://meteorologiafacil.com.ar/foros/index.php?action=dlattach;topic=916.0;attach=1010)

En Argentina (al día de la fecha) se lo consigue desde los $170; por lo que lo hace accesible, y considerando lo que hace, no es caro.
Esta plaqueta, tiene el chip que se encarga de la comunicación WiFi y un microcontrolador con la que debemos comunicarnos por medio de un puerto serie RS232. Anda muy bien a 9.600 baudios; pero hay personas que lo han conectado a 115.200 baudios entre la placa ESP8266 y nuestro microncontrolador elegido.
La placa se alimenta a 3V3 por lo que hay que tener mucho cuidado la comunicación entre el dispositivo y nuestro microcontrolador. Para ello será necesario hacer un controlador para adaptar las tensiones si es que decidimos trabajar a 5V nuestro microcontrolador.

Para conectarlo, posee un conector macho de 8 vías con una separación de 2,54mm algo que lo hace muy accesible para ser soldado en nuestra placa o conectarlo a un conector.

(http://meteorologiafacil.com.ar/foros/index.php?action=dlattach;topic=916.0;attach=1012)

Posee además dos led SMD. Uno rojo que nos indica que el dispositivo está energizado; y uno azul que nos indica que está comunicado con el WiFi.

La forma de comunicarnos al dispositivo es por comandos AT que lo veremos más adelante.
Desgraciadamente casi toda la información disponible está en Ingles, pero en la medida que pueda, lo iré traduciendo.

Yo me compré uno y por ahora esperaré a que me llegue. En cuanto lo tenga, lo conectaré a la computadora y haré las primeras pruebas por ahí, para luego hacerlo con un PIC ya sea 16F o 18F.
Título: Re:ESP8266 serie-wifi
Publicado por: David Met en Mayo 26, 2015, 10:45:35 PM
Encontré un circuito bidireccional para adaptar 5V - 3V3 en ambas direcciones.
Aún no lo probé. En cuanto lo haga, comento como se comporta.

(http://meteorologiafacil.com.ar/foros/index.php?action=dlattach;topic=916.0;attach=1014)

Y aquí a un segundo circuito.

(http://meteorologiafacil.com.ar/foros/index.php?action=dlattach;topic=916.0;attach=1016)

Por ahora, armaré solo el primero y probaré a 9.600 baudios.
Título: Re:ESP8266 serie-wifi
Publicado por: HJ en Mayo 27, 2015, 08:30:11 AM
Hola David, te comento que hace mucho que vengo utilizando un circuito similar, sacado de la hoja de datos de los módulos celulares de SIMCom.

El circuito es el siguiente
(http://meteorologiafacil.com.ar/foros/index.php?action=dlattach;topic=916.0;attach=1018)

Con los valores que muestro en esa imagen he controlado módulos celulares a 115200 baudios sin problema.
Los transistores que utilicé son los equivalentes SMD al BC547, el BC847.

En cuanto a tu esquema, te recomiendo no utilizar el capacitor ya que eso te bajaría el ancho de banda del circuito.

Saludos
HJ
Título: Re:ESP8266 serie-wifi
Publicado por: YO en Mayo 27, 2015, 08:38:42 AM
Que bueno!!  :\
Hay que probarlo!!

¿que alcance tendrá?
Título: Re:ESP8266 serie-wifi
Publicado por: David Met en Mayo 27, 2015, 09:12:58 AM
Excelente Héctor. Usaré ese.
Consulta los transistores ¿cuáles son?

La verdad, no tengo ni idea de su alcance, pero por el tamaño de la antena, deberá ser poca, como la de los celulares.
Título: Re:ESP8266 serie-wifi
Publicado por: Ricber en Mayo 27, 2015, 10:37:46 AM
Bueno, esperaremos tus pruebas. :silbando:
Título: Re:ESP8266 serie-wifi
Publicado por: YO en Mayo 27, 2015, 10:48:14 AM
Los transistores son los  BC547, o  BC847 . npn  en la versión montaje superficial
Título: Re:ESP8266 serie-wifi
Publicado por: David Met en Mayo 27, 2015, 11:07:56 AM
Soy un salame. >:[|
Título: Re:ESP8266 serie-wifi
Publicado por: YO en Mayo 27, 2015, 11:18:35 AM
Igual te queremos jejejejejejeje   :silbando:
Título: Re:ESP8266 serie-wifi
Publicado por: HJ en Mayo 27, 2015, 11:59:57 AM
Hola Gente
Cita de: David Met en Mayo 27, 2015, 09:12:58 AM
Consulta los transistores ¿cuáles son?
Como ya te aclararon, yo utilicé el BC847 que es un NPN SMD, y es equivalente al conocido BC547.

Otro detalle que recién ahora me doy cuenta, verificando en uno de mis proyectos, es que el valor de R1 lo reduje a 1K5 y agregué una resistencia también de 1K5 entre a base de Q1 y GND, para poder alcanzar los 115200 baudios que te mencioné antes.

Cita de: YO en Mayo 27, 2015, 11:18:35 AM
Igual te queremos jejejejejejeje   :silbando:
jajajajaja


saludos
HJ
Título: Re:ESP8266 serie-wifi
Publicado por: David Met en Mayo 27, 2015, 02:32:58 PM
Cita de: YO en Mayo 27, 2015, 11:18:35 AM
Igual te queremos jejejejejejeje   :silbando:

;baneado;

-:)  ;D

Cita de: HJ en Mayo 27, 2015, 11:59:57 AM
Otro detalle que recién ahora me doy cuenta, verificando en uno de mis proyectos, es que el valor de R1 lo reduje a 1K5 y agregué una resistencia también de 1K5 entre a base de Q1 y GND, para poder alcanzar los 115200 baudios que te mencioné antes.

Joya. Gracias.
Título: Re:ESP8266 serie-wifi
Publicado por: David Met en Mayo 27, 2015, 07:21:52 PM
Hay una página muy buena sobre arduino donde presenta algunos tutoriales. Aquellos que tengan esta placa, se lo recomiendo. Se llama:

http://www.prometec.net

Como yo trabajo con PIC en una placa personal; me estoy valiendo de varios sitios para entender su funcionamiento.

http://www.prometec.net/arduino-wifi/
http://www.prometec.net/esp8266/
http://www.prometec.net/servidor-web-esp8266/

Así que será esta página mi punto de partida; para luego escribir librerías en JALv2 para controlar dicho módulo.
Título: Re:ESP8266 serie-wifi
Publicado por: David Met en Mayo 27, 2015, 10:51:40 PM
Sigo haciendo un resumen de lo que necesitaré (por cierto, estoy muy ansioso por empezar a hacer pruebas).

Vamos con los comandos AT que serán necesarios tenerlos a mano.
https://dl.dropboxusercontent.com/u/307560/ESP8266%20WIFIATCOMMANDS_English.pdf


















COMANDOSDESCRIPCIÓNRESPUESTA
AT+(enter)OK
AT+RSTEl módulo se reiniciará.OK
AT+CWMODESelecciona el modo de aplicación WIFIOK
AT+CWJAPUnirse a una AP (Punto de Acceso)OK o ERROR
AT+CWLAPLista actual disponible de APOK o ERROR
AT+CWQAPSalir de una conexión de APOK
AT+CWSAPSetear parámetros de un APOK o ERROR
AT+CIPSTATUSObtener el estado de la conexiónOK
AT+CIPSTARTEstablecer una conexión TCP o números de puerto UDP registradosOK o ERROR
AT+CIPSENDEnviar un datoOK o ERROR
AT+CIPCLOSECierra la conexión TCP o UDPOK o ERROR
AT+CIFSRObtiene una dirección de IP localOK o ERROR
AT+CIPMUXInicia una conexión múltipleOK
AT+CIPSERVERConfigura al módulo como un servidorOK
+IPDRecibe datos de la red

Como podemos apreciar, no son muchos los comandos AT para controlar al módulo.
Ahora veremos con más detalles, cada uno de los comandos AT.

AT+CWMODE

Podemos hacer tres cosas con este comando.

1) AT+CWMODE=?

Significado: Devuelve el modo actual que puede soportar.

2)AT+CWMODE?

Significado: Nos devuelve el modo con que está trabajando.

3)AT+CWMODE=<modo>

Asignamos al módulo a trabajar en un modo en particular a saber:

1 - Modo Estación.
2 - Modo AP.
3 - Modo Estación y AP

Si queremos que trabaje en ambos modos debemos enviarlo así

AT+CWMODE=3

AT+CWJAP

Debemos ejecutarlo de la siguiente manera:

AT+CWJAP=<ssid>,<contraseña>

Donde:
ssid es el nombre de la red emitida por el router o Punto de Acceso (acces point)
contraseña es la contraseña de la red. No puede ser superior a 64 byte ASCII
En ambos casos, se trata de una cadena (STRING) por lo que debe ponerse entre comillas dobles ""

Por ejemplo, tenemos una red llamada MIINTERNET y su contraseña es A1B2C3D. Para unirnos a nuestra red debemos colocarlo así:

AT+CWJAP="MIINTERNET","A1B2C3D"

AT+CWLAP

Al ejecutar este comando, nos dará mucha información útil en un orden a saber.
Nos responderá con:

+CWLAP: (<ecn>, <ssid>, <rssi> [, <mode>])

Donde:
ecn es la codificación de la clave de acceso. Estos son:
0 - Sin clave (abierto)
1 - WEP
2 - WPA_PSK
3 - WPA2_PSK
4 - WPA_WPA2_PSK

ssid es el nombre de la red.
rssi es el nivel de la señal recibida.

mode, puede aparecer o no, y nos indica si la conexión es automática o manual.
Si responde con 0 la conexión es manual; pero si lo hace con 1, la conexión es automática.

Por ejemplo, digamos que ejecutamos dicho comando y nos responde con lo siguiente:

+CWLAP: (2, "MIINTERNET", -70, 1)
+CWLAP: (0, "INTERNETGRATIS, -10, 0)
OK

Nos está indicando que el módulo detectó dos redes. La primera se llama MIINTERNET con codificación WPA_PSK con una señal de -70db (muy bueno) y de conexión automática.
La segunda red se llama INTERNETGRATIS y no posee codificación con una señal de -10 y de conexión manual.

AT+CWQAP

Ejecutamos este comando cuando queremos cerrar una conexión establecida.

AT+CWSAP

No estoy muy seguro de este comando, pero sino interpreté mal la hoja de datos, nos permite generar un punto de acceso con nuestro módulo. En otras palabras, el módulo genera un punto de acceso y los demás dispositivos se pueden conectar a él sin necesidad de un router; tal como lo hace una computadora ya sea notebook o de escritorio.

+CWSAP= <Ssid>, <pwd>, <chl>, <Ecn>

Donde:
Ssid es el nombre que queremos darle a nuestro punto de acceso.
pwd es la contraseña de nuestro punto de acceso.
chl es el canal a usar del 1 al 10.
ecn es la codificación (encriptación) de la clave de acceso. Estos son:
0 - Sin clave (abierto)
1 - WEP
2 - WPA_PSK
3 - WPA2_PSK
4 - WPA_WPA2_PSK

Nota: este comando debe ser ejecutado cuando previamente se ha configurado a nuestro módulo como modo AP AT+CWMODE=2

Título: Re:ESP8266 serie-wifi
Publicado por: HJ en Mayo 27, 2015, 11:44:21 PM
Hola David, me está interesando mucho este tema, lo voy ha seguir bien de cerca.
Los comandos AT son prácticamente los mismos que utilizo en mis programas para conexiones por GPRS.

Saludos
HJ
Título: Re:ESP8266 serie-wifi
Publicado por: Ricber en Mayo 28, 2015, 08:10:51 AM
Yo también lo voy a seguir de cerca.
Ya que HJ hablo de GPRS, tengo unas preguntas.
Hay que hacer algún contrato con alguna empresa de tel. movil.
Que hago con el chip que tiene, que es de CLARO.
Si veo que puedo hacer algo hacemos un nuevo tema.

Título: Re:ESP8266 serie-wifi
Publicado por: HJ en Mayo 28, 2015, 08:31:41 AM
Hola Ricardo, todos los chip GSM (los que todo el mundo conoce) del 2000 en adelante deberían tener acceso a GPRS si no fueron bloqueados por el usuario.
En Claro, Personal y Movistar es así, los únicos que no sirven son los adquiridos como solo SMS o planes similares.

Saludos
HJ
Título: Re:ESP8266 serie-wifi
Publicado por: YO en Mayo 28, 2015, 11:45:11 AM
A mi tambien me interesa pero ¿que cuernos significa AT ?  :'p
Título: Re:ESP8266 serie-wifi
Publicado por: Ricber en Mayo 28, 2015, 12:34:12 PM
Entonces cualquier chip me sirve, incluso los que son con tarjeta.
Título: Re:ESP8266 serie-wifi
Publicado por: David Met en Mayo 28, 2015, 12:58:42 PM
Gracias muchachos. :\

Cita de: YO en Mayo 28, 2015, 11:45:11 AM
A mi tambien me interesa pero ¿que cuernos significa AT ?  :'p

Ya somos dos. De echo va a ser la primera vez en mi vida que voy a trabajar con dicho comando. Incluso, yo pensaba que el + era para concatenar dos cadenas; pero resulta que debe ser transmitido.

EDITO:

AT significa Atención (ATTENTION).

http://es.wikipedia.org/wiki/Conjunto_de_comandos_Hayes
Título: Re:ESP8266 serie-wifi
Publicado por: David Met en Mayo 28, 2015, 02:03:33 PM
AT+CIPSTATUS

Lo ejecutaremos para saber el estado de la conexión. El módulo nos constestará de la siguiente manera:

+ CIPSTATUS: <id>, <type>, <addr>, <port>

Donde:
id es el número de identificación de la conexión del 0 al 4.
type nos indicará si es del tipo TCP o UDP. Este dato viene en una cadena (String).
addr es la dirección de IP que tiene el módulo. Es un dato que llega en una cadena (string).
port es el puerto con el que se conecta nuestro módulo.

AT+CIPSTART

Lo ejecutaremos para iniciar una conexión TCP o UDP. Puede ser ejecutado de tres maneras diferentes.

1- AT+CIPSTART=?

El datasheet no especifica nada. Debe de estar reservado para futuras actualizaciones. El módulo responde con un OK

2- Para +CIPMUX=0 (Conexión simple)

AT+CIPSTART=<Type>, <addr>, <port>

Donde:
Type es el tipo de conexión TCP o UDP. Debe ser enviado como una cadena (string); por lo tanto debe de ir con comillas dobles.
addr es la dirección IP del router (donde se debe conectar el módulo).
port es el puerto con que se debe comunicar al router.

3- Para +CIPMUX=1 (Conexión múltiple)

AT+CIPSTART=<id>, <Type>, <addr>, <port>

Donde:
id es el número de identificación del 0 al 4.

El módulo nos puede responder de tres maneras posibles:
a) OK
b) ERROR que puede ser debido a una mala sintyaxis de nuestro comando.
C) ALREA Y CONNECT siginifica que el módulo está actualmente conectado.

AT+CIPSEND


Es el único comando existente desde donde se le puede enviar datos al módulo, para darles órdenes o para que imprima algo. El programa de nuestro microcontrolador deberá ser capaz de indentificar lo que necesitamos o debemos hacer.

Hay tres maneras de trabajar con dicho comando.

1- AT+CIPSEND=?

Devuelve la longitud especificada de datos. Realmente no entiendo esto, ya que nosotros debemos especificar el tamaño de lo que vamos a enviar.

2- Para +CIPMUX=0 (Conexión simple)

AT+CIPSEND=<length>

Donde:
length es el tamaño, especificado en decimales, de lo que vamos a enviar.

Por ejemplo, deseamos enviar la frase METEOROLOGIA FACIL. En total son 18 caracteres. Procedemos de la siguiente manera:

a) Enviar el siguiente comando:
AT+CIPSEND=18

b) METEOROLOGIA FACIL

Cuando enviamos el comando a), el módulo nos responde con > para indicarnos que enviemos lo deseado. Una vez enviado el mensaje, si el módulo pudo transmitirlo nos responderá con SEND OK, de lo contrario nos informará ERROR.

Si por un error, nosotros especificamos 10 caracteres, pero escribimos METEOROLOGIA FACIL, el módulo solo enviará METEOROLOG y luego emitirá SINTAXIS ERROR y luego SEND OK
Nos devuelve SINTAXIS ERROR porque lo que resta IA FACIL, lo toma como que quisimos enviar un comando pero la sintaxis no es correcta.

Lo malo de especificar un tamaño, es que debemos crear una función donde cuente los caracteres, o mejor dicho, el tamaño de nuestra cadena para no cometer ningún error.

3- Para +CIPMUX=1 (Conexión múltiple)

AT+CIPSEND=<Id>, <length>

Es igual que el anterior, pero se debe de especificar a que dispositivo enviar. Puede ser hasta cinco dispositivos simultáneos que van del 0 al 4.

AT+CIPCLOSE

Si deseamos cerrar una conexión, ejecutaremos este comando.
Este comando es muy útil cuando trabajamos con conecciones múltiples, así podemos cerrar una conexión pero mantener las otras abiertas.

Hay tres maneras de trabajar con este comando:

AT+CIPCLOSE=?

Solo sirve para probar el comando. El módulo responderá con un OK. Puede ser útil para probar si aún hay conexión entre el módulo y nuestro microcontrolador. Si no recibimos el OK, nos indicará que no hay comunicación.

2- Para +CIPMUX=0 (Conexión simple)

AT+CIPCLOSE

Cerrará la única conexión existente. Nos informará con un OK.
NOTA: No es la conexión entre el módulo y nuestro microcontrolador, ya que el mismo se realiza por software. La conexión que se cerrará es la establecida por medio del WiFi.

Si deseamos apagar el servidor y luego encenderlo debemos reiniciarlo con el comando AT+RST

3- Para +CIPMUX=1 (Conexión múltiple)

AT+CIPCLOSE=<id>

Cerrará la conexión WiFi que especifiquemos, donde id es la identificación de las 5 conecciones posibles que van del 0 al 4.

AT+CIFSR

Obtendremos la dirección IP que tiene nuestro dispositivo conectado al router.

Solamente podemos ejecutarlo de dos maneras posibles.

1- AT+CIFSR=?

Solo sirve para probar el comando. El módulo responderá con un OK. Puede ser útil para probar si aún hay conexión entre el módulo y nuestro microcontrolador. Si no recibimos el OK, nos indicará que no hay comunicación.

2- AT+CIFSR

Nos devolverá la dirección IP que tiene nuestro dispositivo.

Luego nos responderá con un OK.

AT+CIPMUX

Sirve para configurar una conexión múltiple o simple. Hay dos formas de ejecutar este programa.

1- AT+CIPMUX=?

No hace nada. Responde con un OK.

2- AT+CIPMUX=<modo>

Donde modo puede contener solo dos valores posibles:

0 = Para una conexión simple.
1 = Para una conexión múltiple.

(Ver los comando donde se lo puede ejectar de tres maneras posibles).

AT+CIPSERVER

Habilita o desabilita al módulo trabajar en modo servidor.
Por defecto, al energizar o reiniciar al módulo, éste se configura como servidor. No obstante, es bueno forzar la configuración para garantizar lo que queremos.

AT+CIPSERVER=<modo>, <puerto>

Donde:
modo puede ser:

0 = Deshabilita la funsión server.
1 = Habilita la funsión server.

puerto es el puerto al que queremos que se conecte. Por defecto es 333

Por ejemplo, si queremos crear un servidor web haremos lo siguiente:

AT+CIPSERVER=1,80

O para crear un servidor FTP

AT+CIPSERVER=1,20

NOTA: Si conectamos nuestro módulo en un router, NO debemos olvidarnos de habilitarles los puertos deseados al módulo desde el router; ya que sino no lograremos la conexión.

+IPD

Este comando, no debe ser enviado desde nuestro microcontrolador, sino que es el módulo que nos emitirá dicho comando indicándonos que vamos a recibir un dato.

Por ejemplo, supongamos que creamos un servidor web y desde ahí queremos encender o apagar algún dispositivo. Esto hará que nuestro navegador envíe un dato X al servidor ESP8266; por lo tanto, el módulo nos enviará dicho comando de la siguiente manera:

1- Para +CIPMUX=0 (Conexión simple)

+IPD, <len>: <data>

Donde:
len es el tamaño de la cadena recivida, o en su defecto; la cantidad de caracteres recibidos.

data es el dato recibido.

Por ejemplo; desde el navegador enviamos el siguiente comando:

ENCENDER B1

En total son 11 caracteres. El módulo nos enviará lo siguiente:

+IPD,11: ENCENDER B1

2- Para +CIPMUX=1 (Conexión múltiple)

+IPD, <id>, <len>: <data>

Donde:
id es la identificación de la conexión que nos mandó el dato. Pueden ser cinco que van desde el 0 al 4
len y data es lo mismo que lo explicado anteriormente.
Título: Re:ESP8266 serie-wifi
Publicado por: David Met en Mayo 28, 2015, 10:07:37 PM
Bueno, así me quedó el circuito que me recomendó Héctor.

(http://meteorologiafacil.com.ar/foros/index.php?action=dlattach;topic=916.0;attach=1020)
Título: Re:ESP8266 serie-wifi
Publicado por: HJ en Mayo 28, 2015, 10:53:04 PM
Perfecto.  ok!
Título: Re:ESP8266 serie-wifi
Publicado por: Ricber en Mayo 29, 2015, 08:27:54 AM
 Ya me lo copio.  ok!
Título: Re:ESP8266 serie-wifi
Publicado por: YO en Mayo 29, 2015, 10:47:56 AM
hola Muchachos!
Me permití hacer un PCB de prueba ¿servirá?


                                                                     (http://meteorologiafacil.com.ar/foros/index.php?action=dlattach;topic=916.0;attach=1024)

Espero salga bien la imagen...
Título: Re:ESP8266 serie-wifi
Publicado por: David Met en Mayo 29, 2015, 01:06:55 PM
Si, al parecer lo veo bien.
De todas maneras te sugiero que hagas un plano a tierra para minimizar las interferencias. La velocidad de 115.200 es rápida y puede ser perturbada.

Si sabía, te pasaba mis archivos de kicad  >:[|
Título: Re:ESP8266 serie-wifi
Publicado por: YO en Mayo 29, 2015, 01:27:18 PM
Hola David!
El plano de tierra ya lo incorporé.
No lo puse antes para que sea más legible
Lo que no se es como sacar un archivo del Kicad para adjuntarlo y que quede a tamaño natural, así si a alguien le viene bien, lo puede utilizar.
Título: Re:ESP8266 serie-wifi
Publicado por: David Met en Mayo 29, 2015, 03:00:36 PM
Yo comprimo los archivos del proyecto y subo un único archivo.
Al que lo descargue le podrá dar error en el caso de que uno tenga una librería propia, como en mi caso; pero por lo general no va a tener problema.




Hoy logramos hacer andar el módulo de mi amigo.
La verdad que nos dio bastante dolores de cabeza; ya que en un artículo decía que la velocidad por defecto del puerto serie era de 115.200 Baudios, y que sino andaba con esa velocidad, que se probara a 9.600 Baudios.

Además de creer que había error en el programa y que lo modificamos muchas veces; resultó que la velocidad que tenía el módulo era de 19.200 Baudios.

Entre otras cosas, lo que probamos fue la instrucción AT+CWSAP y realmente genera un punto de acceso, pero no logramos conectarnos ya que no me daba una dirección IP Calculo yo que lo debemos dar nosotros con otro comando.

En cuanto llegue mi módulo, que lo espero la semana que viene, iré posteando todos mis pasos; incluso, trataré de grabarlo.
Título: Re:ESP8266 serie-wifi
Publicado por: YO en Mayo 29, 2015, 08:54:46 PM
Hola!
Encontré algo que por lo menos podría servir auque sea para saber que existe.
Se trata del integrado para comunicaciones entre dispositivos de diferentes tensiones de trabajo,
el 74HCT08 que puede ser alimentado con 3.3v y recibir en sus entradas señales de 5v.
No es compatible con el 74LS08 (éste no funciona con 3.3v)
Por lo que veo es unidireccional dependiendo de la tension con que se alimente

Si les interesa, véanlo por acá:

      http://www.nxp.com/documents/data_sheet/74HC_HCT08.pdf

  Saludos
Título: Re:ESP8266 serie-wifi
Publicado por: David Met en Mayo 29, 2015, 09:48:34 PM
Lástima que es un integrado grande. Solo se usaría una compuerta.
Lo mejor es el circuito que nos pasó Héctor.
Título: Re:ESP8266 serie-wifi
Publicado por: YO en Mayo 29, 2015, 09:57:36 PM
Totalmente de acuerdo  ok!
Título: Re:ESP8266 serie-wifi
Publicado por: David Met en Mayo 31, 2015, 05:49:05 AM
Cada vez que investigo más a estos módulos, me quedo muy sorprendidos.
No recuerdo si lo había mencionado, pero estos módulos son completamente autónomos, es decir, no es necesario otro microcontrolador para ser manejados.
En la web, hay varios ejemplos de como montar un servidor web con arduino y con PIC. Estos microcontroladores, guardan el contenido de la página web para luego pasarlo al módulo por el puerto serie. Esto consume tiempo pero con la ventaja de guardar una excelente página.
Pero estos módulos, pueden ser programados por puerto serie y compilarle un programa a nuestro gusto; incluso guardarle una página web dentro del módulo, ganando velocidad en la transferencia y carga de la web.

Actualizar Firmware del módulo ESP8266

Primero deben descargar el flasheador para el ESP8266. Deben ir al siguiente enlace y descargar la última versión disponible.

https://github.com/nodemcu/nodemcu-flasher (https://github.com/nodemcu/nodemcu-flasher)

Luego deberán elegir el deseado. Es un ejecutable y no necesita ser instalado. Para SO windows 32bit, elegir Win32/Release.

Una vez descargado el programa, hay que descargar el firmware. Para ello tienen que ir al siguiente enlace y buscar la última versión (latest releases). Hay dos versiones, una float y la otra integer. Deberá descargar el deseado.

https://github.com/nodemcu/nodemcu-firmware#change-log (https://github.com/nodemcu/nodemcu-firmware#change-log)

Compilador LUA.

https://github.com/hwiguna/g33k/tree/master/ArduinoProjects/Windows/ESP8266_Related (https://github.com/hwiguna/g33k/tree/master/ArduinoProjects/Windows/ESP8266_Related)

Descargar la última versión, haciendo click en el enlace correspondiente; y luego, hacer click en RAW para descargarlo.
No es necesario instalarlo. Solo deben descomprimirlo.

Luego vuelvan al siguiente enlace para ver algunos ejemplos.

https://github.com/nodemcu/nodemcu-firmware#connect-the-hardware-in-serial (https://github.com/nodemcu/nodemcu-firmware#connect-the-hardware-in-serial)

Podrán ver algunos ejemplos básicos.

Para terminar, les dejo un video donde habla como trabajar con el compilador LUA. Lo pueden mirar a partir del minuto 14; aunque mi concejo es que lo miren entero.


Más enlace sobre LUA:

http://es.m.wikipedia.org/wiki/Lua

http://www.lua.org/manual/5.1/es/

(Con alegría digo que es un lenguaje diseñado por Latinos, más precisamente es de Brazil.
Título: Re:ESP8266 serie-wifi
Publicado por: Ricber en Mayo 31, 2015, 03:31:37 PM
Muy buena investigación, son para tenerlo en muy muy cuenta y comprar uno. :\
Título: Re:ESP8266 serie-wifi
Publicado por: David Met en Junio 04, 2015, 08:13:02 PM
Hola a todos.
Ayer me llegó mi módulo pero aún no he podido hacer pruebas.

Preparé un adaptador de tensión completo para el módulo ESP8266; así puedo controlarlo sin problemas. La idea es hacer la siguiente placa y enchufar directamente el módulo en la placa; así me preocupo de hacer la adaptación. Directamente trabajo a 5V con el PIC.

(http://meteorologiafacil.com.ar/foros/index.php?action=dlattach;topic=916.0;attach=1026)

Pueden descargar el segundo archivo para verlo más grande.
Aún no hice el dibujo para el PCB. Si mañana puedo, lo subo para el que lo necesite.

Justo me di cuenta de un error. Las resistencias del 1 al 12, son todas de 10K
Título: Re:ESP8266 serie-wifi
Publicado por: Ricber en Junio 05, 2015, 10:01:20 AM
Me viene muy bien, estoy por comprar un modulo
Título: Re:ESP8266 serie-wifi
Publicado por: YO en Diciembre 16, 2015, 04:09:08 PM
Se me ocurre que para encontrar algo en una cadena se debería saber en que lugar de ella se debería buscar.
Si tenemos comandos antes y después, se debería saber el largo máximo del que antecede a lo que queremos buscar y comenzar las comparaciones desde allí bit por bit, por el largo de lo que se quiera encontrar.

Ahora, para encontrar algo donde no se sabe donde está, primero debemos saber que buscamos y cuantas opciones de lo que buscamos puede haber Ej.: palabras de comando remoto como Encender, Apagar, etc.

Hay que buscar el valor de cada letra y ver su coincidencia con las que tenemos definidas que podrían venir.
Esto es muy parecido a cuando ponemos accesos a comandos por clave Ej.: Una alarma con código de acceso para definir quien entró o salió.
La secuencia puede ser de letras o números o un valor binario determinado que después convertimos a lo que sea.
Algo así hice con el control remoto desde la PC y mandos escritos en el block de notas, la única diferencia era que yo sabía a partir de donde buscar las palabras clave

Si estoy equivocado por favor corríjanme
Título: Re:ESP8266 serie-wifi
Publicado por: David Met en Diciembre 17, 2015, 10:54:55 AM
Solo para que se entienda, a lo que YO se refiere viene de aquí (http://meteorologiafacil.com.ar/foros/index.php?topic=945.msg6025#msg6025)

Son diferentes estrategias. Dependerá de que es lo que más conviene.
Con el PIC vamos a estar limitado en el tamaño de la cadena (string) y deberemos saber hasta que cantidad de memoria RAM disponemos para ello. Por ejemplo, podremos disponer de un banco entero solo para la cadena a recepcionar.

Adjuntado, dejo lo que hice en JALv2. Si no entienden algo, me preguntan.
Está a partir de la línea 121.

Título: Re:ESP8266 serie-wifi
Publicado por: YO en Diciembre 17, 2015, 04:45:33 PM
Preguntonta:
Y porque la tenemos que guardar en el Pic?
Yo estoy armando algo con una SD y Jal tiene la librería para hacerlo.
Luego, cargamos con el Pic la SD y después vamos leyendo y comparando sin usar la memoria del micro.
No creo que sea tan loco.
Por otro lado si el sting que te llega lo definiste vos, vos tenes que saber en que zona buscar, o mejor ¿que origen tiene ese string, de donde lo sacas, porque es tan grande? no entiendo  :'p
Título: Re:ESP8266 serie-wifi
Publicado por: David Met en Diciembre 17, 2015, 08:55:25 PM
Decidir en el PIC es por cuestiones de comodidad. Es perfectamente factible guardar el string en una SD. Eso si, se puede llegar a tardar más en buscar la cadena; pero tal vez es factible.

La cadena recibida, dependerá de la navegación HTML que vayamos generando. Por ejemplo, una cadena recibida cuando el navegador se conecta al módulo, puede superar los 200 caracteres. Se reciben muchas cosas, modelo de PC; navegador; idioma; ect. Eso no es tan importante, con solo recibir el OK, nos alcanzaría.

La necesidad de buscar una cadena es si necesitamos hacer una acción dependiendo de que datos recibimos.
Te lo explico con un ejemplo muy simple.

Con el PIC, vamos enviando los caracteres para armar una página web simple, que lo haríamos a través del módulo. En estos caracteres HTML, enviamos que se arme un formulario para que el usuario se logee, por ejemplo. Para ello, se necesita dos formularios, una que diga usuario, y otra contraseña; más un botón de aceptar y cancelar.

Cada formulario debe de estar identificado; al igual que los botones. Cuando presionamos un botón (en el navegador) el PIC debe reconocer que se envió para luego logear a dicho usuario o negarle el acceso. Incluso debe saber si se presionó el botón cancelar o aceptar. Para ello, el navegador nos envía dichos datos y el módulo lo re transmite por el puerto serie; que lo recibe el PIC. El PIC debe reconocer dichos comandos y para ello, es necesario encontrar palabras claves (cadenas) dentro de la gran cadena que recibimos.

Mirate el siguiente enlace y nos entenderas http://www.prometec.net/esp8266/
Título: Re:ESP8266 serie-wifi
Publicado por: YO en Diciembre 18, 2015, 07:59:24 AM
Creo que la mejor forma de entender esto es meterse en el tema a fondo,  por eso ya encargué un modulito de éstos.
Por lo que ví en el link, son varios los problemas que tiene la gente para hacerlo andar, incluso para que arranque, teniendo que hacer intermitente la conexión de la fuente hasta que arranque, eso no es normal ni lógico ni nada.
Me hace acordar al problema que teníamos con el arranque de los GLCD que arrancaban con solo media pantalla y que se debía a que Jal tenía tiempos muy cortos en su librería de contról.
Ésto me recuerda que en algún tiempo vi en algún lado un artículo que decía que esos módulos venían con un programa bastante precario y que era necesario reprogramarlo para que funcionen como uno quisiera.
A partir de allí, siempre tuve la idea que los módulos eran programables, no se como ni me interesé demasiado porque para eso hay que dedicarle mucho tiempo, cosa que no tengo tanto.
La idea de la SD era solo por una cuestión de espacio de memoria ya que mencionaste que una cadena podría ocupar todo un banco.
Después de las fiestas voy a ver un poco más a fondo como es éste tema, quizás ya con el modulito en la mano.

Por ahora me despido hasta el año que viene si Dios quiere.
Un fuerte abrazo a todos y que disfruten de las fiestas!!   :borrachos!
Título: Re:ESP8266 serie-wifi
Publicado por: David Met en Diciembre 18, 2015, 02:28:00 PM
Yo también me voy a dedicar el año que viene con estos módulos.
Veremos que pasa por el momento.

Lamentablemente, por ahora, lo mejor es utilizarlo con arduino (por las librerías). También tengo ganas de incursionar en C de Microchips. Tal vez tenga las librerías que necesito y no es necesario que migre a otro microcontrolador.