====== ESP8266 ======
* Fabricante: [[http://espressif.com/|Espressif]]
* Producto: [[http://espressif.com/en/products/esp8266/|ESP8266]]
* Módulos: [[http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family|AI-Thinkers]] [[http://nodemcu.com|NodeMCU]] [[https://www.sparkfun.com/products/13231|SparkFun ESP8266 Thing]] [[http://www.mouser.es/ProductDetail/Adafruit/2471/?qs=GURawfaeGuAoxPWz4nSJYg%3d%3d|Adafruit HUZZAH]]
* SDK: [[https://github.com/espressif|Espressif GitHub]]
* Firmware: [[http://bbs.espressif.com/viewtopic.php?f=57&t=433|Flash Download Tool]] [[http://bbs.espressif.com/viewtopic.php?f=46&t=850|[Latest Release] ESP8266 SDK]]
\\
===== NodeMCU =====
{{:pub:nodemcu_usb.jpg?200|}}
* SDK: [[https://github.com/nodemcu|zeroday nodemcu GitHub]]
*
===== faq =====
==== alimentación ====
**3.3V** (pila, fuente o cable FTDI)
==== conexión serie ====
conversor USB a RS232 a **3.3V** (módulo o cable FT232RL)
* Comprobación en Linux
lsusb
dmesg | grep tty
ls -al /dev/ttyUSB*
{{:pub:nodemcu_tty.jpg?200|}}
* Comprobación en Windows
{{:pub:nodemcu_puerto.jpg?200|}}
==== demo ====
{{:pub:img_20151113_143007.jpg?direct&200|}}
\\
Comprobación activo y conexión wifi
\\
{{:pub:nodemcu_fing.jpg?200|}}
\\
Salida inicial serie (PuTTY 115200bps)
Ai-Thinker Technology Co. Ltd.
ready
Comando de reset
AT+RST
OK
ets Jan 8 2013,rst cause:4, boot mode:(3,3)
wdt reset
load 0x40100000, len 1320, room 16
tail 8
chksum 0xb8
load 0x3ffe8000, len 776, room 0
tail 8
chksum 0xd9
load 0x3ffe8308, len 412, room 0
tail 12
chksum 0xb9
csum 0xb9
2nd boot version : 1.3(b3)
SPI Speed : 40MHz
SPI Mode : QIO
SPI Flash Size : 8Mbit
jump to run user1
sd▒▒[▒
Ai-Thinker Technology Co. Ltd.
ready
Ver la versión del firmware
AT+GMR
AT version:0.23.0.0(Apr 24 2015 21:11:01)
SDK version:1.0.1
Ai-Thinker Technology Co. Ltd.
Apr 27 2015 13:55:14
OK
Modo wifi estación
AT+CWMODE=1
OK
Lista de wifis disponibles
AT+CWLAP
+CWLAP:(4,"PAILAB",-84,"e8:94:f6:87:88:e6",1)
+CWLAP:(1,"Labc01",-88,"00:26:4d:77:ef:25",3)
+CWLAP:(3,"DIRECT-F0-HP ENVY 5640 series",-62,"38:63:bb:d5:06:f1",6)
+CWLAP:(4,"TP-LINK_DE3A14",-75,"90:f6:52:de:3a:14",9)
+CWLAP:(3,"Wi-Fi-JRM",-69,"10:9a:dd:86:27:5f",10)
+CWLAP:(3,"X5pro",-35,"02:08:22:9c:2e:03",11)
+CWLAP:(2,"daNI",-88,"e8:94:f6:e5:78:dc",11)
+CWLAP:(2,"ecom",-90,"00:4f:62:0a:fa:87",11)
+CWLAP:(0,"eduroam",-75,"a0:48:1c:36:75:91",13)
+CWLAP:(0,"eduroam",-77,"a0:48:1c:34:24:11",13)
+CWLAP:(0,"eduroam",-94,"2c:44:fd:4b:79:d1",13)
OK
Conexión a wifi
AT+CWJAP="X5pro","d25700a94f6e"
WIFI CONNECTED
WIFI GOT IP
OK
Ver la ip y mac asignada
AT+CIFSR
+CIFSR:STAIP,"192.168.43.116"
+CIFSR:STAMAC,"18:fe:34:fd:c2:7f"
OK
Establecer una única conexión de datos
AT+CIPMUX=0
OK
Activar modo de datos
AT+CIPMODE=1
OK
Conexión con servidor en dirección ip remota en un puerto determinado (9000)
AT+CIPSTART="TCP","192.168.43.2",9000
OK
Envío de datos directo: desde RX del serie a TX del wifi, y del RX del wifi al TX del serie
AT+CIPSEND
OK
A partir de aquí lo que escribamos en el terminal se transmitirá y se recibirá también desde el servidor.\\
Para salir del modo de envío directo de datos y volver al modo AT hay que mandar la secuencia ''+++'' después de un segundo de inactividad.\\
Se supone que en la dirección ip remota indicada (192.168.43.2) hay el correspondiente servidor en el puerto determinado (9000), p.ej. con netcat en Linux:\\
nc -l -p 9000
==== comandos AT ====
* Reset: ''AT+RST''
* Firmware: ''AT+GMR''
* Configuración WIFI estación: ''AT+CWMODE=1''
* Lista de WIFIs: ''AT+CWLAP''
* Conexión a WIFI: ''AT+CWJAP="miWIFI","miclave"''
Al final de cada comando AT hay que mandar los caracteres de retorno de carro y salto de línea , para ello a través del emulador de terminal serie hay que introducir las combinaciones de teclas correspondientes:
* CR = \r = Ctrl-M
* LF = \n = Ctrl-J
Ejemplos con comandos AT: \\ [[https://github.com/espressif/ESP8266_AT/wiki/at_example_0020000903|at_example_0020000903]] {{:pub:esp8266-at-examples.pdf|esp8266-at-examples.pdf}} \\
[[http://wiki.iteadstudio.com/ESP8266_Serial_WIFI_Module#AT_Commands|http://wiki.iteadstudio.com/ESP8266_Serial_WIFI_Module#AT_Commands]]
[[http://esp8266at.com/|ESP8266 AT Commands parser]]
==== flashing firmware ====
Herramientas:
* [[https://github.com/themadinventor/esptool|esptool]]
esptool --port /dev/ttyUSB0 write_flash 0x00000 NodeMCU_nuevo_firmware.bin
Connecting...
Erasing flash...
Writing at 0x00000000... (0 %)
* [[http://esp8266.ru/esplorer/|ESPlorer]]
===== refs =====
==== foros & wikis ====
[[http://bbs.espressif.com/|Foro oficial Espressif]]\\
[[http://www.esp8266.com/|Comunidad Foro ESP8266]]\\
[[http://www.esp8266.com/wiki/doku.php|Wiki principal ESP8266]]\\
[[http://www.electrodragon.com/w/ESP8266|Wiki Electrodragon]]\\
[[http://www.sistemasorp.es/2014/10/07/probando-el-modulo-wifi-esp8266/|Blog SistemasORP]]\\
[[http://www.prometec.net/esp8266/|Tutoriales Prometec con Arduino y ESP8266]]\\
==== flashing firmware ====
Herramientas:
* [[https://github.com/themadinventor/esptool|esptool]]
esptool --port /dev/ttyUSB0 write_flash 0x00000 NodeMCU_nuevo_firmware.bin
Connecting...
Erasing flash...
Writing at 0x00000000... (0 %)
* [[http://esp8266.ru/esplorer/|ESPlorer]]
===== refs =====
===== libro =====
{{ :pub:esp8266_esp32.pdf |}}
==== foros & wikis ====
[[http://bbs.espressif.com/|Foro oficial Espressif]] \\
[[http://www.esp8266.com/|Comunidad Foro ESP8266]] \\
[[http://www.esp8266.com/wiki/doku.php|Wiki principal ESP8266]] \\
[[http://www.electrodragon.com/w/ESP8266|Wiki Electrodragon]] \\
[[http://www.sistemasorp.es/2014/10/07/probando-el-modulo-wifi-esp8266/|Blog SistemasORP]] \\
[[http://www.prometec.net/esp8266/|Tutoriales Prometec con Arduino y ESP8266]]
=== AAC ===
[[http://www.allaboutcircuits.com/projects/update-the-firmware-in-your-esp8266-wi-fi-module/?utm_source=Weekly Newsletter 1&utm_campaign=1f76cf54da-AAC_Newsletter_11_13_15&utm_medium=email&utm_term=0_2565529c4b-1f76cf54da-266258537/|Update the Firmware in Your ESP8266 Wi-Fi Module]] \\
[[http://www.allaboutcircuits.com/projects/breadboard-and-program-an-esp-01-circuit-with-the-arduino-ide/|Breadboard and Program an ESP-01 Circuit with the Arduino IDE]] \\
[[http://www.allaboutcircuits.com/projects/how-to-make-an-interactive-tcp-server-nodemcu-on-the-esp8266/|How to Make an Interactive TCP Server with NodeMCU on the ESP8266]] \\
[[http://www.allaboutcircuits.com/projects/guts-of-the-iot-part-1-building-nodemcu-from-source-for-the-esp8266/|Guts of the IoT: Building NodeMCU from Source for the ESP8266]]
=== HackADay ===
[[https://hackaday.io/project/3568-esp8266-test-program|ESP8266 Test Program]]