martes, 9 de junio de 2015

Desarrollo. Primeros Pasos con el Módulo ESP8266

Módulo WiFi ESP8266.


  • Módulo para comunicación wi-fi.
  • Es pequeño y barato incluye la pila TCP/IP.
  • Diseñado para Internet de las cosas.
  • Puede Configurarse mediante comandos AT .


Características de Funcionamiento.

  • Funciona a 3.3Vcd, es importante que se alimente exactamente con este voltaje, ya que, en las pruebas que realicé, el módulo no funcionaba en absoluto.Además utilicé una fuente externa, como se mencionaba en ciertos blogs, ya que el consumo de corriente excede el que puede suministrar la fuente de la placa de Arduino.
Todas las características y hoja de datos del módulo están en :


La siguiente es una tabla que ejemplifica el consumo de corriente del módulo.

 


Tuve serios problemas al principio para poder hacer funcionar el módulo, ya que se debe colocar una resistencia de 10K Ohms cortocircuitando el pin Vcc y el pin CH_PD, esto es muy importante hacerlo con la resistencia, ya uqe de lo contrario si se hace con un simple cable, el módulo no funciona, esto me llevo mucho tiempo averiguarlo y fue gracias al siguiente video que pude averiguarlo:












Aunque esté en inglés puede verse la conexión que realizó, yo no tuve que conectar el capacitor que muestra.

En los videos se muestra una forma alternativa de hacer funcionar el módulo, con otras herramientas.

Del mismo modo, no utilizaremos los pines GPIO.

En esté caso, yo  me dediqué a usar la configuración del módulo con los comandos AT y la USART de Arduino, para ello me fuí guiando en el siguiente tutorial.



Así es como quedó mi módulo y el Arduino en mis pruebas.



Advertencia!
En algunos otros tutoriales, se comenta que debe ponerse una resistencia en el pin de Recepción del ESP8266 que se conecta al arduino, para no dañarlo, en mi caso omití este paso y no significo dañar el módulo, lo dejo a su consideración.



Instrucciones AT (Attention).


Desarrollados en 1977  por Dennis Hayes.
Interfaz de comunicación con un MODEM para así poder configurarlo y proporcionarle instrucciones, tales como marcar un número de teléfono.

Microcomm y US Robotics, lo universalizan.

No dependen del canal de comunicación a través del cual estas son enviadas, (Serial, infrarrojos, Bluetooth, etc.)

La telefonía móvil GSM también ha adoptado como estándar este lenguaje para poder comunicarse con sus terminales.

Si deseas más información esta en:

http://www.google.com.mx/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&ved=0CCoQFjACahUKEwivheLDsILGAhUJlIgKHfNLADg&url=http%3A%2F%2Fblog.tec-innovation.org%2Fwp-content%2Fuploads%2F2013%2F07%2FCOMANDOS-AT.doc&ei=rbx2Ve_6BomoogTzl4HAAw&usg=AFQjCNFnjz__K2-EM-seyFnEGQX2y00WwQ&bvm=bv.95277229,d.cGU




Comandos AT específicos para el ESP8266.

Todo el funcionamiento y configuración del módulo se consigue con ayuda de los siguientes comandos:


Comando Descripción Sintaxis Test
Parámetros
AT Test General - - - -
AT+RST Reinicio del módulo - - - -
AT+GMR Chequeo  versión del firmware. - - - -
AT+CWMODE Modo de funcionamiento AT+CWMODE=<mode> AT+CWMODE? AT+CWMODE=? 1= Sta, 2= AP, 3=both, Sta is the default mode of router, AP is a normal mode for devices
AT+CWJAP Conexión como cliente de la wifi local. AT+ CWJAP =<ssid>,< pwd > AT+ CWJAP? - ssid = ssid, pwd = wifi password
AT+CWLAP Muestra las redes disponibles para conectarse. AT+CWLAP


