Energy harvesting for self-powered wearable devices