Noticias:

Grupo en telegram, del foro de meteorología fácil: https://t.me/meteorologiafacil

Para mas detalles, puedes visitar el siguiente tema http://www.meteorologiafacil.com.ar/foros/index.php?topic=1608.0

Espero que les sea de mucha utilidad.

Menú Principal

ESP8266 serie-wifi

Iniciado por David Met, Mayo 26, 2015, 10:35:28 PM

Tema anterior - Siguiente tema

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

HJ

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

YO

A mi tambien me interesa pero ¿que cuernos significa AT ?  :'p
Sin saber que era imposible El fue y lo hizo

Ricber

Entonces cualquier chip me sirve, incluso los que son con tarjeta.

David Met

#18
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
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

David Met

#19
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.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

David Met

Bueno, así me quedó el circuito que me recomendó Héctor.

Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

HJ


Ricber


YO

#23
hola Muchachos!
Me permití hacer un PCB de prueba ¿servirá?


                                                                     

Espero salga bien la imagen...
Sin saber que era imposible El fue y lo hizo

David Met

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  >:[|
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

YO

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.
Sin saber que era imposible El fue y lo hizo

David Met

#26
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.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

YO

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
Sin saber que era imposible El fue y lo hizo

David Met

Lástima que es un integrado grande. Solo se usaría una compuerta.
Lo mejor es el circuito que nos pasó Héctor.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

YO

Sin saber que era imposible El fue y lo hizo