History: 1. Introducción al ESP8266 y NodeMCU

Revision made 7 years ago by Jaime Laborda. Go to the last revision.

## 1. ¿Que es IoT?

> Internet de las cosas (en inglés, Internet of things, abreviado IoT) es un concepto que se refiere a la interconexión digital de objetos cotidianos con internet. Alternativamente, Internet de las cosas es el punto en el tiempo en el que se conectarían a internet más “cosas u objetos” que personas.

![Internet de las cosas](https://upload.wikimedia.org/wikipedia/commons/f/f2/Internet_de_las_Cosas.jpg)

En definitiva, se trata de dotar de conexión a la red de Internet a objetos o cosas cotidianos como pueden ser la nevera, la televisión, las persianas de una casa, o... ¿por que no? ¡¡una planta!! Para poder interactuar con ellos a través de la red y a hacerlos "inteligentes".

## 2. Conociendo al ESP8266

El ESP8266 es un chip Wi-Fi de bajo coste que funciona mediante el protocolo TCP/IP. Incluye un microcontrolador (Tensilica Xtensa LX106) para manejar dicho protocolo y el software necesario para la conexión 802.11. Además la mayoría de modelos dispone de entradas/salidas digitales de propósito general (GPIO), así como una entrada analógica (ADC de 10bit).

Su punto fuerte es el disponer de una conexión Wi-Fi en un microcontrolador cuyo precio ronda los 3€. Además se puede programar directamente con el entorno de Arduino con lo que es el chip perfecto para desarrollar nuestras aplicaciones de IoT.

Existen varios modelos del ESP8266 que se diferencian en la cantidad de GPIOs disponibles y la forma/tecnología de la antena Wi-Fi. En nuestro caso, nos centraremos en el Modelo ESP-12-E por ser el que tiene un uso mas extendido, así como una mayor comunidad.

![ESP-12-E](https://raw.githubusercontent.com/jaimelaborda/Planta-Twittera/master/doc/ESP-12.png)

Las principales características del ESP8266 son las siguientes: * 32-bit RISC CPU: Tensilica Xtensa LX106 corriendo a  80 MHz (que puede ser overclokeado a 160MHz si se requiere) * 64 KiB de RAM para instrucciones y 96 KiB de RAM para datos * IEEE 802.11 b/g/n Wi-Fi * 16 pines GPIO * SPI e I2C * UART en los pines dedicados (usada para la programación del chip) * Un convertidor Analógico-Digital (ADC) de 10 bit

## 3. Conociendo al NodeMCU Development Kit

NodeMCU es un proyecto Open-Source para el desarrollo de un modelo sencillo de integrar la IoT (Internet of Things), para ello se desarrollan modelos hardware y software que facilite el desarrollo de programas y aplicaciones basados en WiFi. Es uno de los proyectos más interesantes y completos que han surgido alrededor del modulo ESP8266.

![](https://github.com/jaimelaborda/Planta-Twittera/blob/master/doc/NodeMCU_DEVKIT_1.0.jpg?raw=true)

La gran ventaja de este desarrollo con respecto al resto de módulos básicos de ESP8266, es que su programación se hace totalmente transparente, al no requerir ningún cambio en sus pines para la programación, y disponer de conexión USB al igual que Arduino, Pinguino...

La propia placa dispone de un regulador de alimentación, así como un chip USB-Serial para la comunicación del ESP8266 directamente desde el USB del ordenador, además de un acceso fácil a los pines GPIO, una memoria Flash de 1Mb para el almacenamiento de varios programas, 2 puertos Rx/Tx, etc...

En definitiva, es la manera más facil y barata de desarrollar aplicaciones de IoT debido a la gran comunidad y el gran numero de software compatible y librerías existente para la programación del ESP8266. 

![](https://github.com/jaimelaborda/Planta-Twittera/blob/master/doc/NodeMCU%20v.1.0%20pinout.jpg)