Power Management and Energy Harvesting Techniques for Wireless Sensor Nodes