|   FOROS      |         |     KIO4 |      
   Inicio B4A (Basic4Android) App inventor 2 WAMP - PHP - MySQL
   Elastix - VoIP Cosas de Windows Webs interesantes Arduino
  Estación meteorológica Visual Basic Script (VBS) Translate:
Búsqueda en este sitio:


Nuevo concurso para España, Argentina, Brasil, Chile, Colombia, Ecuador, México, Perú y Portugal.

Arduino en español
Circuitos con Arduino - Juan Antonio Villalpando

-- Tutorial de iniciación a Arduino --

Volver al índice del tutorial                    Return to index tutorial

____________________________

Arduino. Button. Dimmer. LED.

 

¿Qué es esto?

- Un modulito llamado ESP8266 que tiene Wifi incorporado y puede trabajar de forma parecida al Arduino.

- Puede trabajar conectado a Arduino o sin conectar al Arduino de forma independiente.

- Hay varios modelos, debes comenzar por el ESP8266-01, vale unos 0,70 €

- El mejor es el NodeMCU, V3 Lolin, solo vale 2,50 €, lo veremos en el tutorial 57modulowifi_7.htm Es importante que lo compres y lo aprendas porque tiene futuro. Tiene al ESP8266 y además conector USB para poder trabajar independiente del Arduino.

- En resumen compra el ESP8266-01 y el NodeMCU Lolin. En total te costarán unos 3 €.

- ¿Y si tuviera que elegir uno cual compraría?

- Este: http://es.aliexpress.com/item/V3-Wireless-module-NodeMcu-4M-bytes-Lua-WIFI-Internet-of-Things-development-board-based-ESP8266-for/32460412205.html

- Todo esto trata del IoT (Internet of Things). El Internet de las cosas. Que todas las cosas tengan un modulito para estar conectada por Wifi a Internet.

- Comienza este tutorial desde el principio con el ESP8266.

INDICE DE LOS TUTORIALES SOBRE ESP8266

1.- 57modulowifi. (esta página). Módulo ESP8266. Grabación de firmware. Comandos AT. Controlar el LED13 de Arduino desde una página web por Wifi. Enviar y recibir desde una página web.

2.- 57modulowifi_2. Grabación de firmware. Cambio de velocidad baudios. Utilización con Arduino. Mediante pulsadores y resistencia variable modificamos los datos visibles de una página web. Lo contrario, desde una página web modificamos el estado del LED13. Alimentación con un módulo externo.

- En muchos tutoriales programan el ESP8266 con el módulo FTDI, en mi caso lo programa con el mismo Arduino UNO.

3.- 57modulowifi_3. Uso del ESP8266 independiente del Arduino (aunque se puede programar con el Arduino. También se puede programar sin el Arduino con un FDTI). Cargamos un programs en el ESP8266 y un LED parpaderá según el código introducido en el ESP8266. El ESP8266 trabajará sin estar conectado al Arduino, independientemente. Carga del Gestor de tarjeta en el IDE de Arduino.

4.- 57modulowifi_4. Aquí también el ESP8266 trabajará independiente del Arduino. Podemos controlar un LED mediante el ESP8266 trabajando con Wifi, desde una página web controlamos un LED. Desde una página web, por Wifi podemos ver la temperatura que capta el sensor 18B20.

5.- 57modulowifi_5. Trabaja sin Arduino. El ESP8266 cliente de un servidor web. Tenemos instalado el servidor WAMP en nuestro ordenador y desde lel ES8266 podemos ver datos. Presentación del 8266-12E 6.- 57modulowifi_6. Aquí presento otro módulo distinto del anterior, puede llegar a 250 m en Wifi.

7.- 57modulowifi_7. Comprar. Este es el bueno y el que tienes que comprar el NodeMCU Lolin. En un modulito viene el ESP8266-12 y el CH340 con el conector USB para conectarlo al ordenador. Es el más cómodo de trabajar.

________________________________________

 

57_1.- Módulo Wifi ESP8266 ESP-01.

 

_________________________________________________________
- Comenzarmos con el ESP8266-01

 

 

                       
BH1528 y ESP83266EX

ESP8266_Specifications_English.pdf

http://www.adafruit.com/product/2471

 

