In this paper, we present the design and implementation of a smart irrigation system using Internet of Things (IoT) technology, which can be used for automating the irrigation process in agricultural fields. It is expected that this system would create a better opportunity for farmers to irrigate their fields efficiently, as well as eliminating the field’s under-watering, which could stress the plants. The developed system is organized into three parts: sensing side, cloud side, and user side. We used Microsoft Azure IoT Hub as an underlying infrastructure to coordinate the interaction between the three sides. The sensing side uses a Raspberry Pi 3 device, which is a low cost, credit-card sized computer device that is used to monitor in near real-time soil moisture, air temperature and relative humidity, and other weather parameters of the field of interest. Sensors readings are logged and transmitted to the cloud side. At the cloud side, the received sensing data is used by the irrigation scheduling model to determine when and for how long the water pump should be turned on based on a user-predefined threshold. The user side is developed as an Android mobile app, which is used to control the operations of the water pump with voice recognition capabilities. Finally, this system was evaluated using various performance metrics, such as latency and scalability.