Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

18/01/2015 #1

Avatar de george.manson.69

[Aporte] LPC1114 + ESP8266
Hola,

En este post vamos a dar un pequeño ejemplo del uso del modulo esp8266 que es un modulo wifi con stack TCP/UDP.


Descripción:
Este modulo es una solución wifi basado en el circuito integrado ESP8266, este modulo nos permitirá desarrollar cosas con internet a un bajo costo.

Características esenciales:
•Comandos AT•Solo con 4 pines para la comunicación•Actualización de Firmware por Serial•Comunicación UART

Conexión:


Interfaz:


Código:
'''
Created on 11/01/2015

@author: jorge
'''

import socket

ip="192.168.1.68"
port=7777
MESSAGE="Hello World!!"
a = bytes(MESSAGE, 'utf-8')

sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
sock.bind((ip,port))

print("Connect...",ip,",",port)

try:
	while True:

	    print("Waiting for data...",ip,",",port)
	    data,addr = sock.recvfrom(1024)
	    print("Data -> ",data, "Adr->",addr)
	    sock.sendto(a,addr)
	    
except KeyboardInterrupt:

	sys.close()
Comandos:



Video:


Saludos!

Hola a todos,

En este post vamos a usar la librería que hemos desarrollado para el modulo ESP8266.

Video:


Código:
///////////////////////////////////////////////////////////
/*
*//**
*@file	Main.c
*@Company	ucursos.blogspot.com
*@brief Uso del modulo esp8266 con libreria UDP
*@Version	1.0
*@date	14/01/2015
*@author George
*/
///////////////////////////////////////////////////////////

/*________________Includes_____________________*/


#include	<lpc11xx.h>
#include	"esp8266.h"
#include	"SetClock48Mhz.h"
#include	"SetSoftUart.h"

/*________________Defines______________________*/


/*________________Variables____________________*/

uint8_t DataCount = 0;
char Data[20];

ESP8266Config MyEsp8266;

/*********************************************************************//**
 * @brief		Funcion Principal
 * @param[in]	None
 * @return 		None
 **********************************************************************/

int main(void){

	//Configuramos Perifericos
	SetClockTo48Mhz();
	SetSoftUART(9600);
	SetUartTo(115200);

	
	//Configuramos Modulos
	
	Dir_Pin_Reset_ESP8266;
	
	MyEsp8266.Ssid="modem";
	MyEsp8266.Password="password";
	MyEsp8266.MultiConnection=0;
	MyEsp8266.TypeConnection="UDP";
	MyEsp8266.IPConnection="192.168.1.96";
	MyEsp8266.PortConnection="7777";
	MyEsp8266.WifiMode=3;
	MyEsp8266.DataMode=0;
	MyEsp8266.Response="!8266";
	
	soft_write_string_rom("ESP8266 Inicializando...\r");

	//*Habilitamos la interrupcion por recepcion de datos UART
	//Para trabajar con el modulo ESP8266

	NVIC_EnableIRQ(UART_IRQn);
	
	//Inicializamos el Modulo ESP8266
	
	if(ESP8266_Init(MyEsp8266)){

		soft_write_string_rom("Error to Connect, Reconnecting...\r\n");
		
		while(ESP8266_Init(MyEsp8266));

	}
	
	soft_write_string_rom("ESP8266 Conectado!");
	
	while(1){

		if(!ESP8266IsConnected()){
			
			for(DataCount=0;DataCount<sizeof(Data);DataCount++){

				Data[DataCount]='A';

			}
			
			if(ESP8266_SendData(Data,sizeof(Data),MyEsp8266.Response,5)){

				soft_write_string_rom("Error to Send Data\r\n");
				
			}
			
		}else{
			soft_write_string_rom("Error to Connect, Reconnecting...\r\n");
			while(ESP8266Reconnecting(MyEsp8266)>0);

		}

		delay_ms(200);
		delay_ms(200);
	}

}
Python Code:

Código:
'''
Created on 08/05/2014

@author: jorge
'''
import socket


ip="192.168.1.96"
port=7777
MESSAGE="!8266"
a = bytes(MESSAGE, 'utf-8')

sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
sock.bind((ip,port))

print("Connect...",ip,",",port)
while True:
    print("Waiting for data...",ip,",",port)
    data,addr = sock.recvfrom(1024)
    print("Data -> ",data, "Adr->",addr)
    sock.sendto(a,addr)