SDIO 2.0, SPI, UART
32-pin QFN package
Integrated RF switch, balun, 24dBm PA, DCXO, and PMU
Integrated RISC processor, on-chip memory and external memory interfaces
Integrated MAC/baseband processors
Quality of Service management
I2S interface for high fidelity audio applications
On-chip low-dropout linear regulators for all internal supplies
Proprietary spurious-free clock generation architecture
Integrated WEP, TKIP, AES, and WAPI engines
Solutions

Supports APSD for optimal VoIP applications
Patented spurious noise cancellation algorithm for integration in SOC applications
Supports Bluetooth co-existence interface
Self-calibrated RF to ensure optimal performance under all operating conditions
Zero factory tuning
No external RF components
Specifications

802.11 b/g/n
Wi-Fi Direct (P2P), soft-AP
Integrated TCP/IP protocol stack
Integrated TR switch, balun, LNA, power amplifier and matching network
Integrated PLLs, regulators, DCXO and power management units
+19.5dBm output power in 802.11b mode
Power down leakage current of <10uA
Integrated low power 32-bit CPU could be used as application processor
SDIO 1.1/2.0, SPI, UART
STBC, 1×1 MIMO, 2×1 MIMO
A-MPDU & A-MSDU aggregation & 0.4ms guard interval
Wake up and transmit packets in < 2ms
Standby power consumption of < 1.0mW (DTIM3)

1.- Presentación.

El modulito ESP8266 es un servidor y cliente wifi, entre otras muchas posibilidades.

Puede funcionar con Arduino y de forma independiente.

Contiene un procesador que lo podemos programar usando los comandos del IDE de Arduino.

Tiene dos GPIO para poder enviar señales de entrada y salida al exterior, con estos terminales podemos controlar dos elementos.

Podemos grabarle nuevo firmware, para eso pondremos la GPIO 0 a GND.

Podemos tener una página web y pulsando distintos enlaces controlar un elemento externo mediante wifi.

Puede funcionar como cliente, punto de acceso o los dos.

Alcance: 100 metros, en exterior puede llegar a los 300 m, aquí llegan a los 4 km.

Admite hasta 5 conexiones simultáneamente.

Utiliza TCP y UDP

Hay un Arduino UNO llamado ESPduino, que contiene a este integrado.

Para ver la potencia a la que llega la señal carga esta aplicaciòn en tu móvil, cuando te funcione el módulo.

Trabaja mejor con el Arduino Due ya que este tiene varios puertos serie, pero con el Arduino UNO también funciona eficientemente y es así como lo veremos.

Los chips los fabrica la empresa Espressif, pero la empresa china Ai-Thinker lo suelda en un módulo y lo vende a bajo precio.

Veremos el modelo ESP8266 ESP-01 y más adelante el ESP8266 ESP12E que tiene más entradas/salidas GPIO disponibles.

En principio vamos a ver este módulo con el IDE del Arduino 1.0.6, más adelante, en otro tutorial lo veremos con el IDE 1.6.7 que es más completo que el anterior y dispone de herramientas con los que cargar el módulo tanto los sketch como los firmware.

2.- Grabación de un nuevo firmware.

El firmware es el software que hace funcionar al dispositivo.

Lo primero que vamos a ver es cómo cambiarle el firmware, esto parece difícil y muchos no se atreven por que creen que pueden dejar inservible el modulito, pero con muchas posibilidades lo haremos fácilmente y con éxito.

Posíblemente tienes un módulo que está configurado a 115000 y no te funciona los ejemplos que ves en Internet, graba el firmware ai-thinker-0.9.5.2-9600.bin para establecer la velocidad en 9600

Hazlo porque no vas a tener problemas.

- En la mayoría de otros tutoriales de internet verás que utilizan el módulo FTDI para conectarse por USB al ordenador en vez del Arduino UNO, en nuestros ejemplos vamos a utilizar el Arduino UNO, aunque en muchos sitios indican que las TX y RX deben ser de 3,3 V, en mi caso he probado conectarlo directamente al Arduino con esos terminales a 5V y nunca ha dado problemas, así que lo haremos como indico en los dibujos:

a.- Realiza esta conexión

Conexión para realizar la grabación del firmware.

Arduino
Módulo ESP8266
TX TX
3,3 V CH_PD
3,3 V Vcc
GND GND
GPIO 0 GND
RX RX

- El GPIO 0 puesto a GND se conecta para grabar un firmware, luego lo desconectaremos.

