Reading and saving data from up to 20 4-20mA sensors


the company I do an assignment for asked me to do some research on the feasibility of using an Arduino to read and save data gathered from up to 20 sensors. Because i have a mechanical engineering background, with little to no Arduino experience, i hope this forum can help me in the right direction.

The project they want to use it for is to catch CO2 and use it for something (i don’t know what exactly). The sensors that will be used are the following (see attachments for datasheets):

  • 3 Endress&Hauser PMC21 pressure sensors
  • 5 Endress&Hauser TMR31 temperature sensors
  • 1 GHM GTMU temperature sensor
  • 1 Bronkhorst flow sensor
  • 1 Delta ohm relative humidity sensor
    They are all 24V 4-20mA industrial sensors.

I did some research myself and found this: ADC 4-20 - Module for measuring sensors with output from 4mA to 20mA - Arduino-compatible shields - Circuitar
In my opinion this looks like something that could be used, and is not that expensive. Any thoughts or alternatives?

The second part of this is that they want to save the data to preferably a (micro-) SD card. I have no clue how we can combine the reading of the data and saving the data, so i hope somebody does.

Many thanks in advance!



Datasheets.pdf (1.79 MB)

Unless I've missed something, the cicuitar modules don't have the overvoltage protection circuitry you would expect to see on something that has to survive in a 24v workshop environment.

So the link i found isn't suitable at all? If it wasn't clear: the sensors get supplied with 24V, the output signal is 4-20mA.

So the link i found isn't suitable at all? If it wasn't clear: the sensors get supplied with 24V, the output signal is 4-20mA.

How do the sensors behave in the ~100 milliseconds at startup before the 4-20mA regulation loop gets going?
If you are playing with 24v then everything has to able to cope with that voltage.

Also in a workshop where things are powered by 24v you can guarantee that someone will accidentally mix up the wires and put 24v across your measurement terminals.

The chip used is an ADS1115, and it's inputs should be able to survive 24volt,
because of the 3k3 current limiting resistor and the 10mA input limit of that chip.
The input resistor(s) could get fried though, but they should be able to survive short startup spikes.

Several comments:

If time and money are a factor, buy a commercial data logger. They’re cheap in larger scheme of things, especially when one unit is all you’re discussing. Get the job done, don’t get distracted from the real problem you’re trying to solve. Just because you can buy an Arduino for $30 doesn’t mean it becomes a multi-channel data logger for another $10 in development costs.

The drawback to the Circuitar boards is the 16 channel limit. Either you build your own mother board with some I2C addressing to handle the 20 channels or...

The 4-20ma aspect of the sensors is easy to deal with, you could read the sensors directly with the Arduino analog inputs by placing a 250 ohm resistor across the 4-20ma signal which results in a 1 to 5 volt signal across the resistor. Of course you need some r/c filtering and perhaps some additional hardening but it’s not that difficult for someone with some electronics background.

I’d have zero worries about over-voltage from the devices you referenced, they’re not some cheap-o Chinese knock-off transmitters. Money does not appear to be a factor which is why I opened with buy a solution, don’t muck about with something outside your field of knowledge and experience.