I've created a prototype device that opens/closes my garage door and gives me the status of it (open/closed). I installed it a few months back and it worked perfectly up until last month when we had a really hot week (the hottest since I installed it). Now it's unreliable. I can 'connect' to it (Android client app I wrote) over the internet/network every time I try just fine, but when I try to send a command (again, with the Android app after it initiates a connection) to close/open the garage door, it doesn't always work.
First, here's a link to pastebin for the Arduino code:
And here's a photo of the prototype installed near my garage door opener (near the ceiling):
And here's the Fritzing image:
So basically what's happening is that sometimes after I connect I will push the appropriate button on my Android app to send a command to either close or open the garage door, and it won't do anything. Sometimes it will after the 2nd try though. Sometimes it won't. I don't understand because like I said, it worked perfectly for a couple months, and nothing that I can think of has changed. Did the heat damage something? (I live in the Bay Area, California, USA...it got to the upper 90s (Fahrenheit) outside, and so it would've been several degrees hotter in my garage) Or is it just coincidence? What would be the most likely component(s) to be damaged if the heat did in fact damage something? I'm so new at this still I don't know what to do or where to begin troubleshooting.
My only idea is to take it down and install a resistor and LED on another pin of the Arduino and modify the Arduino code a little to turn off/on the LED when the garage door has been opened/closed by the Arduino and if that works but it doesn't actually open/close it, then I can rule out the Ethernet Shield being damaged and I'll know that the problem is with the Arduino pin, or the transistor/relay part of the circuit.
Sorry if I have too little information (or the wrong information) on here, I didn't want to put up too much, so I just put up the basics. I can post the Android code too, but I already have a lot of stuff on this post it seems like.
Oh, one strange thing though that's probably worth mentioning - regardless of whether it responds to my commands or not sent from the Android phone, it will always send the correct status of the garage door upon initial connection, and it does change as it should if the garage door's status changes (via the 'old-fashioned' push button in my garage), so it almost makes me think that it's not the Ethernet Shield. But then I think, well maybe it is the Ethernet Shield still as the garage door status commands are being sent from the Arduino to the Android, whereas my problem is sending from the Android to Arduino...I don't know. I'm a little overwhelmed.