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.
...
(I was thinking plastic project boxes, with cable glands - but that's going to get super unwieldy and clunky on my tiny balcony).
'some greenhouses' and 'balcony' sound a bit different.
Balcony : I've run i2c GPIO over up to 10m, using a 3 wire host scheme : SCL push pull driven, and SDA with separate driver and RX pins, and cable driver resistors.
That protects the host from ESD events, and controls the cable slew rates.
You can trade off some BW for noise immunity by doing multiple readings and discarding outliers.
some greenhouses : Will be tens of metres, and many sensors, so you are best to use local MCUs and a better bus.
LIN bus is single wire and slow/noise immune, CAN bus drivers can be used without needing CAN peripherals, or you can use RS485.
I've seen some designs using rugged RS485/CAN drivers where they run power voltage most of the time and flip to messages briefly, allowing 2 wire cabling.
There are also single-wire CAN bus chips like NCV7356
and you can look at app notes like
https://www.ti.com/lit/ug/tiduei9/tiduei9.pdfshows 2-wire Power-Over-RS485 (or is that RS485 over power?) design.
You can send table encoded, or Nibble,/Nibble to keep low frequency modulation effects at bay.