soy principiante, no se si el código es lo mas depurado y correcto, si me funcionan...
con arduino leonardo, display de 20x4 azul, dos DHT11, los 22 van mejor pero no conseguí, y un RTC chronodot 2.1 que es mas preciso que los normales, y un BMP180 para la presión.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "Chronodot.h"
Chronodot RTC;
#define Chronodot 0x68
#include <Adafruit_BMP085.h>
#define BMP085_I2CADDR 0x77
#include "DHT.h"#define DHTPIN 4
#define DHT_A_PIN 4
#define DHT_A_TYPE DHT11DHT dht_A(DHT_A_PIN, DHT_A_TYPE);
#define DHTPIN 7
#define DHT_B_PIN 7
#define DHT_B_TYPE DHT11DHT dht_B(DHT_B_PIN, DHT_B_TYPE);
Adafruit_BMP085 bmp;
LiquidCrystal_I2C lcd(0x27, 20, 4);int a = 0;
int b = 0;
int c = 0;
int d = 0;
int e = 0;
int hora = 1;
int hora1 = 0;
int minut = 4;
int minut1 = 3;
int segu = 7;
int segu1 = 6;
int dia = 11;
int mes = 14;
int dia1 = 10;
int mes1 = 13;
int pres = 0;void setup()
{
Wire.begin();
RTC.begin();
lcd.begin();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Temp. i c o c");
lcd.setCursor(0,1);
lcd.print("Humedad i % o %");
lcd.setCursor(0,2);
lcd.print("Presion");
bmp.begin();
lcd.setCursor(2,3);
lcd.print(":");
lcd.setCursor(5,3);
lcd.print(":");
lcd.setCursor(15,3);
lcd.print("/");
lcd.setCursor(12,3);
lcd.print("/");
//RTC.adjust(DateTime(2014, 6, 29, 21, 24, 30));// poner fecha //
}void loop()
{
DateTime now = RTC.now();
Serial.print(now.second());
if (now.hour() < 10) a=hora;
if (now.hour() < 10) {lcd.setCursor(hora1,3);
lcd.print("0");}
if (now.minute() < 10) b=minut;
if (now.minute() < 10) {lcd.setCursor(minut1,3);
lcd.print("0");}
if (now.second() < 10) c=segu;
if (now.second() < 10) {lcd.setCursor(segu1,3);
lcd.print("0");}
if (now.hour() >= 10) a=hora1;
if (now.minute() >= 10) b=minut1;
if (now.second() >= 10) c=segu1;
lcd.setCursor(a,3);
lcd.print(now.hour());
lcd.setCursor(b,3);
lcd.print(now.minute());
lcd.setCursor(c,3);
lcd.print(now.second());
if (now.day() < 10) d=dia;
if (now.day() < 10) {lcd.setCursor(dia1,3);
lcd.print("0");}
if (now.month() < 10) e=mes;
if (now.month() < 10) {lcd.setCursor(mes1,3);
lcd.print("0");}
if (now.day() >= 10) d=dia1;
if (now.month() >= 10) e=mes1;
lcd.setCursor(d,3);
lcd.print(now.day());
lcd.setCursor(e,3);
lcd.print(now.month());
lcd.setCursor(16,3);
lcd.print(now.year());if(now.second() <= 0)
{
lcd.setCursor(11,1);
lcd.print(int(dht_A.readHumidity()));
lcd.setCursor(11,0);
lcd.print(int(dht_A.readTemperature()));
lcd.setCursor(17,1);
lcd.print(int(dht_B.readHumidity()));
lcd.setCursor(17,0);
lcd.print(int(dht_B.readTemperature()));
lcd.setCursor(14,2);
lcd.print(bmp.readPressure());
}
}

