Keep hardware running with an external Watchdog Timer
When the time comes to install a project in an out-of-the-way place, you need to ensure that it can run unattended for extended periods of time. You may have taken care of the power supply, created a solid enclosure, etc - the usual stuff.
However what about lock-up states? Or if the code goes AWOL and causes the device to just stop working? Then you need a watchdog timer - that will reset your microcontroller or trigger a circuit after a specified period of time, if it hasn't "heard" from the main circuit.
This is accomplished by using a simple 555 timer circuit, that changes output after a period of time, for example 60-odd seconds. Your circuit or microcontroller needs to reset the watchdog timer regularly, in intervals less than the watchdog's period.
Then, if the watchdog timer hasn't been reset by your device - the watchdog can reset the microcontroller or circuit to get it running again.
To learn more about this concept - check out the project instructable to learn all the details.