Detecting Solenoid Failure

I am using a solenoid from sparkfun to automate water irrigation to my outdoor plants. I’d like to send a text message ideally before the solenoid fails. Or whenever it is possible for an Arduino sketch to determine failure.

What are ways the sketch can detect if the solenoid fails to open/close? Perhaps the “bigger question” is what are the ways to determine if a part is failing (transistor, diode, solenoid) or acting erratic?

Thank you very much for any advice.

The only (reasonably) reliable way to detect solenoid failure is to monitor the actual water flow with some sort of flowmeter. Solenoid valves can be electrically functional but still fail to open or close.

Thanks for the response. I hope to be able to incorporate a similar maintenance I get from my coffee machine. It “tells” me when it needs cleaning, etc. I find this feature to be a favorite (second to making a darn good cup of coffee). I believe (but have no proof) that having built in maintenance has kept this machine ticking longer than it might without it.

I admit to being a n00b to circuits. But I have a background in shipping software. Over time I appreciated building stuff that came closest to self diagnosis. I don’t see this addressed in the circuits I have been playing with (like this example with the solenoid).

Again = thank you. I very much appreciate your response.

A flow meter certainly seems like the most robust method. Another solution might be to use a LED/photo-transistor pair. You could install some sort of hinged flap inside the water tube that lays parallel to the sensor pair when no water is flowing and

perpendicular to the pair when water is flowing. Might be difficult to get working reliably. You also might be able to use a force sensitive resistor inside the water tube to detect a change in water pressure from a static tube to a flowing tube.

Got a link to that solenoid ? Instead of checking for water flow, you could also have a switch that checks for mechanical motion but it depends on the solenoid and how you have it controlling the valve.

As far as the prognostics … keep a count of the activations would be a start. A current monitor might be used to detect irregular (too little, too much) current draw indicating incipient failure. Perhaps a temperature monitor on the coil would indicate an overheating coil. I’m not sure how to translate all but the most extreme of those signals into a hours-to-failure calculation but there you go.

Thanks all for the replies and great ideas.

The link to the solenoid I am using: https://www.sparkfun.com/products/10456

Your ideas got me thinking. In addition to your ideas, I was thinking I could do one or both of these things:

  1. use a sound sensor and detect that “CLICK” which occurs when the valve opens. Heck, that’s how I “debugged” it. Kind of like the example done here: http://arduinobasics.blogspot.com/2013/ … ensor.html

  2. use a moisture sensor in the soil where the water should be flowing to detect if indeed the soil is getting wet. Wirelessly transmit this data to the arduino controlling feedback.

Again, thank you. I learn a lot from your replies.

bsagan:
You could install some sort of hinged flap inside the water tube that lays parallel to the sensor pair when no water is flowing and perpendicular to the pair when water is flowing.

The are flow detect switches, a flowing/not_flowing type of sensor. For the OP's usage, under $10 on E-Bay. I'm not sure of their inner workings other than a magnet is displaced with flow and a reed switch then indicates the displacement (and thus flow).

In my experience, valves fail to close more often than they fail to open. A moisture detector won’t do much for you in the “stuck open” situation.

Excellent point - thank you.