b.- Cargamos en el Arduino el Steck que se encuentra en...

Archivos / Ejemplos / 01.Basics / BareMinimum

BareMinimum
void setup() {
// put your setup code here, to run once:

}

void loop() {
// put your main code here, to run repeatedly:

}

c.- Bajas este archivo ESP8266_flasher.zip

d.- Arrancas esp8266_flasher.exe. Pulsas el botón BIN y carga ai-thinker-0.9.5.2-9600.bin

e.- Establece el número de puerto donde está conectado tu Arduino, en mi caso el COM25.

f.- Pulsa Download y se cargará la versión firmware 0.9.5.2.

g.- Al final parece dar un error, ignóralo.

NOTA: mientras cargas no debe estar funcionando el Serial Monitor.

La versión 0.9.5.2 es la que mejor me ha funcionado en este tipo de módulos, si no te funciona este módulo con los tutoriales que encuentras en internet, carga este firmware 0.9.5.2.

 

____________________________________________________

Otros firmware: http://wiki.aprbrother.com/wiki/Firmware_For_ESP8266

ai-thinker-0.9.5.2-9600.bin. Baudios = 9600 (este es el recomendable)

ai-thinker-v1.1.1.bin. Baudios = 115200. Esta versión también me ha funcionado.

ESP_8266_BIN0.92.bin

v0.9.2.4 AT Firmware-ESPFIX.bin Este código también es importante, muchos ejemplos funcionan solo con él. Lo veremos en el otro tutorial.

2.- Primeras pruebas.

- Quita el cable de GPIO 0

Conexión para trabajar con el módulo.

Arduino
Módulo ESP8266
TX TX
3,3 V CH_PD
3,3 V Vcc
GND GND
GPIO 0  
RX RX

 

- En el Arduino sigue cargado el Sketch BareMinimum, si no lo tienes cargado, cárgalo.

