Hola gente , les comento que estoy con mi primer proyecto de arduino y es una estacion meteorologica y tambien que muestre informacion recibida de los sensores dentro de mi casa, la parte dentro de mi casa ya esta funcionando todo bien , la consulta viene ahora con los sensores que tengo qe instalar afuera , sensor de humedad-temp , detector de lluvia, humedad de tierra , fotoresistencia, que tipo de conexión tendría que hacer ?? todos los sensores cableados individualmente hasta la placa ?? , conectar todos los sensores a un arduino(slave) y despues por i2c conectarlo al arduino (master) ??, la distancia seria entre 15 y 20 metros.
Con 15-20 metros I2C no sirve, I2C está diseñado para una distancia máxima de aproximadamente un metro, vamos para conectar cosas dentro de la misma PCB.
Para distancias mas largas lo mejor es MODBUS, aunque para el caso que te ocupa yo quizás buscaría comunicación inalámbrica, WiFi bluetooth o radiofrecuencia.
Mi reomendación es que tengas un nodo donde conectes los sensores externos y este nodo lo comuniques con el principal dentro de casa, yo usaría un esp8266 (nodeMCU o similar) y via WiFi comunicaría con el arduíno de dentro de casa.
Un saludo!
Estimado,
Interesante proyecto tienes entre mano. Estoy a favor de l recomendacion dada ya de intentar mover todo de forma inalambrica, es lo más practico y simple, y dá muchas ventajas como por ejemplo 1 sensor puede usarse para varias aplicaciones si es independiente e inalambrico.
Aun asi, si quieres explorar I2C, las especificaciones del protocolo no hacen referencia a la velocidad. Como sabes la velocidad hace que una comunicacion se más o menos susceptible a las interferencias (ruidos), y las distancias juegan en contra. Habiendo dicho esto, se han documentado aplicaciones con I2C a 100m (metros, si) que trabajan a 500Hz (la velocidad tipica de la libreria Wire.h es de 100KHz y los dispositivos trabajan usualmente hasta los 400KHz hoy). Por lo que 15 o 20m no parece un gran desafio. Entre Arduinos, y si usas una velocidad baja como 500Hz, y el cableado lo haces con par trensado y blindado, con el blindaje a masa en ambos extremos, deberia funcionar perfectamente. Recuerda usar capacitores en tus circuitos para absorber los ruidos parásitos.
Para adecuar el reloj a 500Hz con Arduino y la librería Wire.h deberás usar la función Wire.setClock()
Suerte con ese proyecto!
gracias por las respuestas , si lo ideal seria hacer algo Wifi con el nodeMcu , pero como recien arranco en esto y tengo poco conocimientos de programación , me voy a inclinar por la opcion que me dio msoffredi y tratare de achicar aunque sea un poco la distancia de comunicacion.