LCD Display 16X2 needs the Arduino Board to be reset now and then

sir,
I have attached the code file to this mail. I wish to add that at times the LCD diplays continuously moving gibbering. The display displays correctly once the board is reset. I have got over the issue partially by running lcd.begin(16,2) every 30 mins, but it still displays gibberish at times. There does not appear to be any loose connections.

The arduino is driving 3 relays which switch on/off a pump (220 VAC) and a power supply (220 VAC) . Could there be an interference problem, though this is unlikely since the remainder of the circuit (except the LCD) is working perfectly.

regards

PlantMonitor.ino (2.39 KB)