- Vamos al Serial Monitor y escribimos AT
(Los comandos AT en mayúsculas.)
(Cuidado con los espacios y las dobles comillas ")

Debe salir OK.

- Fíjate si pulsas muchas veces "Enviar" observarás que parpadea un pequeño LED azul que tiene el módulo Wifi.

- Vamos a poner más comandos:

- Escribe secuencialmente estos comandos y observa los resultados:

AT+GMR

Versión del firmware

AT version: 0.21.0.0
SDK version: 0.9.5

AT+CWMODE? Ver en qué modo está (Como cliente STA (1), como Punto de Acceso (2) AP o ambos (3))
AT+CWMODE=3 Lo ponemos en modo 3.
AT+CWLAP Saldrá un listado de los Puntos de Accesos WiFi que hay en las cercanías.

AT+CWJAP="MIROUTER","micontraseña"

 

Voy a conectarme a la red de mi Router (Punto de Acceso, AP). Escribo su nombre y contraseña.
AT+CWJAP? Indica a qué Punto de Acceso estás conectado.
AT+CIFSR - Muestra la IP del módulo como servidor: APIP = 192.168.4.1
- Muestra la IP del módulo como cliente conectado a mi Router STAIP = 192.168.1.5
Vamos a convertirlo en un servidor web
AT+CIPMUX=1 Para que el servidor funcione con múltiples conexiones.
AT+CIPSERVER=1,80 Abre el servidor web (1). Utiliza el puerto 80.

Vamos a un navegador web y escribimos

http://192.168.1.5/ENTRADA1=1,SALIDA1=1,SALIDA2=0,SALIDA3=1

Observamos de conectamos con el servidor del módulo Wifi y reconoce ese envío.

Al llegar este envío al servidor, podremos trabajar con él, bien con el módulo o bien con el Arduino para que se activen o no ciertas salidas, es decir,

desde internet podemos controlar dispositivos mediante este módulo y Arduino.

----------------------------------------

Si quitamos y ponemos la alimentación del módulo saldrá un mensaje como este...

- Si ponemos un pulsador desde el terminal RST del módulo a GND, podemos reiniciar la conexión al pulsarlo.

- Cambio de velocidad.

Para cambiar la velocidad del módulo intentamos alguno de estos dos comandos:

AT+CIOBAUD=9600
AT+IPR=9600

En la versión 9.2.4 para ver la velocidad puedes utilizar:
(Para las otras versiones no funciona)

AT+CIOBAUD=?
AT+CIOBAUD?

3.- Controlar un LED del Arduino.

- Configuramos el módulo wifi como servidor de la manera que la hemos visto anteriormente.

Al escribir estas direcciones se encenderá o apagará el LED correspondiente.

http://192.168.1.5/L13

http://192.168.1.5/L12

- Cambiamos los terminales siguientes

TX del módulo al terminal 2 del Arduino.
RX del módulo al terminal 3 del Arduino.

Código
#include <SoftwareSerial.h>
SoftwareSerial BT1(3, 2); // BT1(TX,RX)
String cadena =" ";
char letra ;

void setup()
{ Serial.begin(9600);
BT1.begin(9600);
pinMode(12, OUTPUT); 
pinMode(13, OUTPUT);
}

void loop()
{ if (BT1.available()) 
{ letra = BT1.read() ;
Serial.print(letra);
cadena = cadena + letra ; 
}
if (Serial.available())
{ char s = Serial.read();
BT1.print(s);
}
if ( letra == '\n')
{ if ( cadena.indexOf("L13") > 0 )
{ digitalWrite(13, !digitalRead(13)) ;
}
{ if ( cadena.indexOf("L12") > 0 )
{ digitalWrite(12, !digitalRead(12)) ;
}}
cadena = "" ;
letra = ' ' ;
} 
}

- A veces se pierde la conexión y debemos quitarle y ponerle la alimentación al módulo y luego volver a poner esto para que vuelva a ser servidor:


AT+CIPMUX=1

AT+CIPSERVER=1,80

- Si hemos cargado un programa y en algún momento perdemos la configuración, volvemos a cargar el Sketch BareMinimum

4.- Conexión del módulo al ordenador y del ordenador al módulo mediante Putty.

- Normalmente el módulo permanece conectado a la red que hemos establecido....
AT+CWLAP
AT+CWJAP="MIROUTER","micontraseña"
AT+CWJAP?

Pero suele perder su configuración de servidor web...
AT+CIPMUX=1

AT+CIPSERVER=1,80
AT+CIFSR

Vamos el Putty. El Putty es un cliente Telnet y SSH para poder conectarse al modulito desde el ordenador.

Lo que escribamos en el Putty se verá en el Serial Monitor:

Ahora lo hacemos al revés, pasar datos del Serial Monitor al Putty

Si no estuvieran conectados escribiríamos: AT+CIPSTART=0,"TCP","192.168.1.3",80

Siendo 3 parte de la IP del ordenador donde esté el Putty,

pero como ya estamos conectamos, escribimos:

AT+CIPSEND=0,23

Juan Antonio - KIO4.COM

5.- Enviar o recibir de una página web.

AT+CIPSTART=0,"TCP","192.168.1.3",80

AT+CIPSEND=0,47

> GET /index2.php HTTP/1.0\r\n Host:192.168.1.3\r\n\r\

NOTA: para que me funcionara este ejemplo tuve que permutar las conexiones, es decir:
la RX del módulo al terminal 1 del Arduino.
la TX del módulo al terminal 0 del Arduino.

Este programa pide información de la página index2.php que debe existir en un servidor web local, si la información que viene trae el 192, se enciende el LED13

No funciona correctamente.

Código
http://blog.huntgang.com/2015/01/20/arduino-esp8266-tutorial-web-server-monitor-example/
//my web site, replace with yours
#define DST_IP "192.168.1.3"
 
//Define the pin for the on board LED
int led = 13;
 
//Initialize Device
void setup()
{
//Enable the Onboard LED to act as a Status indicator light
pinMode(led,OUTPUT);
//Set the speed for communicating with the ESP8266 module
Serial.begin(9600);
//Send a series of flashes to show us we are in the bootup phase.
blinkcode ();
//Reset the ESP8266
Serial.println("AT+RST");
//Wait for the WiFi module to bootup
delay(800);
//Switch the chip to "client" mode
Serial.println("AT+CWMODE=1");
//Connect to our Wireless network NOTE: change SSID to your wireless
//network and PASSWORD to the key used to join the network.
Serial.println("AT+CWJAP=\"ONOA4E5\",\"1442552253\"");
//Once again blink some lights because it is fun!
blinkcode ();
}
 
void loop()
{
//Open a connection to the web server
String cmd = "AT+CIPSTART=\"TCP\",\""; //make this command: AT+CPISTART="TCP","192.168.1.3",80
cmd += DST_IP;
cmd += "\",80";
Serial.println(cmd);
 
//wait a little while for 'Linked'
delay(300);
 
//This is our HTTP GET Request change to the page and server you want to load.
cmd = "GET /index2.php HTTP/1.0\r\n";
cmd += "Host: 192.168.1.3\r\n\r\n";
 
//The ESP8266 needs to know the size of the GET request
Serial.print("AT+CIPSEND=");
Serial.println(cmd.length());
 
//Look for the > prompt from the esp8266
if(Serial.find(">"))
{
//Send our http GET request
Serial.println(cmd);
}
else
{
//Something didn't work...
Serial.println("AT+CIPCLOSE");
}
 
//Check the returned header & web page. Looking for a keyword. I used YES12321
 
if (Serial.find("192"))
{
//If the string was found we know the page is up and we turn on the LED status
//light to show the server is ONLINE
digitalWrite(led,HIGH);
}
else
{
//If the string was not found then we can assume the server is offline therefore
//we should turn of the light.
digitalWrite(led,LOW);
}
//Wait a second for everything to settle.
delay(1000);
//Be great people and close our connection.
Serial.println("AT+CIPCLOSE");
 
//Introduce a delay timer before we finish and go back to the begining.
delay (5000);
}
 
void blinkcode ()
{
//Simply loop a few times flashing the status light (this is used during boot up)
int i;
for (i = 1; i <= 10; i++){
delay (100);
digitalWrite(led,HIGH);
delay (100);
digitalWrite(led,LOW);
}
}

http://blog.filipeflop.com/wireless/esp8266-arduino-tutorial.html

Con dos Arduinos:

http://br-arduino.org/2015/07/arduino-servidor-web-wifi-esp8266.html

http://www.embarcados.com.br/modulo-esp8266/

-------------------------------------------------------------------------------------------------------------------

Alimentación del módulo y niveles de tensión

Este módulo requiere 3,3 de alimentación para Vcc, y niveles lógico de 3,3 V. No admite 5 V. Si se conecta RX o TX a 5 V, el Arduino puede averiar a este módulo. Se debe utilizar un convertidor de tensión, o un Arduino que funcione con 3,3 V.

La alimentación de 3,3 V que dispone el Arduino Uno no suministra la intensidad adecuada para alimentar a este módulo. Se debe alimentar con una fuente externa de 3,3 V (de unos 300 mA o más).

A pesar de lo recomendado, he probado muchas veces este módulo con los 3,3 V que dispone el Arduino UNO y utilizando las salidas DIGITALES que entregan 5 V, y no he tenido problema de mal funcionamiento ni averías. Realiza estas prácticas con los 3,3 V del Arduino y conecta los terminales directamente del Arduino al módulo, va a funcionar.

 

Si ponemos el módulo wifi en las proximidades del móvil veremos que llega con una potencia de unos -45 dBm.

http://randomnerdtutorials.com/getting-started-with-esp8266-wifi-transceiver-review/

 

_________________________________
Algunas web

 

- Consulta. Programas el firmware y hacer un sendmail.

http://www.instructables.com/id/Send-email-with-ESP8266-and-Arduino-UNO/

Servidor web temperatura

http://iot-playground.com/2-uncategorised/41-esp8266-ds18b20-temperature-sensor-arduino-ide

http://ret-catriel.blogspot.com.es/2015/04/esp-8266-aportes-e-ideas-con-arduino.html

http://www.arduinesp.com/wifiwebserver

http://www.martyncurrey.com/arduino-esp8266/ analizador wifi

http://labdegaragem.com/forum/topics/conhecendo-o-esp8266?commentId=6223006%3AComment%3A488016

http://es.slideshare.net/kacarot201/manual-programacion-arduino-9276333

Kolbans-Book-on-the-ESP8266-September-2015.pdf

http://es.aliexpress.com/item/Free-shipping-ESP8266-serial-port-WIFI-Wireless-module-WIF-transceiver-wireless-module-ESP-01/32397903869.html

http://giltesa.com/2015/05/03/modulo-wifi-esp8266-por-3e-para-arduino

http://randomnerdtutorials.com/esp8266-controlled-with-android-app-mit-app-inventor/

________________________________

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información