Tony - I have been iterating on humidity and te...
I have been iterating on humidity and temperature sensors for the past couple of years. I started with Govee, then added wireless Shelly, and now looking for wired sensors using one wire or i2c. For the combination sensors I am looking at SHT31 or SHT35 but would like something with a 1 meter cable and waterproof sensor. Any advice on where to purchase them for cheap? Amazon has them for about $20 USD, but am okay with waiting for an international shipment since I am planning on having several to one esp32.
13 Replies
for temperature ds18b20 must be hard to beat. I have a load which have been running 24/7 for a few years now going into an esp32. Humidity comes from a bme280 but it doesn't actually provide anything of much use. The barometer is great though. Engine temperature is very useful imho
I was able to get the one wire temperature sensor working on the HALMET PCB but am looking for three data points. I have found humidity to be very informative to potential mold and mildew issues. It would be nice to have at least one sensor with barometric pressure as a weather indicator
Yep, the BME280 does barometer & humidity. The pressure sensor is incredible, showed the pressure wave from that Fiji volcano a few years ago. I've found relative humidity so temperature dependent the readings were pretty much meaningless so gave up with it. Ds18b2 sensors each have their own address so you can daisy chain them together just needing one data pin. You can get a bagful for price of an airport beer
I found an sht35 sensor which does all three parameters for $12 each. Looks like it will do the trick. It’s I2C which should allow for multiple on one bus as well
Remember I2C isn't great for any kind of distance, nearly everyone uses ds18b20 for temperature I think. Seems pricey if you want more than 1 thermometer.
I also have a BME280 running 24/7 (during boating season) and can see humidity follow what the air-dryer is doing during te night. Can’t say anything about accuracy but it sure works and seems correct to me.
On lower speed (9600bps) length for I2C should be good up to 10 meters.
AliExpress sells these with choosable length.
Ruuvi Tags are pretty great for generic cockpit/cabin/fridge etc temp/humidity/baro sensing. They use BLE for data transmission. On a Raspberry Pi, you need to use either a CM4 with an external antenna or an external BT dongle to get decent range, though.
For engine etc, 1-Wire sensors are easy to use and support a large number of sensors on the same bus as well.
I was able to get a one wire bus working with two sensors. Took a little bit of navigating the class methods but now it’s working. Pretty easy by simply registering each sensor with a variable namespace and config path
or.. <insert shameless plug warning here> you could offload all the BLE decoding to an ESP32 with https://github.com/BoatHacks/SensESP-ruuvi-bridge
I had somehow missed that altogether! Excellent!
not sure if it still compiles right out of the box, or if i need to go back and pin a specific version of SensESP or other libraries...
also makes collecting data from ruuvitags over larger distances (or on metal boats...) easier by bridging from BLE to wifi.
I might be interested in wrapping that into a class and a library... If you already have an ESP32 doing something near the Ruuvi tag, you might just want to add one dependency and a few lines code to get the device to start relaying the Ruuvi information. Very nice.
as long as the ESP32 doesn't need its BLE for anything else, that should be fine.. i had tons of weird issues with running the ruuvi plugin and the victron-ble plugin at the same time, that's why I offloaded the ruuvi stuff to a dedicated ESP
i'm still thinking about how to best implement a generic BLE listen-and-forward thingie for signalk that would basically throw every received advertisement at the SK server, where different plugins then could "subscribe" to only certain advertisements based on specific criteria like vendor-ID or something..
so a ruuvi-decoder-plugin would just subscribe to advertisements where the manufacturer data part starts with 0x9904 or whatever their specific magic bytes were, and a victron plugin would only get advertisements that start with 0x02E1 (i think it was 0x02E1, not sure..)