El ESP8266 es un módulo Wi-Fi muy popular entre los entusiastas de la electrónica y la programación. Una de sus características más interesantes es su conversor analógico a digital (ADC), que permite leer valores analógicos de sensores externos. En este artículo, exploraremos cómo utilizar el ESP8266 para leer valores analógicos utilizando las tres opciones de lenguaje de programación disponibles: Arduino IDE, MicroPython y Lua. ¡Sigue leyendo para descubrir cómo sacar el máximo provecho de tu ESP8266!
Tanto ESP8266-12E como ESP8266-07 tienen un pin ADC al que se puede acceder fácilmente. Esto significa que estas placas ESP8266 pueden leer señales analógicas. En este tutorial le mostraremos cómo usar la lectura analógica con el ESP8266 usando el firmware Arduino IDE, MicroPython o Lua.
Como ejemplo, le mostraremos cómo leer valores analógicos desde un potenciómetro. Esta publicación se divide en tres secciones:
- Lectura analógica ESP8266 con Arduino IDE
- Lectura analógica ESP8266 con MicroPython
- Lectura analógica ESP8266 con Lua/NodeMCU
Especificaciones del ADC ESP8266
Cuando te refieres al pin ADC del ESP8266, a menudo escucharás estos diferentes términos usados indistintamente:
- ADC (convertidor analógico-digital)
- TRACTOR
- Pin6
- A0
- pin analógico 0
Todos estos términos se refieren al mismo pin en el ESP8266, resaltado en la siguiente sección.
Resolución ESP8266 ADC
El pin ADC tiene una resolución de 10 bits, lo que significa que obtienes valores entre 0 y 1023.
Rango de voltaje de entrada del ESP8266
El rango de voltaje de entrada del pin ADC ESP8266 es de 0 a 1 V cuando se usa el chip desnudo. Sin embargo, la mayoría de las placas de desarrollo ESP8266 tienen un divisor de voltaje interno, por lo que el rango de voltaje de entrada es de 0 a 3,3 V. Entonces en resumen podemos decir:
- Rango de voltaje ADC en placas de desarrollo ESP8266: 0 a 3,3 V (por ejemplo: ESP8266 12-E NodoMCU Kit, WeMos D1 Mini…)
- Rango de voltaje ADC en el chip ESP8266: 0 a 1V (por ejemplo: chip ESP-07, Chip ESP-12E…)
Pin analógico ESP8266
Con el kit ESP8266 12-E NodeMCU y otras placas de desarrollo ESP8266, acceder a A0 es muy fácil, simplemente conecta un cable de puente al pin (ver imagen a continuación).
Si está utilizando un chip ESP8266 como el ESP8266-07, necesitará soldar un cable a este pin.
Piezas requeridas
Para mostrarle cómo usar lecturas analógicas con el ESP8266, leeremos los valores de un potenciómetro. Para hacer esto necesitas conectar un potenciómetro a tu placa.
Aquí está el hardware que necesita para completar este tutorial:
- Recomendado: ESP8266-12E NodoMCU kit (leer Comparación de placas de desarrollo ESP8266)
- Alternativamente: 1x chip ESP8266-07 o 1x Chip ESP8266-12E + programador FTDI
- resistencia de 100 ohmios (obligatorio si usas un chip simple)
- Resistencia de 220 ohmios(obligatorio si usas un chip simple)
- potenciómetro de 1k ohmios
- tablero de circuitos
- Cables de puente
Puedes utilizar los enlaces anteriores o ir directamente MakerAdvisor.com/tools ¡Para encontrar todas las piezas para tus proyectos al mejor precio!
Representación esquemática
Si está utilizando una placa de desarrollo ESP8266, siga el siguiente esquema.
Si utiliza un chip ESP8266 con un rango de voltaje de entrada de 0 V a 1 V, debe asegurarse de que el voltaje de entrada en el pin A0 no exceda 1 V. Entonces necesita un circuito divisor de voltaje como se muestra a continuación.
Usamos una resistencia de 100 ohmios y una de 220 ohmios, por lo que Vout es 1V.
Recomendación de lectura: Referencia de pines de ESP8266: ¿Qué pines GPIO debería utilizar?
1. Lectura analógica ESP8266 con Arduino IDE
Esta sección muestra cómo leer valores analógicos con el ESP8266 usando el IDE de Arduino.
Instale ESP8266 en Arduino IDE
Para cargar código en su ESP8266, primero debe instalar el complemento ESP8266 si aún no lo ha hecho. Sigue el siguiente tutorial:
- Instale la placa ESP8266 en el IDE de Arduino
código
Copie el siguiente código en su IDE de Arduino.
/*********
Rui Santos
Complete project details at https://randomnerdtutorials.com
*********/
const int analogInPin = A0; // ESP8266 Analog Pin ADC0 = A0
int sensorValue = 0; // value read from the pot
void setup() {
// initialize serial communication at 115200
Serial.begin(115200);
}
void loop() {
// read the analog in value
sensorValue = analogRead(analogInPin);
// print the readings in the Serial Monitor
Serial.print("sensor = ");
Serial.print(sensorValue);
delay(1000);
}
El código comienza con la declaración del pin analógico ESP8266 en analógicoInPin Variable:
const int analogInPin = A0; // ESP8266 Analog Pin ADC0 = A0
El valor del potenciómetro está en el Valor del sensor Variable:
int sensorValue = 0; // value read from the pot
En el configuración()Inicialice el monitor serie para fines de depuración:
void setup() {
// initialize serial communication at 115200
Serial.begin(115200);
}
En el Cinta()leamos el valor analógico con eso lectura analógica() Función y traspaso de la analógicoInPin como argumento. El valor se guarda valor del sensor Variable:
sensorValue = analogRead(analogInPin);
Finalmente, las lecturas se muestran en el monitor serie para que puedas ver lo que está sucediendo.
Serial.print(sensorValue);
Sube el código
Sube el código anterior al ESP8266. Asegúrese de haber seleccionado la placa y el puerto COM correctos. Ir a Herramientas > Tablero y seleccione el modelo ESP8266 que está utilizando. En nuestro caso utilizamos el Kit ESP8266 12-E NodeMCU.
Ir a Herramientas > Puerto y seleccione el puerto COM al que está conectado el ESP8266.
Haga clic en el botón de carga de Arduino IDE.
Nota: Si está utilizando un chip ESP-07 o ESP-12E, necesitará uno programador FTDI para cargar el código.
demostración
Después de cargar el código, abra el monitor serie con una velocidad de baudios de 115200. Deben mostrarse las lecturas analógicas.
Gire el potenciómetro y observe cómo los valores suben o bajan.
2. Lectura analógica ESP8266 con MicroPython
Esta sección muestra cómo leer valores analógicos con el ESP8266 usando el firmware MicroPython.
Para seguir este tutorial, debe tener instalado el firmware MicroPython en su placa ESP8266. También necesitarás un IDE para escribir el código y subirlo a tu placa. Recomendamos utilizar Thonny IDE o uPyCraft IDE:
- IDE de Thonny:
- Instalación y primeros pasos con Thonny IDE
- Actualización del firmware MicroPython con esptool.py
- IDE de UpyCraft:
- Instale uPyCraft IDE (Windows, Mac OS X, Linux)
- Flashear/cargar firmware MicroPython a ESP32 y ESP8266
Script – Lectura Analógica ESP82266
El siguiente script para ESP8266 lee valores analógicos del pin A0.
# Complete project details at https://RandomNerdTutorials.com
from machine import Pin, ADC
from time import sleep
pot = ADC(0)
while True:
pot_value = pot.read()
print(pot_value)
sleep(0.1)
Así es como funciona el código
Para leer entradas analógicas, importe el CAD clase además de la Bolígrafo clase de la máquina Módulo. También los importamos dormir Método.
from machine import Pin, ADC
from time import sleep
Luego crea uno CAD Objeto llamado Maceta en el pin A0.
pot = ADC(0)
En el bucle, lea el valor del bote y guárdelo en el valor_pot Variable. Para leer el valor del potenciómetro, utilice el leer() método en el Maceta Objeto.
pot_value = pot.read()
Luego imprímelo valor_pot.
print(pot_value)
Agregue un retraso de 100 ms al final.
sleep(0.1)
En total:
- Para leer un valor analógico, utilice el CAD Clase;
- Cómo crear uno CAD Simplemente llama al objeto CAD(0).
- Utilice para leer el valor analógico. leer() método en el CAD Objeto.
demostración
Gire el potenciómetro después de cargar el código en la placa ESP8266 usando Thonny IDE o uPyCraft IDE.
Verifique el shell de su IDE MicroPython para leer los valores del potenciómetro.
3. Lectura analógica ESP8266 con Lua/NodeMCU
Esta sección muestra cómo leer valores analógicos con el ESP8266 usando el firmware NodeMCU.
Actualización del ESP8266 con firmware Lua/NodeMCU
Primero necesitas actualizar tus ESP con el firmware NodeMCU.
recomiendo usar ESPlorador IDE Este es un programa creado por 4refr0nt para enviar comandos a su ESP8266.
Siga estas instrucciones para descargar e instalar ESPlorer IDE:
- haga clic aquí para descargar ESPlorer
- Descomprime esta carpeta
- Ir a la carpeta principal
- Ejecute ESPlorer.jar
- Abrir ESPlorer
Probando el pin ADC (A0)
Para enviar comandos usando el IDE de ESPlorer, necesita establecer comunicación en serie con su ESP. Siga estas instrucciones:
- Conecte su ESP-12E o programador FTDI a tu computador
- Establezca la ruta incorrecta a 9600
- Seleccione su puerto de programación ESP-12E o FTDI (por ejemplo, COM3)
- Presione Abrir/Cerrar
Luego ingrese el siguiente comando:
print(adc.read(0))
Presiona el botón «Enviar» Como se muestra abajo.
Debería devolver un valor entre 0 y 1024. Gire su potenciómetro y envíe el imprimir(adc.read(0)) Ingrese el comando unas cuantas veces más para obtener el valor del potenciómetro.
Cuando su potenciómetro esté cerca de 0V, imprimirá 0 y cuando alcance 3.3V debería imprimir 1024.
Envolver
En este tutorial, le mostramos cómo leer valores analógicos usando el pin analógico (A0) del ESP8266. Es importante tener en cuenta que el rango de entrada analógica del ESP8266 es 0-1 V si estás usando un chip simple o 0-3,3 V si estás usando una placa de desarrollo.
En cualquier caso, siempre debes tener cuidado de no exceder el voltaje máximo recomendado. Si necesita un rango de voltaje de entrada más alto, puede agregar un circuito divisor de voltaje.
Esperamos que este tutorial te haya resultado útil. Si recién está comenzando con ESP8266, le recomendamos los siguientes recursos:
- Domótica con ESP8266 (libro electrónico)
- Comenzando con el ESP8266
- Guía de referencia de ESP8266 GPIO
- Servidor web ESP8266
Gracias por leer.
ESP8266 ADC – Leer valores analógicos con Arduino IDE, MicroPython y Lua
El ESP8266-12E y el ESP8266-07 tienen un pin ADC que es fácilmente accesible. Esto significa que esas placas ESP8266 pueden leer señales analógicas. En este tutorial te mostraremos cómo utilizar la lectura analógica con el ESP8266 utilizando Arduino IDE, MicroPython o firmware de Lua.
Especificaciones del ADC ESP8266
Al referirnos al pin ADC ESP8266, a menudo escucharás estos diferentes términos de manera intercambiable:
- ADC (Convertidor Analógico-Digital)
- TOUT
- Pin6
- A0
Todos estos términos se refieren al mismo pin en el ESP8266 que se destaca en la próxima sección.
Resolución del ADC ESP8266
El pin ADC tiene una resolución de 10 bits, lo que significa que obtendrás valores entre 0 y 1023.
Rango de Voltaje de Entrada ESP8266
El rango de voltaje de entrada del pin ADC ESP8266 es de 0 a 1V si estás usando el chip desnudo. Sin embargo, la mayoría de las placas de desarrollo ESP8266 vienen con un divisor de voltaje interno, por lo que el rango de entrada es de 0 a 3.3V.
Con las placas de desarrollo ESP8266, es muy fácil acceder al pin A0, simplemente conecta un cable puente al pin. Si estás usando un chip ESP8266, como el ESP8266-07, necesitas soldar un cable a ese pin.
Partes Requeridas
Para mostrarte cómo usar la lectura analógica con el ESP8266, leeremos los valores de un potenciómetro. Para eso, necesitas cablear un potenciómetro a tu placa.
Esto es lo que necesitas para completar este tutorial:
- Recomendado: Kit ESP8266-12E NodeMCU
- Alternativo: 1x chip ESP8266-07 o 1x chip ESP8266-12E + Programador FTDI
- Resistor de 100 Ohm (necesario si estás usando un chip desnudo)
- Resistor de 220 Ohm (necesario si estás usando un chip desnudo)
- Potenciómetro de 1k Ohm
- Cables puente para protoboard
Puedes encontrar todas las partes para tus proyectos al mejor precio en MakerAdvisor.com.
Diagrama Esquemático
Si estás usando una placa de desarrollo ESP8266, sigue el siguiente diagrama esquemático. Si estás usando un chip ESP8266 con un rango de entrada de 0V a 1V, asegúrate de que el voltaje de entrada en el pin A0 no exceda 1V. Por lo tanto, necesitas un circuito divisor de voltaje.
Lectura Analógica ESP8266 con Arduino IDE
Esta sección muestra cómo leer valores analógicos con el ESP8266 utilizando Arduino IDE.
Para cargar el código en tu ESP8266, primero debes instalar el complemento ESP8266 si aún no lo has hecho. Sigue el siguiente tutorial para instalar el complemento ESP8266 en Arduino IDE.
Código:
Copia el siguiente código a tu Arduino IDE:
- …
Lectura Analógica ESP8266 con MicroPython
Esta sección muestra cómo leer valores analógicos con el ESP8266 utilizando el firmware MicroPython.
Script – Lectura Analógica ESP8266:
Copia el siguiente script para el ESP8266 en MicroPython:
- …
Lectura Analógica ESP8266 con Lua/NodeMCU
Esta sección muestra cómo usar el firmware NodeMCU para leer valores analógicos con el ESP8266.
Para enviar comandos con el firmware ESPlorer, primero debes establecer una comunicación serie con tu ESP. Sigue estas instrucciones para conectarte al ESP con ESPlorer.
Después de cargar el código en la placa ESP8266 con Thonny IDE o uPyCraft IDE, gira el potenciómetro y verifica los valores en tu IDE de MicroPython.
Conclusión
En este tutorial, te hemos mostrado cómo leer valores analógicos utilizando el pin analógico del ESP8266 (A0). Una cosa importante a tener en cuenta es que el rango de entrada analógico del ESP8266 es de 0-1V si estás usando un chip desnudo, o 0-3.3V si estás usando una placa de desarrollo. Siempre debes tener cuidado de no exceder el voltaje máximo recomendado. Considera agregar un circuito divisor de voltaje cuando necesites un rango de voltaje de entrada más alto. Esperamos que hayas encontrado útil este tutorial.
Si estás comenzando con el ESP8266, te recomendamos los siguientes recursos:
- Automatización del Hogar usando ESP8266 (eBook)
- Primeros Pasos con ESP8266
- Guía de Referencia de Pines ESP8266
- Servidor Web ESP8266
Gracias por leer.
¡Qué genial tutorial! Me encantó la forma en que explicaron cómo usar el ESP8266 para leer valores analógicos en distintos lenguajes. ¡Gracias por compartir esta información tan útil!
¡Me encantó aprender a leer valores analógicos con el ESP8266 en diferentes lenguajes de programación! ¡Muy informativo y útil! ¡Gracias por compartir!
¡Interesante tutorial! Me encanta la versatilidad del ESP8266 para leer valores analógicos. ¡Gracias por compartir!
Me pareció muy útil aprender a usar el ESP8266 para leer valores analógicos en diferentes lenguajes de programación. ¡Gracias por el tutorial!
¡Excelente tutorial! Me encantó la manera en que explicaron cómo trabajar con el ESP8266 para leer valores analógicos en diferentes lenguajes de programación. ¡Muy útil e informativo! ¡Gracias por compartir!