Download:

http://www.mediafire.com/download/qd...t2/ESP8266.zip
19/01/2015 #2

Avatar de papirrin

Muy bueno el modulo, ayer me puse a estudiar como hacer un servidor web con microcontrolador y no parece tan dificil, aunque todavia no me explico como se envian los archivos de imagen para que los lea el explorador de web eso si parece que esta un poco complejo.
19/01/2015 #3


papirrin dijo: Ver Mensaje
Muy bueno el modulo, ayer me puse a estudiar como hacer un servidor web con microcontrolador y no parece tan dificil, aunque todavia no me explico como se envian los archivos de imagen para que los lea el explorador de web eso si parece que esta un poco complejo.

A mi parecer no sirve o no esta pensado para Web server (se necesita mucho trabajo y gráficas pues ¿en donde las guardas?); mas bien esta concebido para comunicación TCP/UDP, yo hasta ahora estoy con UDP, y funciona bien.

Saludos
19/01/2015 #4

Avatar de papirrin

No en entendi muy bien si dices que sirve o no sirve para web server, y es la primera vez que comienzo a estudiar eso asi que no entiendo los protocolos...


pero mira este video de un servidor web hiper sencillo con arduino...


lo que no se si es que pudiera enviar las imagenes, y claro que estaria pensando en una pagina web con un iconito o algo que no se vea tan blanco y negro osea nada imagenes de alta resolucion.

e necesita mucho trabajo y gráficas pues ¿en donde las guardas?
el guardarlas es lo de menos se podrian poner en una memoria SD controlada con el micro. supongo que el unico inconveniente seria la velocidad.
19/01/2015 #5


Me refiero a que por la capacidad natural de almacenamiento de un microcontrolador, no veo como guardar una pagina web decente con gráficas y todo lo que implica, por eso es que considero que la aplicación mas explotable con cualquier microcontrolador y el modulo ESP8266, es a través de la comunicación TCP o UDP; con la cual ya puedes establecer la transmisión exclusiva de datos específicos entre tu tarjeta aplicativa y un HOST, o lo que se quiera que soporte el protocolo tcp/ip.

Si apreciamos los ejemplos que nos comparte quien inicia el tema, debemos entender el potencial del protocolo UDP, quizás de manera muy coloquial o simplista podría decir que gracias a este modulo, podemos migrar casi cualquier aplicación rs-232 que tengamos pero a través de tcp/ip.

Tal vez, seria importante antes de utilizar el modulo ESP8266 y que a manera de introducción al mundo TCP/IP (UDP) nos programáramos dos módulos de software en nuestra pc; uno de transmisión y otro de recepción para "descubrir" el potencial de este protocolo, ya aquí nos postearon unos ejemplos en Phyton yo estoy con Microsoft y hay muchos otros lenguajes para probar, como MatLab, Mathematica, etc.

En conclusión, yo considero que el simple echo de poder manipular variables de estado de un microcontrolador a través de tcp/ip con el modulo ESP8266 es una oportunidad muy asequible, sin la pretensión de hacer un web server; para eso ya me iría a un ARM.

Saludos
19/01/2015 #6

Avatar de papirrin

En conclusión, yo considero que el simple echo de poder manipular variables de estado de un microcontrolador a través de tcp/ip con el modulo ESP8266 es una oportunidad muy asequible, sin la pretensión de hacer un web server; para eso ya me iría a un ARM.

yo pienso que desde ese punto de vista a lo mejor ya conviene pagar un servicio de servidor y sale mas barato... XD

a mi para lo que me gustaria ese modulo es para hacer paginas de configuracion de hardware tipo router...



imagina, no se, una cafetera con su propia pagina de configuracion, o no se cualquier cosa que imagines que seguramente ya existe, pero para eso me gustaria ese modulo.

estoy totalmente deacuerdo contigo que ni remotamente se podria hacer una pagina como la de CAM4 ni de chiste y claro se le puede sacar otras utilidades.
19/01/2015 #7


papirrin dijo: Ver Mensaje

http://www.yoreparo.com/foros/files/..._router_02.jpg

imagina, no se, una cafetera con su propia pagina de configuracion, o no se cualquier cosa que imagines que seguramente ya existe, pero para eso me gustaria ese modulo.

Si, Justamente le llaman el "Internet de las cosas" y en su raiz esta basado en UDP.

