Arduino catching / break Serial and other communications

Hello, I always use the Arduino for study, research, prototyping etc. For example I am now using to two remote weather stations using the Arduino connected via Bluetooth to a mobile phone to send the meteorological data to a web server via webservices. But since I started using the Arduino in my projects always I passed locking problems, problems with communication, being solved only if you restart the Arduino. However, these are my seasons far from my town and I can not travel 200km to simply restart the Arduino. Anyway, in short, I want to know if you all go through problems like crashes. As this is giving me a lot of headache. I'm already thinking of using some other microprocessor or even a raspberry pi. What do you say? Is there any scheme for the serial communication does not live Arduino catching? Is there any other way to remove Arduino data and send it to a cell that is next to you? I thought of using an OTG cable, so the Arduino will be connected directly to the phone via cable, but I can not carry the phone while the OTG cable is connected. I'm starting to get descepcionado with Arduino, because I'm not finding reliable for a profissiona project. Please guys, give a helping hand. I'm sorry for the English, i´m brazilian!

when i originally made my system i would crash/reboot every few weeks. after looking into it and through discussions on this board, it turned out that the String Library was causing memory leakage errors which built up over time. i worked to replace all instances of strings with char arrays. since then, my current system has been able to operate without any issues for over 9 months before i had to power cycle it since i just moved to a new house.

my system is located here:

do you use the String library?

If you have anyway of letting the Arduino know it hanged you can use an resistor (I can't remeber the value, but you surelly can find it here in the forum) from an input pin to the reset pin to make it auto reset. Or you could use the arduino watchdog, I did the resistor thing because I didn't want to mess with the bootloader.

Other then that you should provide your code if you really expects some one to give you any advices of what can be wrong.

If I have to guess, you are probably running out of RAM or overflowing an array, but again, it's just a guess since you didn't provide any code.

Have you tried the watchdog function? This seems to be a good write-up of it.