Hi,
I'm looking to run some environmental sensors outdoors to monitor some greenhouses.
I'm using the
Mycodo software, which runs on a Raspberry Pi. However, the sensors would be 5-10m from the Raspberry Pi.
The sensors are from Atlas Scientific - some of them communicate over I2C - e.g.:
- Humidity Sensor
- Color Sensor
Atlas Scientific also sell an
extension cable, but they mention that the length is limited to a max of 3.6 meters. (My understanding is that i2c was never designed for long distances).
I know that Sparkfun make some I2C differential extenders, and you can use this with copper Ethernet cable to run i2c over longer distances. They have:
- QwiicBus Endpoint - which converts 4-wire I2C into differential signalling over Ethernet cable
- QwiicBus Midpoint - which lets you extend the range (I probably won't need this part for the 5-10m), but then also apparently lets you insert a sensor at that point - so you get a bus-style topology.
I've made a diagram for how I think this could work:
Questions:- Would this approach work, or is there something I've missed here? Is it OK to have all of those sensors will share the same I2C bus, and I'll be able to communicate with each one separately (assuming they all have different I2C addresses)?
- Will there be a benefit to using shielded Ethernet cable, or would normal UTP cable work fine here?
- Is there a cheaper way of doing this? I've realised that the Sparkfun Qwiibus boards aren't cheap - $22 for each midpoint, and I'd need one for each sensor. Is there a cheaper way of doing this somehow?
- All of this will be outdoors, and exposed to the elements. Do you have any suggestions for a lightweight and compact way to waterproof each of the Qwiicbus Endpoint and Midpoint boards, and also the wires that go into them? (I was thinking plastic project boxes, with cable glands - but that's going to get super unwieldy and clunky on my tiny balcony).