El ESP8266 es un chip Wi-Fi de bajo coste con pila TCP/IP completa y capacidad de MCU (Micro Controller Unit) producida por el fabricante chino Espressif Systems, con sede en Shanghai.
El chip primero llegó a la atención de los fabricantes occidentales en agosto de 2014 con el módulo ESP-01. Este pequeño módulo permite a los microcontroladores conectarse a una red Wi-Fi y realizar conexiones TCP/IP sencillas utilizando comandos de tipo Hayes. Sin embargo, en ese momento casi no había documentación en inglés sobre el chip y los comandos que aceptaba. El precio muy bajo y el hecho de que había muy pocos componentes externos en el módulo que sugiere que podría ser muy barato en el volumen, atrajo a muchos hackers para explorar el módulo, el chip y el software en él, así como para traducir La documentación china.
Web del producto: http://espressif.com/en/products/hardware/esp8266ex/overview
Módulo con memoria flash: http://espressif.com/en/products/hardware/esp-wroom-02/overview
Recursos: http://espressif.com/en/products/hardware/esp8266ex/resources
Datasheet: http://espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf
Wikipedia:
- https://es.wikipedia.org/wiki/ESP8266
- https://en.wikipedia.org/wiki/ESP8266
- System on chip (SOC) https://en.wikipedia.org/wiki/System_on_a_chip
Artículos a leer para nuevos en ESP8266:
- 4 cosas que hay que saber del ESP8266: https://www.baldengineer.com/four-esp8266-gotchas.html
- 5 razones para usar ESP8266: https://www.baldengineer.com/esp8266-5-reasons-to-use-one.html
El ESP8285 es un ESP8266 con 1 MB de flash incorporado, lo que permite dispositivos de un solo chip capaces de conectarse a Wi-Fi. Muchos encapsulados del ESP8266 viene con 1 MB de flash.
Foro de la comunidad de ESP8266: http://www.esp8266.com/
Más información:
- http://programarfacil.com/podcast/esp8266-wifi-coste-arduino/
- http://makezine.com/2015/04/01/esp8266-5-microcontroller-wi-fi-now-arduino-compatible/
SDK ESP8266
A finales de octubre de 2014, Espressif lanzó un kit de desarrollo de software (SDK) que permite programar el chip, eliminando la necesidad de un microcontrolador por separado.Desde entonces, ha habido muchos lanzamientos oficiales de SDK; Espressif mantiene dos versiones del SDK – una basada en RTOS y la otra basada en callbacks mediante comadnos AT:.
- NONOS SDK: https://github.com/espressif/ESP8266_NONOS_SDK
- RTOS SDK: https://github.com/espressif/ESP8266_RTOS_SDK
Una alternativa al SDK oficial de Espressif es el open source esp-open-sdk que se basa en la cadena de herramientas (toolchain) GCC. ESP8266 utiliza el microcontrolador Cadence Tensilica LX106 y la cadena de herramientas GCC que es de código abierto y mantenida por Max Filippov. Otra alternativa es «Unofficial Development Kit» de Mikhail Grigorev.
Otros SDK de código abierto para el ESP8266:
- esp-open-sdk: https://github.com/pfalcon/esp-open-sdk
- Unofficial Development Kit for Espressif ESP8266 http://www.programs74.ru y github https://github.com/CHERTS/esp8266-devkit
- NodeMCU: un firmware basado en Lua. https://github.com/nodemcu/nodemcu-firmware
- Arduino: un firmware basado en C ++. Este núcleo permite que la CPU del ESP8266 y sus componentes Wi-Fi sean programados como cualquier otro dispositivo Arduino. El Arduino Core ESP8266 está disponible a través de GitHub: https://github.com/esp8266/Arduino y cuyo wiki es https://github.com/esp8266/esp8266-wiki/wiki
- MicroPython: una implementación de Python para dispositivos embebidos a la plataforma ESP8266. https://docs.micropython.org/en/latest/esp8266/index.html
- ESP8266 BASIC: Un intérprete básico de código abierto específicamente diseñado para el Internet de las cosas. http://www.esp8266basic.com/
- Mongoose Firmware: Un firmware de código abierto con servicio gratuito en la nube: https://github.com/cesanta/mongoose-iot
ESP8266 core for Arduino: https://github.com/esp8266/Arduino mantenido por al comunidad.
Más información:
- SDK: http://hackaday.com/2014/10/25/an-sdk-for-the-esp8266-wifi-chip/
- esp-open-sdk: https://github.com/pfalcon/esp-open-sdk
- http://www.esp8266.com/
- https://github.com/esp8266/esp8266-wiki/wiki
Características
El esp8266 es un módulo muy de moda que va alimentado a 3.3V y que hay mucha documentación en internet. EL ESP8266 no tiene ROM y usa una ROM externa SPI y soporta hasta 16MB.
Características:
- 32-bit RISC CPU: Tensilica Xtensa LX106 running at 80 MHz*
- 64 KiB of instruction RAM, 96 KiB of data RAM
- External QSPI flash – 512 KiB to 4 MiB* (up to 16 MiB is supported)
- IEEE 802.11 b/g/n Wi-Fi
- Integrated TR switch, balun, LNA, power amplifier and matching network
- WEP or WPA/WPA2 authentication, or open networks
- 16 GPIO pins
- SPI, I²C,
- I²S interfaces with DMA (sharing pins with GPIO)
- UART on dedicated pins, plus a transmit-only UART can be enabled on GPIO2
- 1 port 10-bit ADC
* Both the CPU and flash clock speeds can be doubled by overclocking on some devices. CPU can be run at 160 MHz and flash can be sped up from 40 MHz to 80 MHz.
Datos de ESP8266 de datasheet:
- 802.11 b/g/n
- Integrated low power 32-bit MCU
- Integrated 10-bit ADC • Integrated TCP/IP protocol stack
- Integrated TR switch, balun, LNA, power amplifier and matching network
- Integrated PLL, regulators, and power management units
- Supports antenna diversity
- WiFi 2.4 GHz, support WPA/WPA2
- Support STA/AP/STA+AP operation modes
- Support Smart Link Function for both Android and iOS devices
- SDIO 2.0, (H) SPI, UART, I2C, I2S, IR Remote Control, PWM, GPIO
- STBC, 1×1 MIMO, 2×1 MIMO
- A-MPDU & A-MSDU aggregation & 0.4s guard interval
- Deep sleep power <10uA, Power down leakage current < 5uA
- Wake up and transmit packets in < 2ms
- Standby power consumption of < 1.0mW (DTIM3) • +20 dBm output power in 802.11b mode
- Operating temperature range -40C ~ 125C
- FCC, CE, TELEC, WiFi Alliance, and SRRC certified
Datos de la MCU Tensilica LX106 que lleva el ESP8266:
- https://en.wikipedia.org/wiki/Tensilica
- https://ip.cadence.com/uploads/white_papers/Diamond_Tensilica.pdf
Dentro de la gran cantidad de usos para este módulo caben destacar los siguientes:
- Electrodomésticos conectados.
- Automatización del hogar.
- Automatización de la industria.
- Cámaras IP.
- Redes de sensores.
- Wereables.
- IoT (Internet of Things o Internet de las Cosas)
- IIoT (Industrial Internet of Things o Internet de las Cosas para el sector Industrial)
Pinout ESP8266:
Pinout placas: http://www.pighixxx.com/test/portfolio-items/esp8266/?portfolioID=360
Diagrama de bloques
Buenísimos tutoriales: http://www.prometec.net/indice-tutoriales-esp8266/
Consumo ESP8266
Tabla de consumo del módulo ESP8266:
Si queremos alimentar el módulo ESP8266 con Arduino debemos ver las limitaciones de Arduino: pin power limitations: http://playground.arduino.cc/Main/ArduinoPinCurrentLimitations, a 5V la limitación es de 1A del regulador de tensión. Como va alimentado a 3.3V la limitación es de 150mA limitado por el regulador de tensión. Regulador http://www.ti.com/lit/ds/symlink/lp2985-33.pdf, por lo tanto alimentar el ESP8266 desde el pin de 3.3V puede dar problemas y es recomendable usar otra fuente de alimentación.
Valores de HIGH y LOW en ESP8266 http://henrysbench.capnfatz.com/henrys-bench/arduino-projects-tips-and-more/esp8266ex-gpio-high-and-low-input-thresholds/
Módulos ESP8266
El ESP8266 se presenta con muchos encapsulados: http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family
Los módulos ESP8266 los podemos encontrar en diferentes encapsulados y placas:
Características de los módulos:
Name | Active pins | Pitch | Form factor | LEDs | Antenna | Shielded? | dimensions (mm) | Notes |
ESP-01 | 6 | 0.1″ | 2×4 DIL | Yes | PCB trace | No | 14.3 × 24.8 | |
ESP-02 | 6 | 0.1″ | 2×4 castellated | No | U-FL connector | No | 14.2 × 14.2 | |
ESP-03 | 10 | 2 mm | 2×7 castellated | No | Ceramic | No | 17.3 × 12.1 | |
ESP-04 | 10 | 2 mm | 2×4 castellated | No | None | No | 14.7 × 12.1 | |
ESP-05 | 3 | 0.1″ | 1×5 SIL | No | U-FL connector | No | 14.2 × 14.2 | |
ESP-06 | 11 | misc | 4×3 dice | No | None | Yes | 14.2 × 14.7 | Not FCC approved |
ESP-07 | 14 | 2 mm | 2×8 pinhole | Yes | Ceramic + U-FL connector | Yes | 20.0 × 16.0 | Not FCC approved |
ESP-08 | 10 | 2 mm | 2×7 castellated | No | None | Yes | 17.0 × 16.0 | Not FCC approved |
ESP-09 | 10 | misc | 4×3 dice | No | None | No | 10.0 × 10.0 | |
ESP-10 | 3 | 2 mm? | 1×5 castellated | No | None | No | 14.2 × 10.0 | |
ESP-11 | 6 | 0.05″ | 1×8 pinhole | No | Ceramic | No | 17.3 × 12.1 | |
ESP-12 | 14 | 2 mm | 2×8 castellated | Yes | PCB trace | Yes | 24.0 × 16.0 | FCC and CE approved[14] |
ESP-12E | 20 | 2 mm | 2×8 castellated | Yes | PCB trace | Yes | 24.0 × 16.0 | 4 MB Flash |
ESP-12F | 20 | 2 mm | 2×8 castellated | Yes | PCB trace | Yes | 24.0 × 16.0 | FCC and CE approved. Improved antenna performance. 4 MB Flash |
ESP-13 | 16 | 1.5 mm | 2×9 castellated | No | PCB trace | Yes | W18.0 x L20.0 | Marked as ″FCC″. Shielded module is placed sideways, as compared to the ESP-12 modules. |
ESP-14 | 22 | 2 mm | 2×8 castellated +6 | No | PCB trace | Yes | 24.3 x 16.2 |
Interesante artículo sobre que módulo wifi ESP8266 elegir: http://polaridad.es/esp8266-modulo-wifi-elegir-caracteristicas/
Buena explicación de los módulos: http://visystem.ddns.net:7442/ESP8266-modulos/
ESP WROOM otro encapsulado ya trae una memoria Flash SPI y con certificación FCC y CE:
- http://www.espressif.com/en/products/hardware/esp-wroom-02/overview
- https://espressif.com/en/products/hardware/esp-wroom-02/overview
- http://www.cnx-software.com/2015/05/05/espressif-vroom-wifi-esp8266-modules-are-fcc-and-ce-certified/
Datasheet: http://www.espressif.com/sites/default/files/documentation/esp-wroom-s2_datasheet_en.pdf
ESP-01
En nuestro caso vamos a usar el módulo ESP-01:
Esquemático:
Wiki: https://nurdspace.nl/ESP8266
Esquemáticos ESP01: http://henrysbench.capnfatz.com/henrys-bench/arduino-projects-tips-and-more/esp8266-esp-01-pin-outs-and-schematics/
Módulo usado:
Pingback: Saber Más Avanzado 2017 | Aprendiendo Arduino
Pingback: Saber más Arduino Avanzado 2018 | Aprendiendo Arduino
Pingback: Arduino UNO, Nano y NodeMCU ESP8266 a buen precio | Aprendiendo Arduino
Tengo una duda respecto a lo que me aparece en el monitor serial y es que después de compilar el ejemplo Helloserver no aparece mas que signos de interrogación.
Me gustaMe gusta
Hola, comprueba que la velocidad del monitor serie es la misma que hay en el Serial.begin() del setup
Me gustaMe gusta