This document describes an IoT-based smart irrigation prototype that was designed and implemented. The prototype automatically turns a motor pump on and off based on soil moisture levels, taking into account temperature and humidity. It uses an ESP32 microcontroller connected to DHT11 and moisture sensors. The data is sent to the Arduino IoT cloud via MQTT protocol and can be accessed worldwide. Test data from the prototype over the cloud and locally is presented. The document also provides background on IoT architectures and protocols, and discusses related work on smart agriculture applications using IoT and machine learning.