Computers are mathematical processors. And, because information in almost all forms can be reduced to a binary form, computers can handle far more than math. Through the Internet of Things, we’ve come to rely on a variety of small devices to exercise control over our environment. These devices are generally referred to as microcontrollers and microprocessors.
While definitions within an evolving language are in constant flux, there is also the evolution of the devices themselves that insures we are always trying to somehow focus on a moving target. Those of us that have been working within the industry since the advent of desktop computers would, on occasion, lament “Took a short nap; woke up a dinosaur.”
Despite the fuzzy line between the definitions, the functionality, and the utility of microcontrollers and microprocessors, the basic difference is nuanced. The microprocessor typically refers to a Central Processing Unit or CPU that is an essential component within any computer system. The CPU has the computational capabilities built in. Microprocessors typically require support hardware and a specialized layer of software, an intermediary known as an operating system. Your iPhone uses one called iOS whereas your Android phone uses, well, Android.
Everything a computer does is in accordance with a set of instructions called computer programs. Microprocessors carry out many millions or billions and soon, perhaps, trillions of instructions per second. When integrated with an almost limitless variety of high end sub-systems such as memory, displays, and other peripherals they can evolve into really big enterprise class computers. Such complexity and performance may, or may not, be desirable depending upon your intended use. A microcontroller typically refers to a somewhat de-featured computer system on a single chip. It contains an integrated processor, a small amount of memory, and programmable input/output ports. Tese are used to interact with things, like sensors and actuators. Many of the instructions are embedded into the chip while the chip itself may be embedded into larger control systems.
If you were running a greenhouse operation that required inventory management and cost analysis, you would likely opt for something expandable that could run a spreadsheet or display complex graphics, you might want to consider a full fledged laptop or desktop computer. If you still need such capabilities, without dedicating your trusty go-to workstation for specialized tasks, you might want to dedicate a modestly priced microprocessor system like the Raspberry Pi.
If your tasking is more focused upon simple operations, such as monitoring the amount of sunlight coming through the greenhouse windows, then you could use a simple microcontroller like the Arduino Nano or Uno as a data logger. Microcontrollers can also be used for simple decision making. Suppose the sunlight coming through the windows is insufficient for your seedlings. This condition could trigger some action by the microcontroller such as running your artificial lighting just enough to compensate for the shortfall.
If you really wanted to get fancy, you could also monitor the color of the light coming through the windows and run the compensatory lighting at the precise color and amount of time your plants need for rooting, stemming, branching, and flowering. You could also use the microcontroller to monitor and mix nutrient solutions. You could control the gas envelope while also regulating atmospheric pressure. Microcontrollers can do a lot more than function as smart thermostats.
Whether or not you can get away with using a controller type device as opposed to an enhanced processing device, depends upon the extent to which you can break down your tasks. For example; If you wanted to separately monitor the light coming from the East, West, North, South, and overhead windows, you could use separate sensors and microcontrollers at those locations to log the data. Then you could poll those microcontrollers with a more capable system while bringing historical data into your decision package.
So, the questions that arise concerning controller versus processor based systems, and about which of those systems is best, has one easy answer; both. They are each ideally adapted to different sets of tasks. Microcontrollers don’t require operating system software for simple decisions. And yet they are able to execute specific instructions when certain conditions are met. The instructions used to program such devices are, in the case of the Arduino, called sketches, a term used to convey the simplicity of programming them.
Microprocessor systems are especially useful when much of the problem solving is unanticipated or more complex. The operating system would likely prove to be more flexible while things are still being worked out. Of course, evolution marches on and development platforms are available for microcontrollers. The controllers are still usually programmed by full fledged handheld, laptop, or desktop systems. But once those instructions are effectively downloaded to the microcontroller or embedded device, you can be off and running with an inexpensive, standalone system to make your world more enjoyable and manageable.