- Moderador
- #1
Pues sigamos avanzando, ahora vamos a monitorizar la temperatura del agua , la temperatura ambiente , del sump, etc etc.
El integrado de Dallas, DS18B20, es una sonda de temperatura digital con una exactitud muy alta y por un precio muy bueno por eso es elegido en casi todos los proyectos basados en la plataforma Arduino.
Una de las características que lo hacen aún más importante es su interfaz Onewire (un cable) que le permite interconectar muchas sondas de temperatura en seria utilizando una sola entrada digital de nuestra placa Arduino, pudiendo de esta manera monitorizar la temperatura del salón, del sump, y del agua por ejemplo utilizando una sola entrada digital de nuestra placa Arduino.
A cada una de las sondas la irá asignando un número de posición (1,2,3...) y con solo especificar que lectura queremos conocer sabremos la temperatura de la sonda indicada.
Hardware:
Es muy sencillo, solo necesitamos una sonda Ds18B20 y una resistencia de 4K7ohm.
La resistencia nos servirá para dar "corriente" al pin digital que alimentará a las sondas, debemos colocarla entre el pin digital en el que conectaremos la sonda y el pin de 5v de nuestra placa.
La sonda la podeis encontrar en 2 versiones, como circuito integrado con 3 patitas o bien como sonda sumergible, aquí os encontrareis 3 cables sueltos.
- Sonda como integrado: debemos unir las patitas laterales y conectarlas a Gnd en nuestra placa, y la patita del centro al pin digital de nuestra placa.
-Sonda sumergible: aquí dependiendo de donde la compreis los cables tendrán un color u otro, por lo que debeis ver que corresponde a cada cable, debeis unir Data+VDD(5v) y conectarlo al pin digital de la placa Arduino y por otro lado el cable Gnd a Gnd de la placa
Aqui una imagen ilustrativa:
En el caso de la placa Shield este es su conector:
Software:
Para la lectura de la sonda necesitamos 2 librerias, (Onewire y DallasTemperature)
Lo mejor para saber si hemos conectado bien nuestra sonda es que cargemos uno de los ejemplos que viene.
Una vez que hemos visto que todo funciona correctamente podemos utilizar un código como este , más simplificado:
Luego ya cada uno puede adaptarlo a su gusto, programando unos valores minimos y maximos para que se active un rele para ventiladores, alarmas etc....
Un saludo chic@s!
Jorge.
El integrado de Dallas, DS18B20, es una sonda de temperatura digital con una exactitud muy alta y por un precio muy bueno por eso es elegido en casi todos los proyectos basados en la plataforma Arduino.
Una de las características que lo hacen aún más importante es su interfaz Onewire (un cable) que le permite interconectar muchas sondas de temperatura en seria utilizando una sola entrada digital de nuestra placa Arduino, pudiendo de esta manera monitorizar la temperatura del salón, del sump, y del agua por ejemplo utilizando una sola entrada digital de nuestra placa Arduino.
A cada una de las sondas la irá asignando un número de posición (1,2,3...) y con solo especificar que lectura queremos conocer sabremos la temperatura de la sonda indicada.
Hardware:
Es muy sencillo, solo necesitamos una sonda Ds18B20 y una resistencia de 4K7ohm.
La resistencia nos servirá para dar "corriente" al pin digital que alimentará a las sondas, debemos colocarla entre el pin digital en el que conectaremos la sonda y el pin de 5v de nuestra placa.
La sonda la podeis encontrar en 2 versiones, como circuito integrado con 3 patitas o bien como sonda sumergible, aquí os encontrareis 3 cables sueltos.
- Sonda como integrado: debemos unir las patitas laterales y conectarlas a Gnd en nuestra placa, y la patita del centro al pin digital de nuestra placa.
-Sonda sumergible: aquí dependiendo de donde la compreis los cables tendrán un color u otro, por lo que debeis ver que corresponde a cada cable, debeis unir Data+VDD(5v) y conectarlo al pin digital de la placa Arduino y por otro lado el cable Gnd a Gnd de la placa
Aqui una imagen ilustrativa:
En el caso de la placa Shield este es su conector:
Software:
Para la lectura de la sonda necesitamos 2 librerias, (Onewire y DallasTemperature)
Lo mejor para saber si hemos conectado bien nuestra sonda es que cargemos uno de los ejemplos que viene.
Una vez que hemos visto que todo funciona correctamente podemos utilizar un código como este , más simplificado:
Código:
//CAP6 Temperatura
//LIBRERIAS
#include <Wire.h>
#include <LiquidCrystal_I2C.h>// Debemos instalar la libreria LiquidCrystal_I2C en la carpeta "libraries" del arduino IDE
LiquidCrystal_I2C lcd(0x27,16,2); // direccion i2c(puede variar segun la placa) del LCD y columnas,lineas
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 14 //Conectaremos sonda a pin digital 14
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
/*PINES CONECTADO EN ARDUINO MEGA
ANALOGICOS:
A14 - Potenciometro
DIGITALES:
D14 - sonda ds18b20
D19 - Boton
D20 - SDA I2C / LCD
D21 - SCL I2C / LCD
*/
//VARIABLES
byte boton=19, tempagua=14, pot=A14; //declaramos que la variable de los pines donde esta conectado boton y potenciometro
int menupot;// Numero de menu
byte vboton,menus, menuactual,cambiomenu;//variables para los menus
void setup()
{
//CONFIG PINES
pinMode(boton, INPUT);//Inidicamos que es una entrada
pinMode(pot, INPUT);
pinMode(tempagua, INPUT);
lcd.init();//Inicializamos el LCD
lcd.backlight();//Encendemos la luz
lcd.print("CAP6 Temperatura");
delay(2000);//Hacemos una pausa de 2 segundos
lcd.init();//Al inicializar el LCD tambien borramos la pantalla
}
void loop()
{
temperatura();
delay(1000);
}
void temperatura()
{
sensors.requestTemperatures();
delay(50);
tempagua = sensors.getTempCByIndex(1);//En este caso si tenemos varias sondas estamos pidiendo que nos muestre kla lectura de la sonda "1"
lcd.clear();
lcd.print("T.Agua:");
lcd.print(tempagua);
}
Luego ya cada uno puede adaptarlo a su gusto, programando unos valores minimos y maximos para que se active un rele para ventiladores, alarmas etc....
Un saludo chic@s!
Jorge.