Spigots are the original controller for water. The most common problem is leaving the water valve open, but this can be resolved by using a timer on the hose or spigot.
Manual timers typically use mechanical stops to start and stop the flow of water. They are another inexpensive option.
Programmable controllers usually have a timing circuit, which allows you to set a variety of variables such as: start time, duration, days of the week, et cetera.
Climate-based controllers are considered "smart controllers" and use the local environment (including weather) to determine water settings.
Sensor-based controllers are another type of "smart controller" that uses a sensor to determine if the sprinkler system needs to run and for how long. They typically use a buried moisture sensor. Sensor-based controllers can be added to existing sprinkler systems, with the moisture sensor being added to a zone manifold's existing low voltage wiring.
For a list of smart controllers tested by the Irrigation Association, guides to home or commercial irrigation and other information regarding irrigation best practices, please visit the Irrigation Association's website.