Internet of Things (IoT) will comprise billions of devices that can sense, communicate, compute and potentially actuate. The data generated by the Internet of Things are valuable and have the potential to drive innovative and novel applications. The data streams coming from these devices will challenge the traditional approaches to data management and contribute to the emerging paradigm of big data. One of the most challenging tasks before collecting and processing data from these devices (e.g. sensors) is discovering and configuring the sensors and the associated data streams. In this paper, we propose a tool called SmartLink that can be used to discover and configure sensors. Specifically, SmartLink, is capable of discovering sensors deployed in a particular location despite their heterogeneity (e.g. different communication protocols, communication sequences, capabilities). SmartLink establishes the direct communication between the sensor hardware and cloud-based IoT middleware. We address the challenge of heterogeneity using a plugin architecture. Our prototype tool is developed on the Android platform. We evaluate the significance of our approach by discovering and configuring 52 different types of Libelium sensors.