Building connected, pervasive, human-facing, and responsive applications that incorporate local sensors, smartphone interactions, device actuation, and cloud-based learning-the promised features of the Internet of Things (IoT)-requires a complete suite of tools spanning both hardware and software. We present a set of these pieces, including a gateway, four hardware building blocks, multiple sensor platforms, an indoor localization system, and software for connecting users and devices. Each piece plays an integral role towards enabling applications, from facilitating rapid development of wireless smart devices to composing data streams and services from a diverse set of components. By providing layered interoperable systems, our toolkit offers cohesive support for moving beyond single-device, cloud-centric applications-typical in today's IoT landscape- and towards richer applications that incorporate multiple data streams, human interaction, cloud processing, location awareness, multiple communication protocols, historical data, access control, and on-demand user interfaces. To show how the pieces in the toolkit cooperate, we demonstrate a location-based access control application where a user's smartphone can control a room's lighting, but only from within the room. Further, data streams from the phone and nearby sensors are used to provide a constant lighting service which attempts to maintain a user-set brightness under variable external lighting conditions.