NodeMCU en español
NodeMCU - Juan Antonio Villalpando
-- Tutorial de NodeMCU en español --
Volver al índice del tutorial NodeMCU
____________________________
61.- NodeMCU, sensor de temperatura y pantalla LCD.
- Esto ya lo vimos en el tutorial de Arduino: 31pantallaLCD.htm ahora vamos a verlo con NodeMCU.
- Se trata de un sensor de temperatura y humedad llamado DHT11 que captará la temperatura y humedad y se visualizará en una pantalla LCD con bus I2C.
- Vamos a realizarlo por partes.
__________________________________________________
1.- Conexionado del NodeMCU y la pantalla LCD.
- Realizamos esta conexión.
- Fíjate en el Nodemcu el bus I2C los componen los terminales D1 que es el SCL y el D2 que es el SDA.
- Se recomienda conectar esos terminales mediante una resistencia de 4K7 a la tensión de 3V, pero no es necesario, me funcionó correctamente como indico en la imagen.
- La pantalla LCD necesita 5V de alimentación, si le ponemos 3V3 no muestra las letras.
- IMPORTANTE: a veces la pantalla LCD no ilumina porque tiene poco brillo, detrás del módulo hay una resistencia ajustable que puedes mover hasta lograr que se vean los caracteres.
- En el código del NodeMCU a veces verás el comando delay (retardo) , es importante, se pones un delay demasiado pequeño no da tiempo a que la pantalla tome los datos y los presente.
___________________________________________________
2.- Código para ver letras en la pantalla LCD. (ver 31pantallaLCD.htm )
Código |
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
void setup() {
lcd.begin(16,2);// Columnas y filas de LCD
}
void loop() {
lcd.clear(); // Borra pantalla
lcd.setCursor(0,0); // Inicio del cursor
lcd.print(" Bienvenidos.");
delay (2000);
lcd.clear();
lcd.setCursor(3,1); // Siguiente renglón.
lcd.print("KIO4.COM");
delay (1000);
}
|
NOTA IMPORTANTE: a veces haces pruebas y no se ven las letras escritas, una de las razones puede ser que la pantalla tenga mucho contraste, para solucionarlo mueve un poco la resistencia ajustable azul que hay sobre el módulo.
- Como indico en el tutorial 31pantallaLCD.htm, hay que tener mucho cuidado con la dirección de la pantalla LCD, unas veces es la 0x37 y otras 0x27
- Asegúrate cual es la dirección I2C de tu pantalla, consulta el tutorial anterior. Haz pruebas antes con el Arduino.
- Si todo es correcto la aplicación deberá funcionar y aparecerá letras en la pantalla.
___________________________________________________
3.- Posibles errores.
- Al compilarlo da el error de que no encuentra la librería LiquidCrytal_I2C.h
- Nos indica que él puede buscarla en internet mediante Gestionar Librerías:
- Posiblemente no la encontrará. En mi página anterior 31pantallaLCD.htm está la librería: librería LiquidCrystal_I2C.zip
- La añadimos mediante Añadir librería .ZIP...
- Aquí he puesto varias librerías, entre ellas la del LiquidCristal, que utilizaremos en estos tutoriales.
Varias_libraries.zip
_________________________________________________________
_________________________________________________________
___________________________________________________
- Ahora con el sensor de temperatura y humedad DHT11.
___________________________________________________
1.- Conexionado del NodeMCU. pantalla LCD y DHT11.
Conexión para el NodeMcu |
|
Conexión para el Wemos D1 R2 |
|
___________________________________________________
2.- Código.
Código |
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
// Sensor de temperatura y humedad
#include "DHT.h"
#define DHTPIN D5 // Para el NodeMCU // #define DHTPIN 5 // Para el Wemos #define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup() { lcd.begin(16,2); // Columnas y filas de LCD
dht.begin(); // Inicio del sensor
}
void loop() {
float humedad = dht.readHumidity();
float temperatura = dht.readTemperature();
lcd.clear(); // Borra pantalla
lcd.setCursor(0,0); // Inicio del cursor
lcd.print("Temper. = ");
lcd.print(temperatura);
lcd.setCursor(0,1); // Siguiente renglón.
lcd.print("Humedad = ");
lcd.print(humedad);
delay(200);
} |
___________________________________________________
3.- Propuestas.
- Vuelve al tutorial 31pantallaLCD.htm e intenta adaptar los códigos de Arduino al NodeMCU.
________________________________
|