Sensor DHT22 con RTC y comunicancion bus. Error en wti.h

Buenos dias,

Soy bastante nueva en esto, y me han pasado el arduino ya montado, para ver si compila con unas modificaciones que le hemos hecho.

El unico error que me da es que no encuentra la carpeta o directorio de wti.h

Pongo el código

#include <Wire.h>
#include <OneWire.h>
#include "RTClib.h"
#include <DallasTemperature.h>
#include <DHT.h>
#include <SPI.h>
#include <SD.h>



#define DHTPIN 7                    // Pin donde está conectado el sensor DHT22
#define DHTTYPE DHT22               // Definición del sensor
DHT dht(DHTPIN, DHTTYPE);           // Crear instancia dht del tipo DHT pasándole como argumento los dos anteriores.
#define ONE_WIRE_BUS 5              // Pin donde está conectado el sensor DS18B20
RTC_DS1307 RTC;                     // Instancia del RTC


OneWire oneWire(ONE_WIRE_BUS);      // Establecer comunicación OneWire
DallasTemperature sensors(&oneWire);// Pasar referencia de OneWire al sensor DS18B20


const int SDpin = 4;       // Pin para trabajar con la SD (4 para EthernetShield)
const int tiempoSD = 1;    // Tiempo en minutos entre escrituras en la SD (poner aquí al valor que se quiera)

int tAhora = 0;            // Inicializar variables. Se utilizan más adelante para calcular el tiempo entre escrituras en la SD.
int tAntes = 0;
int At = 0;

void setup() {
  // Iniciar el RTC
  Wire.begin();     // Inicia el puerto I2C
  RTC.begin();      // Inicia la comunicación con el RTC
  
  //RTC.adjust(DateTime(27,06,2016, 10,20,00)); // *******DESCOMENTAR Y CARGAR PARA PONER EL RTC A LA FECHA Y HORA DEL PC. DESPUÉS, COMENTAR Y CARGAR DE NUEVO PARA QUE 
                                              // LA HORA SE MANTENGA CUANDO SE REINICIE EL ARDUINO.*********
 
  dht.begin();             // Iniciar DHT22                
  sensors.begin();         // Iniciar DS18B20

  SD.begin(SDpin);         // Iniciar SD
  File dataFile = SD.open("datalog.txt", FILE_WRITE);                            // Abrir fichero para Lectura/Escritura 
  if (dataFile) {                                                                // Si el fichero está disponible 
    dataFile.println("FECHA""\t\t""HORA""\t""HUMEDAD""\t""DHT22""\t""DS18B80");  // Escribir el string de cabecera con carrier de retorno
    dataFile.close();                                                            // Cerrar el archivo
    }
  DateTime now = RTC.now();// Obtener la fecha y hora del RTC
  tAntes = now.minute();   // Guardar valor de minutos actual para comparar más adelante.
}

void loop(){
  
  DateTime now = RTC.now();// Obtener la fecha y hora del RTC
  tAhora = now.minute();   // Guardar valor de los minutos actual
  
  if (tAhora < tAntes){    // Calcular el tiempo transcurrido entre la última escritura (tAntes) y la hora actual (tAhora)
    At = (tAhora+60)-tAntes;
    }
    
  if (tAhora >= tAntes){
    At = tAhora-tAntes;
  }
  
  if (At == tiempoSD){    // Si el tiempo transcurrido es el establecido entre escrituras, escribir los datos en el fichero de la SD.
    
    //---------- Escribir en la SD ----------
    String datos = String(now.day())+"/"+String(now.month())+"/"+String(now.year())+"\t"+
                     String(now.hour())+":"+String(now.minute())+":"+String(now.second())+"\t"+
                       String(dht.readHumidity())+"\t"+String(dht.readTemperature())+"\t"+String(sensors.getTempCByIndex(0));
    File dataFile = SD.open("datalog.txt", FILE_WRITE);
    if (dataFile) {                              
      dataFile.println(datos); // Escribir el String "datos" en el archivo                         
      dataFile.close();        // Cerrar el archivo
    }
    tAntes = tAhora;           // Los minutos actuales son ahora los minutos de la última escritura
  }   
  At = 0;                      // Tiempo transcurrido = 0;
}

El error que me da es

 sketch\libraries\Wire\Wire.cpp:26:19: fatal error: No such file or directory 
         #include"twi.h"
Compilation terminated.
exis status 1
Error compilación en tarjeta Arduino/Genuino UNO

He buscado y no se como solucionarlo, espero vuestros consejos.

Un saludo, Vecks.

PD: espero haber seguido las normas del foro.

Prueba sencillamente a no incluir wire.h. Me parece que en las versiones modernas del IDE viene incluida en el core.

A mi eso me pasó cuando estaba probando el tema del i2c, lo que terminé haciendo es no usar Wire.h

Lo he probado, y ahora me da otro error como que no puede inicar el puerto I2C porque no encuentra el Wire =(

Os subo una captura. He desisntalado el IDE 1.6.9 de Arduino y lo he vuelto a instalar porque creo que al incluir nuevas librerias algo habia hecho mal. Pero me sigue pasando.

Gracias, Un saludo.

Me desdigo de lo anterior. Sí necesitas incluir Wire.h. Prueba a compilar este sencillo programa a ver si te lo hace.

#include <Wire.h>
void setup() {
Wire.begin();
}

void loop(){

}

Buenos días,

Me pasó un compañero las librerías que tenia él, porque le compilaba sin errores. Al subirlo no ha habido

ningún problema, sigo sin entender nada ya que el código es el mismo. =( Creo que algo pasaba con las

librerías o la versión del IDE que tenía yo.

Muchas gracias a Noter y Alvaro_Pelon por la ayuda prestada.

Un saludo, Rebeca.