Underwater wireless sensor networks are networks composed of various underwater sensor nodes (USNs) that are able to communicate with each other. The vast majority of Earth's surface is composed of water, which makes such networks a very interesting research topic and enables a variety of applications, i.e, from oil monitoring to real time water pollution control. The design of USNs is paramount to the network's operation. In comparison to terrestrial wireless sensor nodes, USNs are more expensive, larger, and present greater energy consumption, due to the harsh conditions of the aquatic environment. This leads to different challenges that need to be addressed in the design of the node, including processing, communications, energy management, data sensing, and storage. This survey aids in the development of underwater sensor nodes, and underwater applications. We present a general architecture of USNs and discuss the basic functions that must be accomplished by each unit. We also present a comprehensive study of all elements that compose a sensor node, including microcontrollers, memories, sensors, and batteries. In doing so, we highlight which aspects should be of pivotal importance in the design of a USN and how they affect communication protocols and applications. We believe that this survey can facilitate and guide development of future UWSN applications and protocols.