Uno with Ultrasonic senser and 12v Geared DC motor

So I am new to the audrino party. I am working on a group project. And here is the schematic:

There might be differences between the two pictures as we decided to add the wireless module to the audrino, and changed the pins for the motor.

The motor works perfectly with our audrino code for a day then suddenly breaks. Whenever it did not work, we thought it was our poor soldering and we did it again using new components (eg. diodes, transistor and resistor).
Until yesterday when we found out that when we replace the transistor it works.
We did replace it and minutes later it broke.
So I think the transistor keeps on breaking, which means we are using a rather weak one.

Components we are using:

12v DC 10RPM geared motor
Ultrasonic sensor
1K resistor
2n2222 Transistor

I read many forums saying they used the TIP-120 yet I wanted to make sure am doing the right thing.
Is the 2n2222 transistor keeps breaking because it is weak?
Should we use the TIP 120?

When using a transistor as a switch two prerequisites must be fullfilled:

  • The maximum switched current must be lower (with margin) than the maximum Ice of the transistor. In case of a 2N2222 Ice max is 800mA. This means that the measured stalling current of the motor should be less than say 500mA
  • The transistor must be driven into saturation. This occurs when Ib > Ice/beta. The 2N2222 has a beta of around 100. With a base resistor of 1K you get a base current of (5V-Ube)/1000or a little over 4mA. It shoud be twice or three times that value in order to ensure saturation. meaning the base resistor should be 330Ohm

I think a better solution would be using a MOSFET with Ids at least twice the stalling current an logic level gate voltage. In that case you should use a gate resistor of maybe 10Ohm