NodeMCU en español
NodeMCU - Juan Antonio Villalpando
-- Tutorial de NodeMCU en español --
Volver al índice del tutorial NodeMCU
____________________________
67.- NodeMCU, sensor de presión y temperatura BMP180. Pantalla LCD.
- Vamos a seguir probando sensores con el NodeMCU, en este caso el sensor de presión y temperatura BMP 180 I2C.
- Estos sensores los vimos en los siguientes tutoriales de Arduino:
31.- Pantalla LCD.
46.- Sensor de presion barométrica BMP 180. Bus I2C.
___________________________________________________
1.- Conexionado del NodeMCU al sensor de temperatura y presión BMP 180 y a la pantalla LCD.
- Realizamos esta conexión.
- Si conectamos el NodeMCU por USB al ordenador, tendremos en el terminal VV, una tensión de 5V, que son los que necesita el módulo DHT11.
- Fíjate en el NodeMCU el bus I2C los componen los terminales D1 que es el SCL y el D2 que es el SDA. A este bus está conectado la pantalla LCD y el módulo del sensor.
- Es conveniente tener una pantalla LCD, pero si no la tienes puedes comprobar el funcionamiento en el Serial Monitor
___________________________________________________
2.- Librerías.
- Es muy importante buscar y encontrar las librerías apropiadas ya que de ellas resultará el funcionamiento o no del montaje.
- Aquí he puesto las librería que he utilizado con el IDE 1.8.2 de Arduino. Además de las librerías del DHT11, Adafruit_Unified_Sensor, ESP8288 y Liquid_Crystal_LCD.
Varias_libraries.zip
Librería del sensor de presión y temperatura: SFE.zip
___________________________________________________
3.- Código para pantalla el sensor de presión y temperatura BMP 180 y la pantalla LCD.
Código |
// Adaptación de la librería por Juan A. Villalpando
// KIO4.COM
#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);
#include <SFE_BMP180.h>
SFE_BMP180 bmp180;
static char char_temperatura[6];
static char char_presion[6];
void setup()
{
lcd.begin(16,2); // Columnas y filas de LCD
bmp180.begin();
}
void loop()
{
char status;
double T,P;
lcd.clear(); // Borra pantalla
lcd.setCursor(0,0); // Inicio del cursor
lcd.print("Temper. = ");
lcd.print(char_temperatura);
lcd.setCursor(0,1); // Siguiente renglón.
lcd.print("Presion = ");
lcd.print(char_presion);
delay(1000);
status = bmp180.startTemperature();
if (status != 0)
{
delay(status);
status = bmp180.getTemperature(T);
if (status != 0)
{
status = bmp180.startPressure(3);
if (status != 0)
{
delay(status);
status = bmp180.getPressure(P,T);
if (status != 0)
{
dtostrf(T, 5, 1, char_temperatura);
dtostrf(P, 5, 1, char_presion);
}}}}} |
________________________________
|