El SHT11 es un sensor de humedad que usa un esquema de comunicación similar al I2C.
En su hoja de datos indica que puede insertarse en un bus I2C sin interferir con los demás esclavos, si bien requiere una programación de la comunicación adhoc, pues no es compatible con la I2C.
En mi proyecto uso el puerto I2C hardware del PIC para controlar un ds3231 y 4 25aa1024, y he insertado en ese mismo bus el SHT11.
LECCION 1: Era incapaz de comunicarme con el SHT11 hasta que con el osciloscopio me he dado cuenta de que el pin SCK (reloj) no respondía a las subidad y bajadas que le ordenaba.
El problema es que estaba habilitado el puerto I2C hardware, que hace que los pines sda y sck no se comporten como pines I/O estándar.
Ahora, cuando quiero comunica con el sht11 deshabilito previamente el I2C con sspcon_sspen = false y todo funciona perfectamente.
LECCION 2: El SHT11 se ha fabricado en varias versiones. La más actual es la v4, pero la que yo tenía (de un sample que me mandaron hace años) era v3. Todas las versiones funcionan igual pero tienen una fórmula para compensar el valor de la humedad con el de la temperatura que utiliza coeficientes diferentes en función de la versión. Si váis a usar un SHT11 averiguad su versión y buscar los coeficientes apropiados (por ejemplo, los de la v3 yo los he encontrado aquí
http://www.symbrion.eu/tiki-download_file.php?fileId=90)