Internet of Things (IoT) has the potential to improve the way we interact with things. IoT envisions the idea of universal connectivity of everything which is defined as the global network of uniquely identifiable and addressable smart things posing the capability to interact and communicate with other smart things. Every smart object consists of a microprocessor, transceiver module, sensors and power source. Most of the times these systems have to deal with low power and lossy networks (LLNs), where nodes have limited memory, processing capability, and power. However, stringent Quality of Service (QoS) is mandatory which is challenging to provide as the sensors are interconnected using lossy links. A routing protocol is needed as these devices can be scattered in an unplanned manner. Considering unanticipated characteristics of LLNs, Internet Engineering Task Force (IETF) developed, and standardized the Routing Protocol for LLNs (RPL). RPL is an IPv6 network and builds a tree-like topology which is based on few network metric optimization process using different Objective Functions (OF) to fulfill desired routing process. In this paper, we proposed a routing and a transmission power control algorithm to design a reliable energy efficient and low-cost RPL based system for IoT applications.