"Mindestens" tends to be used with countable elements of the same type, or at least with something quantifiable:
Wir brauchen mindestens drei Kartoffeln.
We need at least three potatoes.
Füllen Sie die Flasche bis mindestens zur Markierung.
Fill the bottle up, at least to the marking.
"Zumindest" tends to be used with unquantifiable things:
Du hättest zumindest anrufen können.
You could at least have given me a call.
Zumindest in meiner Stadt ist mir kein solcher Fall bekannt.
At least in my city, I'm not aware of such a case.
This isn't a clear-cut distinction, though, so you may well find examples where the terms are used the other way around.
Regarding "wenigstens", this is in my experience a matter of perspective. You might say that with "mindestens" and "zumindest", you look at things from a lower amount and express that it could be more. With "wenigstens", you look at things from a higher amount and express that it could go as low as this. But this distinction is quite subtle and may well be blurred in everyday speech.