This document describes a low-cost system for real-time water quality monitoring and controlling using IoT. The system uses physiochemical sensors to measure parameters like temperature, turbidity, conductivity, pH and flow. The sensor values are processed by a Raspberry Pi controller and sent to the cloud. Users can view the sensed data and control water flow through the cloud and mobile devices using IoT. The system was tested and able to successfully monitor water quality and control flow in real-time through the internet for applications like water distribution and aquafarming.