Этимологический словарь Крылова
Заимствование из польского, где szpilka восходит к средненемецкому spille – "иголка".
шпилька
Шпилька
ШПИЛЬКА