AT+CWQAP Quita el AP. AT+CWQAP - AT+CWQAP=?
AT+ CWSAP Conexión como cliente de la wifi local. AT+ CWSAP= <ssid>,<pwd>,<chl>, <ecn> AT+ CWSAP?
ssid, pwd, chl = channel, ecn = encryption; eg. Connect to your router: AT+CWJAP="www.electrodragon.com","helloworld"; and check if connected: AT+CWJAP?
AT+CWLIF Revisa los clientes conectados directamente en el módulo. AT+CWLIF - -
AT+ CIPSTATUS get the connection status AT+ CIPSTATUS

<id>,<type>,<addr>,<port>,<tetype>= client or server mode
AT+CIPSTART Inicia una conexión TCP o UDP para poder comenzar a mandar mensajes al dispositivo conectado al módulo. 1)single connection (+CIPMUX=0) AT+CIPSTART= <type>,<addr>,<port>; 2) multiple connection (+CIPMUX=1) AT+CIPSTART= <id><type>,<addr>, <port> - AT+CIPSTART=? id = 0-4, type = TCP/UDP, addr = IP address, port= port; eg. Connect to another TCP server, set multiple connection first: AT+CIPMUX=1; connect: AT+CIPSTART=4,"TCP","X1.X2.X3.X4",9999
AT+CIPMODE Establece el modo de transmisión de datos. AT+CIPMODE=<mode> AT+CIPSEND?
0 not data mode, 1 data mode; return "Link is builded"
AT+CIPSEND Envía datos cuando ya existe la conexión con el dispositivo. 1)single connection(+CIPMUX=0) AT+CIPSEND=<length>; 2) multiple connection (+CIPMUX=1) AT+CIPSEND= <id>,<length>
AT+CIPSEND=? eg. send data: AT+CIPSEND=4,15 and then enter the data.
AT+CIPCLOSE close TCP or UDP connection AT+CIPCLOSE=<id> or AT+CIPCLOSE
AT+CIPCLOSE=?
AT+CIFSR Regresa la IP del módulo. AT+CIFSR
AT+ CIFSR=?
AT+ CIPMUX Establece múltiples conexiones. AT+ CIPMUX=<mode> AT+ CIPMUX?
0 for single connection 1 for multiple connection
AT+ CIPSERVER Establece el módulo como servidor. AT+ CIPSERVER= <mode>[,<port> ]

mode 0 to close server mode, mode 1 to open; port = port; eg. turn on as a TCP server: AT+CIPSERVER=1,8888, check the self server IP address: AT+CIFSR=?
AT+ CIPSTO Set the server timeout AT+CIPSTO?
<time>0~28800 in second
+IPD Aparece en el monitor serial cuando se han recibido datos desde la conexión


For Single Connection mode(CIPMUX=0): + IPD, <len>:
For Multi Connection mode(CIPMUX=1): + IPD, <id>, <len>: <data>























Programa para configurar de manera manual los comandos en el módulo.








Con el siguiente programa se ingresan y reciben los mensajes que el módulo regresa cuando se hace la configuración.















En la parte de setup ingrese algunos comandos de configuración básica. Afortunadamente el módulo guarda las configuraciones correctas, por lo que podría configurarse solo una vez correctamente con este programa, si los comandos del setup fallan(desconozco exactamente la causa)Se pueden ingresar manualmente los siguientes comandos de configuración básica sin ponerlos en el setup:

AT+RST
AT+CWMODE=3
AT+CWJAP=”CHARLY”,”CONTRASE”      // Conectar al punto de acceso
AT+CIFSR                          // Para saber mi IP
AT+CIPMUX=1                       // Permitir multiples conexiones
AT+CIPSERVER=1,80             // Arrancar el servidor web en el puerto 80
 AT+CIFSR

Solo basta abrir el navegador y escribir la dirección que el comando AT+CIFSR nos dió en nuestra wifi local.

En el monitor serial aparecerá:




 Otra forma de conectarse al módulo es en el modo de AP, y se configura con el copmando:

AT+CWSAP="arduinoCasa","enableAccess",9,3