Lo que tu invitas a imaginar, pues es por supuesto muy viable y seria el menos en quitarte la entereza, así que pues suerte y a ver como avanza este tema ya veremos como lo enriquecemos mas. Por mi parte estoy migrando una tarjetita que ocupo para Hidroponia que la manipulaba por bluetooth y que terminaba cableandola pos rs232 por falta de cobertura del bluetooth, en las primeras pruebas de este modulo que comentamos, si que cubre bien la distancia que necesito...ahora falta un rato todavía...pero tiene buena pinta.

Saludos
20/01/2015 #8

Avatar de george.manson.69

papirrin dijo: Ver Mensaje
Muy bueno el modulo, ayer me puse a estudiar como hacer un servidor web con microcontrolador y no parece tan dificil, aunque todavia no me explico como se envian los archivos de imagen para que los lea el explorador de web eso si parece que esta un poco complejo.
De poder se puede realizar un web server en un microcontrolador, yo me imagino tener una memoria ROM externa de unos 5 MB donde almacenes tu pagina, y configurar el modulo esp8266 para que trabaje como web server, realizas todos lo comandos automatizamente, y hasta que te pida la pagina, empiezas a leer la ROM enterna y enviarlo al dispositivo que ha hecho la peticion.

El siguiente tutorial que voy a realizar es precisamente eso, usar una memoria ROM donde guarde una pagina completa (Pagina Simple, HTML,CSS , Posiblemente Javascript), la pagina la puedes hacer en http://codepen.io/pen/ cuando tengas lista la pagina, la vaciamos a la memoria ROM ( ahora que lo pienso usar un microSD Card).

Pero todo esto usar un microcontrolador LPC1768 con procesador ARM CORTEX M3.
Saludos!
20/01/2015 #9

Avatar de papirrin

Bueno un par de comentarios...

ese MCU LPC1768 me parecio bestial... sera mi siguiente paso XD... en realidad como primera impresion el modulo wifi me parecio como de la talla de los PICs. pero estuve viendo que alcanza los 115Kbaudios, asi que si se me hace como para algo un poco mas robustito.

por otro lado yo no le he comprado el modulo ni el MCU, asi que si pones algun ejemplo estaria excelente; con respecto a lo de la pagina si quieres hago alguna pero en realidad no tenia ningun proyecto especifico, solo que me llamo la atencion el modulo y me puse a investigar un poco, que por cierto muy buenos tus aportes, los voy siguiendo XD.
13/04/2015 #10


Como paso la información que recibo del modulo a una base de datos? saben y viceversa pasar de la base de datos al modulo (base de datos SQL Server 2008 R2)


Agradeceré su amable apoyo.
14/04/2015 #11


JRVEGACOV dijo: Ver Mensaje
Como paso la información que recibo del modulo a una base de datos? saben y viceversa pasar de la base de datos al modulo (base de datos SQL Server 2008 R2)


Agradeceré su amable apoyo.
El modulo ESP8266 como tal, no tiene los elementos para poder incidir directamente con una base de datos y para lograr algo como lo que sugieres dependerá de quien comande, maneje o interactue con el modulo.

Suponiendo que se cuenta con el acceso al servidor de SQL para montar aplicaciones extras, entonces se puede desarrollar una aplicación que funja para poder estar "escuchando" comandos provenientes desde el modulo ESP8266 vía el protocolo UDP y que los traduzca en comandos SQL para poder afectar las bases que se quieran en dicho servidor SQL.

Así lo hago yo, aunque utilizo MYSQL, en esencia es lo mismo. Asi que hay que tener conocimientos suficientes en SQL, Programación del protocolo tcp/ip y obviamente programar el modulo ESP8266 con algún microcontrolador tal como se ejemplifica por este Tema.

Para el asunto de la programación o aprovechamiento del protocolo tcp/ip, se puede usar, C+, VBasic.net, Python, Pearl etc, etc.

Saludos
14/04/2015 #12


Para el asunto de la programación o aprovechamiento del protocolo tcp/ip, se puede usar, C+, VBasic.net, Python, Pearl etc, etc.

Entonces a grandes rasgos la forma de hacerlo es tener MYSQL - VBasic.net - ESP8266, donde VBasic.net hace la función de un OPCServer, o me equivoco?.


El detalle es como hacer la interacción entre VBasic.net (o el programa que se utilice ) con el ESP8266 y con MYSQL.
14/04/2015 #13


