Nanogenerators for self-powered applications