Donde :             
AT+CWSAP="ssid","contraseña",canal,encriptación

La dirección generica del modulo en este caso es:
192.168.4.1

Bastará conectarnos a esta nueva red configurada y abrir el navegador para teclear la dirección anterior y en el monitor serial aparecerá algo parecido que en el ejemplo anterior.


Para poder embeber código html y poder mostrar una pagina que reciba los mensajes del módulo se utiliza el siguiente comando:


inicar conexion para mandar mensajes
 AT+CIPSTART=0,"TCP","192.168.2.18",80 

Donde:

AT+CIPSTART=id,"TCP/UDP","IP Destino",puerto

Si el mensaje es:

Escribir:

AT+CIPSEND=0,tamaño del texto Enter
>
<h1>Codigo HTML</h1>








En el navegador aparecerá:























































































miércoles, 13 de mayo de 2015

Proyecto Cuidado Inteligente de una Azotea Verde

Intro.

Actualmente, en la Ciudad de México, existen problemas que aquejan cotidianamente a sus ciudadanos, problemas tales como ruido , contaminación, smog ,delincuencia, entre muchísimos otros problemas sociales.
El advenimiento de nuevas tecnologías,(internet, redes sociales, entre otras)abre un mundo de posibilidades aun no descubiertas ni siquiera por las personas que han hecho posibles estas nuevas tecnologías.Es por ello que este proyecto está destinado a hacer uso de algunas de estas nuevas tecnologías para dar solución a una problemática de sustentabilidad.

  

 

Descripción general del problema.

La sobrepoblación en la Ciudad de México , es la causa de un alto índice de contaminación ambiental además, el hecho de que cada vez se necesiten mayor número de viviendas y vialidades más anchas provoca tala de árboles(aunque haya leyes de protección ambiental) y la paulatina desaparición de áreas verdes.

En lo social, esto significa, la reducción de áreas de esparcimiento para los ciudadanos.

La inseguridad y la falta de mantenimiento de las áreas verdes de esparcimiento(parques, bosques, etc.) hacen que la calidad de vida en la ciudad, sea muy mala.



http://ciudadanosenred.com.mx/en-el-olvido-los-parques-urbanos/

 

Motivación.

El desarrollo industrial actual, genera reducción de costos de producción de muchos tipos de mercancías,(electrónica y materiales de construcción específicamente), lo cual hace viable la instalación de espacios verdes dentro de nuestros hogares en lugares nunca antes pensados o imaginados, los cuales pueden ser una opción más a la falta de lugares seguros y limpios de esparcimiento.

Actualmente el gobierno del D.F. está otorgando a: 
 
"Las personas físicas que acrediten ser propietarias de inmuebles destinados a uso habitacional y que instalen un sistema de naturación obtendrán el 10 por ciento en la reducción del impuesto(predial)."



La instalación de una azotea verde requiere cuidados posteriores,pero esto no significa perder tiempo en cuidados de riego, por lo cual se implementará un sistema con la placa Arduino, esto podría permitir plantar incluso vegetales y frutos para el consumo familiar.







Arduino es una plataforma electrónica de código abierto basado en hardware y software fácil de usar. Está dirigido a cualquier persona que hace proyectos interactivos. Arduino fue inventado en el año 2005 por el entonces estudiante del instituto IVRAE Massimo Banzi.




Solución.

Mediante la instalación de sensores de humedad, en determinadas zonas, puede controlarse el riego, mandando una señal a una electroválvula para que abra o cierre un flujo de agua.

Debido a que se está pensando en azoteas, es muy común que en ellas haya un buen abasto de agua, pues los tinacos están en ellas, además podría pensarse a futuro en un sistema de captación de agua pluvial.

Las electroválvulas que hay en el mercado son considerablemente caras su costo oscila entre $200 y $1000, por lo cual puede pensarse en desarrollar una propia con un motor de CD de desecho y un sistema de engranes que abran o cierren llaves de esfera.

Electrovalvula Selenoide 12v Dc Aire Agua, 1/2 Nc