No te equivocas, así es la cosa, aunque como siempre cada quien tiene su forma de hacer las cosas, aquí te dejo una pequeño aporte mio al asunto del protocolo UDP y VBasic.net. Aqui no toco el asunto de SQL para no confundir la cosas o conceptos, sin embargo creo que ilustra de manera global tu pregunta; al menos la parte "dificil" que comprende desde la electronica hasta tcp/ip. Ya que sobre como abrir bases de datos desde Visual Basic encontraras mil ejemplos.

Saludos
14/04/2015 #14


miborbolla dijo: Ver Mensaje
No te equivocas, así es la cosa, aunque como siempre cada quien tiene su forma de hacer las cosas, aquí te dejo una pequeño aporte mio al asunto del ... ...


Excelente, estare revisando el tema y posterior a esto vuelvo con ustedes para el resultado que obtuve .

Saludos y mil gracias por el aporte!
14/04/2015 #15


miborbolla dijo: Ver Mensaje
No te equivocas, así es la cosa, aunque como siempre cada quien tiene su forma de hacer las cosas, aquí te dejo una pequeño aporte mio al asunto del protocolo UDP y VBasic.netAqui no toco el asunto de SQL para no confundir la cosas o conceptos, sin embargo creo que ilustra de manera global tu pregunta; al menos la parte "dificil" que comprende desde la electronica hasta tcp/ip. Ya que sobre como abrir bases de datos desde Visual Basic encontraras mil ejemplos.

Saludos
El lenguaje "BASIC" se puede utilizar con arduino? se puede desarollar algo similar a tu ejemplo con este, que funja la función de su PIC? o no lo soporta?

Adicional a esto, el tema de la IP
HSerOut ["AT+CIPSTART=",34,"UDP",34,",",34,"192.168.0.2",34 ,",","7777",",","7777",10,13]'Establecemos conexion UDP con la ip 192.168.0.2 y puertos 7777
Esta conectandose a una IP (MI PC )o se le esta asignando una IP al modulo???

Donde puedo aprender más de los puertos ya que es algo que no termino de entender?
15/04/2015 #16


Desde el lado del microcontrolador y lenguaje de programación, si se puede usar el que gustes solo es cuestión de hacerlo, pero me parece que no has comprendido el tema de como aprovechar el modulo ESP8266 para comunicacion tcp/ip, que considero es lo primero que debes superar y en el presente aporte, como en el mio, viene todo muy claro y tratamos de establecer como hacer uso de los comandos de atención (AT) a los que responde el modulo ESP8266.



Saludos
18/04/2015 #17

Avatar de Dr. Zoidberg

JRVEGACOV dijo: Ver Mensaje
Donde puedo aprender más de los puertos ya que es algo que no termino de entender?
Eso no tiene gran ciencia. En un sistema operativo con soporte de multitasking, la direccion IP identifica al host y el PUERTO identifica al proceso.
Para verlo mas facil, la direccion IP es como el numero de telefono de una empresa y el PUERTO es el numero de interno de algun empleado.
19/04/2015 #18


Dr. Zoidberg dijo: Ver Mensaje
Eso no tiene gran ciencia. En un sistema operativo con soporte de multitasking, la direccion IP identifica al host y el PUERTO identifica al proceso.
Para verlo mas facil, la direccion IP es como el numero de telefono de una empresa y el PUERTO es el numero de interno de algun empleado.
Está entendido ya. Ahora mi pregunta. ¿Trasladándolo con tu ejemplo al empleado, le pueden hacer varias llamadas a la vez? ¿Está limitado a "x" cantidad o no tiene limite?

Mil gracias por sus aportes, me son de inmensa utilidad.
20/05/2015 #19


Conexión de módulo Wifi
¿Q tal, amigos? Tengo una consulta.
He adquirido este módulo wifi y quisiera saber el pin RLD dónde va conectado y para que sirve.
Les agradezco de antemano sus comentarios.
Imágenes Adjuntas
Tipo de Archivo: jpg 20150520_105103.jpg (122,7 KB (Kilobytes), 30 visitas)
Tipo de Archivo: jpg 20150520_104955.jpg (111,5 KB (Kilobytes), 25 visitas)
26/08/2015 #20

Avatar de uagav

Hola! mi aporte es la libreria para la construcción del pcb en proteus. compartanla. y espero que les sirva.
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.