This document discusses the key building blocks needed to enable the Internet of Things (IoT). It outlines four main categories of IoT applications: 1) remote tracking/monitoring and control, 2) process control and optimization, 3) resource allocation and optimization, and 4) context-aware automation and decision making. The main building blocks are then described in more detail: 1) sensing nodes to collect data, 2) local embedded processing nodes to analyze the data, 3) connectivity nodes to communicate wired or wirelessly, 4) software to automate tasks, and 5) remote processing nodes in the cloud. Microcontroller units are discussed as ideal local processing nodes due to requirements for energy efficiency, software ecosystems, cost effectiveness, quality,