ESP8266 Entradas Salidas Digitales - pensactius/Tutoriales GitHub Wiki
(Información extraída de RANDOM NERD TUTORIALS)
ESP8266 Salidas Digitales
Antes de nada habrá que configurar el pin como Salida. Usaremos la función de Arduino pinMode() como se muestra:
pinMode(GPIO, OUTPUT);
Para controlar el valor de la salida digital usaremos la función digitalWrite(), que acepta como argumento, el GPIO que queremos controlar, y el estado, HIGH (1) o LOW (0).
digitalWrite(GPIO, STATE);
ESP8266 Entradas Digitales
Primero configuraremos el pin como entrada, usaremos la función pinMode():
pnMode(GPIO, INPUT);
Para leer una entrada digital, como un pulsador, usaremos la función digitalRead(), que acepta como argumento, el GPIO que queremos leer:
digitalRead(GPIO);
TODO: traducir GPIOs que se pueden usar
Proyecto de Ejemplo
Para ilustrar como funcionan las entradas y salidas digitales, montaremos un pequeño ejemplo con un pulsador y un LED. Leeremos el estado del pulsador y encenderemos el LED de forma acorde como se muestra en la figura.

Conexiones
Monta el circuito como se muestra a continuación. Conectaremos el LED al GPIO 5 (D1) y el pulsador al GPIO 4 (D2).
Lista de Componentes
Necesitarás los siguientes componentes para montar el circuito:
- Una placa basada en ESP8266 (NodeMCU o WeMos D1 Mini)
- LED
- Resistencia de 220 o 330 Ohm
- Resistencia de 10K Ohm
- Protoboard
- Cables de conexión

// Código original de: https://RandomNerdTutorials.com/esp8266-nodemcu-digital-inputs-outputs-arduino/
// Constantes para los pines a usar
const int buttonPin = 4; // GPIO al que está conectado el pulsador
const int ledPin = 5; // GPIO al que está conectado el LED
// variable para almacenar el estado del pulsador
int buttonState = 0;
void setup() {
// Inicializa el pulsador como entrada
pinMode(buttonPin, INPUT);
// initializa el LED como salida
pinMode(ledPin, OUTPUT);
}
void loop() {
// lee el estado del pulsador y lo almacena en la variable 'buttonState'
buttonState = digitalRead(buttonPin);
// comprueba si el pulsador está pulsado.
// si lo está, el valor de buttonState será HIGH (1)
if (buttonState == HIGH) {
// enciende el LED
digitalWrite(ledPin, HIGH);
} else {
// apaga el LED
digitalWrite(ledPin, LOW);
}
}