Will I need diode if I add button to this schematic?
The easiest solution is your solution 2. Connect the push button from relay coil to ground, across the transistor.

The best solution in my opinion is your solution 3. It is best fit for future changes to your requirements. If you change your mind, eg. you don't want the push button to work under certain conditions, it is easy to implement in software without having to change the wiring. Do add some extra input protection on your Arduino though to protect from overvoltage and noise. Use a series resistor and a couple Schottky diodes to clamp the input to Vcc and GND.







simulate this circuit &ndash; Schematic created using CircuitLab

The diode in parallel to the relay is cheap and protects the transistor (and in turn the Arduino's microcontroller) in all three of your solutions.