help needed with multiple temp sensor data logging project
-
I am needing to data log water temp multiple fish tanks plus air temp
I had bought multiple wireless weather station devices that were meant to work 100m range but only work 6m range
Ideally, i would like the probes hard wired with the Arduino data beeing collected wirelessly
if anyone could direct me to parts/guide needed for a setup that could be scalable it would be greatly appreciated
for now, I need to compare temperatures of tanks within 10m of each other
it looks like its down to
domoticz vs home assistant vs openhab
-
Welcome to the MySensors community @MasterCATZ
You'll find information on controllers at https://www.mysensors.org/controller
The overall MySensors getting started guide is available at https://www.mysensors.org/about/iot That guide also has information on the number of sensors and sensor nodes that can be connected in MySensors.
The build page for an example temperature sensor is at https://www.mysensors.org/build/temp
Waterproof DS18B20: https://www.adafruit.com/product/381
-
Do you have and idea of what temperature sensors you will use? The 1-wire ds18b20 have reasonable accuracy, there are inexpensive versions that are weatherproof, and probably submersible. They can all reside on a single bus, so you would need 10 of them and 1 arduino (plus some wire).
I think the dhtXX and sht sensors would require some waterproofing, but may work.
-
@wallyllama I suspect a little more layout detail would assist, multiple = ?
If you had 100 5m wide tanks above ground in series at 3m gaps under a steel roof needing read every 30 seconds versus 99 5m wide below ground tanks laid out as a square grid with 3m gaps the recommendations will be different.... Define the question so the answer is less a SWAG....
What do you perceive the advantage is of wire V radio? If you need to change batteries every 2 years is that a headache?
-
@zboblamont the otiginal poster specified hard wired for the sensors, that made me think 1-wire, if it is truly 100 tanks, I would probably put 10 tanks per arduino/nrf, the basic mysensor temperature node mentioned above with a bit of modification to allow multiple sensors would do the trick. The arduino ide has examples that enumerate the sensors and poll them. There are some threads here in the forum where people have done that, and it may be just copying their code would suffice
I'd search "reliable 1-wire networks" there are guides that help with the distance, and how many per network etc. Better to read the original than my summary on that.
-
@wallyllama Indeed, that is point, the OP stated hardwire as the 'ideal scenario", but without giving reason. Depending on the tank orientation, hard wiring a 9 group of temps to 10 Arduinos RFing the output to a central receiver would probably be an elegant solution. But if there are 20 tanks 1m wide at 1m gaps, 2m long the ideal solution would be different....
-
Thanks for the replies
didn't think I mentioned how many tanks
but while we are at it
3x 20kl tanks ( all grouped together about 50m away from others )
50x 1kl tanks ( only 14x row being monitored at this stage )
112x 200L tanks ( 12mx6m fish room )
excluding sumps/biofilters etcmost tanks outside are within 10m of the fish room
having wireless just means having to find a way to power the devices
( been there tried that with solar powered ones pre made. nothing but unreliable)and a broken wire is easier to diagnose for faults
I just don't seem to have any luck with wireless I have ones here rated for 100 - 300m yet lucky to get 10m out of them
sensors accuracy not so critical just need to be waterproof and handle 6m deep submersion, what I am mostly wanting to work out is if tanks are going to do better inside a greenhouse or not
and wanting to trial other ways of using heat exchangers
( ie the old black coiled up polly pipe trick )
to lower heating power usage
-
@MasterCATZ Thanks for that - It's the physical distance between which will determine whether the daisy chained sensors will work, but how they can be adapted for 6m pressure head is a separate puzzle for now. You clearly have recirc pumps and filters, so would a surface mount on the incoming pipework be more closely grouped and accurate enough?
I would not so quickly dismiss radio solutions through your own unfortunate experience, there are multiple examples on this site of superb designs for battery powered radio devices lasting months and years reliably.
Moteinos with deep sleep between activities can give over a year on AA batteries, I just bought a bunch of Whisper Nodes which may last 2 years on two AA alkalines, sending back data by radio every 4 minutes or when triggered, in some cases other every hour using a RTC.If surface mounting sensors on metal pipe at pump manifolds is not viable, how about surface mounting on the tank wall if steel tanks?
-
No metal pumps around here everything is air operated and plastic pipes
it's only the 20kl tanks that have 6m depths, the others have 3m deep sumps
( pretty much the further down into the ground the more stable the temperatures so I run far amount of plumbing deep underground, that and I use airlift pumping techniques )It is mostly the 200L breeding tanks I want to do
they are only 46cm deep
and contain the Tropical Fish I am trying to keep tabs on
all pretty close to each other on racked shelvesI am just unsure if my wireless issues are from all the water around here or not , ages ago I was looking into XBee, but that was about as far as that got
the building is only wooden frame with plastic cladding with multiwall polycarbonate. I don't see that affecting wireless, however my Fitzbox NBN Modem is always complaining about radar jamming signal's, so it could just be the military base that is not to far away
looked into "reliable 1-wire networks" it seems most users had problems over 30m but it does seem it can do the distance of 100m if cat5 is used, I may as well use the cat6 I have here
I will have to go back through my browser history I had found a probe that was around 10+m long that was waterproof
does seem quite cheap however
strange now all I see are the DS18B20 but at least i know they make 15m long probes
-
@MasterCATZ Ok on all that... Air lifts in plastic pipes are pretty gentle, reliable and oxygenate the recycle. It was just the possibility to measure surface temps instead of water temps I was thinking of.
DS18B20s have unique address codes as was mentioned above, so you can have a bunch of them connected on a single line in a group, a program checks and notes response from each one in turn, strings the results together and fires them off to a central gateway. I suggest that trying to avoid grouping these on radio nodes and trying to hardwire everything will bring you a world of pain....
Radio antennae need line of sight ideally to communicate easily at UHF although will go through walls and timber constructions with minimum attenuation, just raise the antennae above racks and tanks, you will get reliable comms no problem with a half decent quarter or DIY dipole. If you look at a spot where tanks are within your 30m parameter then install a radio node to cover all of those in the footprint is a much simpler and cost effective solution.
I looked initially at 2.4GHz use, but settled on 433MHz for low power, longevity of standalone power, less troublesome protocols, and greater penetration through masonry. Well away from my and other local Wifi routers also...
-
what is your recommendation for the wireless hardware
"Serial WiFi Module ESP8266 module ESP01"
are what I have tried in the past with poor results
I have been thinking I could make a wireless module, disconnect the sensor from 1 wire and I could plug the probes into wifi when I need to?
how do I go about Daisy chaining the probes
are there any simple splice crimp connector out their?
( might use telephone cables or ribbon cables as I don't think I should use RJ45 just incase someone mistakes as a LAN port )I did come across this
but to me, it just looks like its purpose is just to add the pull-down resistor?
does every probe need the resistor or is only 1x needed?
also any probes for PH that work using 1-wire? or water level sensor?
-
how do I go about Daisy chaining the probes
1-wire devices (actually 2 or 3 wires) are designed to be linked in a daisy chain, or really just connect in parallel. The wires are data, ground and +5v. The chips can run off parasite power, they charge when you put a "1" on the data line. Parasite power will affect speed, length and reliability of reading. Do a search on "building reliable 1-wire netowrks". I'm far from an expert, and there are a couple of sources that explain it all nicely. One link is on maxim's site, and I dont remember the other, they cover most of the same information.
In your case you'll want to run the +5v wire if at all possible, you may want to run a hub with switching, or it may be easier to run several separate busses, with just a few sensores on each, you could still wire them to 1 arduino, just use 1 digital pin for each. It will make the software more complex, so you may want 1 arduino for wvery 3 or 4 tanks. Technically you can get away with all of them on one bus, ( aka run 3 wires all around from one tank to another.
Cheap ascii graphic ( hopefully it helps)
Arduino _____________________________________________ +5
===================================== data/gnd
||| ||| |||
||| ||| |||
Sensor1 sensor2. Sensor3 ....
Tank1. Tank2. Tank3
-
@wallyllama awww the spaces on my cheap ascii graphic got crushed.
-
darn you beat me before the edit
http://www.hw-group.com/products/sensors/Temp-1Wire_en.html
has got me thinking about telephone hubs
-
@MasterCATZ 1-wire hubs are active, sort of like usb. You dont want your one wire network to be a star topology. You want some thing like railroad tracks, long wires(rails) with short connections to the sensors(ties). The guides i mentioned really are worth a read before you plan too much.
-
Other answers. 1 resistor per 1-wire network.
I believe you can still get a/d converter chips, they could probably be used to read an orp or ph sensor. Water level could possibly be read with a capacative sensor, but you are going run into your power problems again.
-
Ok that's what I wanted to know as I did read here
http://www.jon00.me.uk/onewireintro.shtml
50mm was as long as you could gohowever, how does that work if the probe wire is long?
would I be better off making my own probe's with 6 wires with
In / Out ? that then links to the next part of the daisy chain ?
-
The ds2450 adc is out of production. The ds2438 battery monitor is ehat you'd have to use.
This person was going to use the adc, but ill bet the batter monitor could be made to work.
ReefcentralFor connections, a 3 port rj11 might work, in from previous tank, out to next, and one to the tank sensor. I think if you keep the line to the tank under 1meter you are ok, but i have never built a network as long as you are proposing.
-
Read this, there is a formula for what they call weight, and they talk about stubs. That would be the part from the main bus wires to the sensor.
-
@MasterCATZ
I have no experience of the daisy chaining of sensors but as wallyllama has explained, this is pretty much my understanding of the technique, and I'm sure I read recently about the difference between parasitic power connection and normal fairly recently in a post.Radio
MySensors was originally built around the NRF24 2.4 GHz transceivers as I understand it, but there has been considerable interest and development with the RFM69 series transceivers which have better range in the 433MHz area. I suggest you look at Moteino and the Whisper Node I mentioned earlier as they are well thought out designs, radio module incorporated, low power consumption, compact, etc. and seem reliable. There are multiple alternatives folk here have utilised in the uhf bands varying from the ultra cheap chinese no-name to almost professional grade transceivers, it rather depends whether you want off the shelf units with loads of support or want to experiment with fine soldering. I didn't, as too old and shaky for that, so went Whisper Nodes, and just building them and playing with them now in advance of the Gateway arriving.Some things you may wish to consider are temperature transients in the tank so you can establish the ideal sense point, how often you want the data updated (hourly, every ten minutes, every four seconds) as this may need a RTC, collision management for data coming in, and whether the node needs physically protected against the environment.
-
RFM69 does look promising even if
I have to power it
-
looks like I will have to make my own sensors that Daisy chain directly off the sensor
-
so what I think I will do is
use a trimpot at the start so resistance can be adjusted as sensors/length are altered
cat5 wiring
Dry end has 2x rj11 ends
*example
rj11 (in) pins 1,2,3,4
rj11 (out) pins 5,6,7,8Pin 1 (White/Green) - Power return or ground
Pin 2 (Green) - +5V
Pin 3 (White/Orange) - Power return or ground
Pin 4 (Blue) - DQ (data in)Pin 5 (White/Blue) - 1-Wire return or ground
Pin 6 (Orange) - +5V
Pin 7 (White/Brown) Power return or ground
Pin 8 (Brown) - DQ (data out)all wires join onto the DS18B20 and waterproofed
then up at the dry end use rj11 joiners, they can be pulled apart and have resistors added if needed and if I need to take a sensor out of the daisy chain, it is just a matter of bypassing a joiner
or I just do the STUBS thing 100-150Ξ© resistor inside a 3 way splitter and have a normal premade waterproofed sensor used with rj11 connector
either should work in the fish room tanks are on racks stacked to each other
so how would I go about doing a 1-wire breakout, as each rack would be pushing the length and I have 14x racks ~3m long 4 tiers
I might be possible to do the daisy chain per 2 racks
is their a way to do it without using multiple Arduino , is there some hardware that would allow multiple runs of 1-wire ?
-
another thing does anyone know if putting capacitors in the daisy chain will cause any issues?
I figured haveing a capacitor near a sensor would help keep the power stable?
-
There are 1wire "hubs" that would help, they basically turn on or off parts of the network, so each run could be the max distance.
Each network would need only 1 digital pin and resistor, i think you could define multiple pins and do a onewire.begin for each (using different names each of course) i think you would run out of memory or clock cycles before you ran out of pins even with a pro mini.
Using a dedicated 5v line is probably better than a capacitor and parasitic power, especially with long runs and lots of sensors. Unless you can live with really slow polling times. With the complexity you are talking about, I wouldn't be surprised if takes a couple of minutes to poll everything reliably with parasitic power. If it works (i havent tried it) using several pins on the arduino, each controlling a 1wire network might help out considerably. You could service 1 network, while the others are being "charged".
-
If you search "1-wire hub", there are premade options, and diy.
-
thanks for your guidance
parts arrived yesterday and just got the probes readinghow ever I could not get OWFS to work,
https://www.domoticz.com/wiki/1Wiresudo i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --but using /sys/bus/w1/devices
they are therecat w1_slave
a2 01 4b 46 7f ff 0c 10 49 : crc=49 YES
a2 01 4b 46 7f ff 0c 10 49 t=26125edit
actually quite happy, using 5v and daisy chained a heap of cat5 cables together for testing, over 100m all working good
-
-
@MasterCATZ I'm following this with interest as looking at a WAY smaller scale use with the small 3 legged 18B20 to give individual room temperatures in the house, 4 upstairs, 6 downstairs.
Had originally considered individual room nodes, but this seems a slightly simpler solution (other than lifting parts of the upstairs floor).
-
@zboblamont I will be able to test the lengths today, making another 20x temperature sockets and I have a heap of 20m cat5 cables to chain from
I am using a trim pot to adjust at the breadboard, so far still 4.7
if I was going to do it again would use a 5 or 10k high precision the 5% pot too dodgy
still yet to use resistors on each drop and I have a 10v 1000uf capacitor on each ground / vcc, no idea if it helps or not
you could also run a 100mbs LAN plus temp probes each using 4x of the 8 cat5 pins
http://www.108relays.ca/dl/1_Wire_Design_Guide_v1.0.pdf
edit
it looks like you have to keep the lengths and probe numbers equal if your splitting them off like a tree
if I had 1 side 6m longer with more probes than the other side a probe read 0 deg
added more probes on the other side and they read fine again
( touch wood )I have placed a probe at the end with no capacitor, can not get it to connect
when I make more probes tomorrow will try that spot again with a capacitor
for now will try the one with out capacitor at the first split near the pi to see what happens, it's pitch black now time for bed
strange thing just tried another stock probe with no capacitor and can not get that to work either and I was running these ones inside all day
for some reason voltmeter reads neg millivoltsnow I just want to build another cap probe to see whats going on
edit , either I wired something backwards or maybe i just hit the limits adjusting trim pot now as even the DS18B20 on the bread board stopped responding
edit, somethings not right pulled the main link and its receiving 0 deg from sensors not even plugged in.
new probe and bread board temps working tho
set @ 4k , tried adding another probe at 1st split all died again,
I'd say at my limits without the 100~150 resistors trying to push 6x 20m cables
voltage still 4+but I am sus as to why a probe felt warm where a cap was done, unsure if it was still from the soldering heat or not so I might have something miss wired as I was running as the day light was dropping fast
( this setup is for monitoring tanks in my polytunnels no lights apart from the flash light in my mouth )the goal was 3 x 20m on each side split at the breadboard with ~5m long branches running of each join with 2x probes about every 1 m with 1m long lengths approx 60x DS18B20 and about 210m of cable
unfortunately, I was 1 section short the 5th section would not work
so 50 probes 175m cableI'll try again in a daisy chain formation later on
currently using raspberry pi 2 B and domoticz
I ended up doing rj45 as they worked out cheaper than the rj11/14
I paid $20 for 100 , also why I did not add the capacitor inside like I was going to so they could be used in other areas for LAN, hopefully, no one tries to plug a laptop into them
-
might be best to NOT buy the ones I got , just discovered 1x port of just about all of them was not working correctly
( pins on slight angle off setting alignment )causing the probes to be in parasitic mode
-
@MasterCATZ I should not have the same issues as the scale in my case is small, but will set up a test with the devices individually just in case before installing. This is the type on it's way (not from this supplier), I can only hope they are genuine components. link text
I will also have to read the guide again as the devices placement and harmonics were a bit of a puzzle, and on one hand they recommended Cat5e yet went on to say twisted pair was better.
-
anyone know the correct way I should be using an external power source
I powered them up directly with + - still running to the pi and blew the external 2a 5v power pack ( it also powered up the pi and I believe back-feeding this way removes surge protection )
then I tried with the GND and DQ connected with the pi doing the pull up , external PSU ( 30A rated 5v rail 450w 3.3v 12v 5v ) looked like it was shorting out dropping .2v per probe and changing sound as tho it was under load how ever I am currently using its 3A port
I then tried with just the DQ connected not much luck
then I moved the bread board over the PSU and had the 4.7k pull up on its end and DQ / GND connected to the pi , I seem to have some connections, but getting a lot of unknown vendor type errors
but PSU does not seem to be under loadhttp://datasheets.maximintegrated.com/en/ds/DS2482-100.pdf
I might get one of these I2C one wire bridge that can adjust the strength of the pull-up dynamically as the network growshttp://videos.cctvcamerapros.com/voltage-drop-calculator
has got me thinking I might double up on the strands 24 gauge has too much voltage drop @ 5v
should I just treat each pair as a wire or should I have ground on each twist ?
ie
( p1,p2 GND) Green pair
( p3,p4 VCC ) Blue pair
(p5.p6 DQ ) Orange pair
( p6,p7 GND ) Brown pairor
(p1 ground p2 VCC ) Green pair
(p3,ground p4 VCC ) Blue pair
(p5,ground,p6 DQ ) Orange pair
(p7,ground,p8 DQ ) Brown pairor any other combo, I would rather use a 2amp PSU than a 30 amp .. but thats so far the only way to keep these things powered up in a daisy chain
-
It looks like the standard for power over ethernet uses a twisted pair as a "single wire". So blue/blue-white is + and brown/brown-white is -
Seems like a reasonable way to do it, even though you arent wiring ethernet.
-
@MasterCATZ Perhaps you are expecting too much of the network you wish to monitor, which to be fair is not small. Splitting the network into smaller more controllable and manageable segments may be counter intuitive, but can be efficient even if you derive a solution beyond your own pre-determinations.
-
@wallyllama thanks that is what I feared, and would have made the job a lot easier
how ever I was thinking about doing it the other way to keep the other probes already made backward compatible as they used pins 1-4just trying to weigh up the pro's and cons
also out of all those 3 way splitters only 15x actually have all pins functional ...so trying to think of a way to still use the dodgy ones by having redundancy's in place
I think the way the PSU is wired up at the moment is the correct way
things don't seem to be stressed out this timeI am also raising my polling times as I think I read somewhere it takes the sensors 750ms to perform a function and uses 1.5 mA each?
Sensor Poll Period: 1000 to 30000
Switch Poll Period: 100 to 1000my way of thinking this should still have all 60 sensors read in 1 min?
60 sec / 1000ms for Switch Poll period?edit kept my original pin out just doubling up instead of having in/out
I will just change the colors to make it easier to put into the jacks
with out doing A / B standard Ethernet wiringPin 1 (White/Green) - Power return or ground
Pin 2 (Green) - +5V
Pin 3 (White/Blue) - Power return or ground
Pin 4 (Blue) - DQ (data in)Pin 5 (White/Orange) - 1-Wire return or ground
Pin 6 (Orange) - +5V
Pin 7 (White/Brown) Power return or ground
Pin 8 (Brown) - DQ (data out)this way a ground will be on every twisted pair
voltage is higher nowand now that I just soldered everything up, I notice I don't even need the pull-up because I am using external PSU anyhow
I knew I should have put in a bypass switch
-
@MasterCATZ said in help needed with multiple temp sensor data logging project:
@wallyllama thanks that is what I feared, and would have made the job a lot easier
how ever I was thinking about doing it the other way to keep the other probes already made backward compatible as they used pins 1-4just trying to weigh up the pro's and cons
also out of all those 3 way splitters only 15x actually have all pins functional ...The big "con" is the risk that someone will come along and try to use it in a standard way.
so trying to think of a way to still use the dodgy ones by having redundancy's in place
I think the way the PSU is wired up at the moment is the correct way
things don't seem to be stressed out this timeI am also raising my polling times as I think I read somewhere it takes the sensors 750ms to perform a function and uses 1.5 mA each?
Sensor Poll Period: 1000 to 30000
Switch Poll Period: 100 to 1000my way of thinking this should still have all 60 sensors read in 1 min?
60 sec / 1000ms for Switch Poll period?There is a function that tells all the sensors to start a temperature conversion, you could then read each one individually. So it would be 750ms + (60 * pollingtime) to get them all. I dont know if you trade speed for reliability or not. You may be able to interleave conversion requests and polling.
Convreq1 poll30 convreq2 poll31 8convreq3 poll 32 .... convreq 60 poll29 - loop
Maybe overkill if 1 reading per minute is enough