When we talk about things in the IoT world, we not only talk about sensors or actuators, we are actually talking about smart objects that are effectively microcontrollers with Internet connectivity. The difference between a microcontroller and microprocessor is the fact that microprocessor is more powerful and general purpose, and microcontrollers are slower, cheaper, purposely made hence they include memory and input/output peripherals so effectively small complete systems. Good comparison can be found here.
When choosing a microcontroller some of the options are: number of bits, quantity of RAM and flash memory, number of GPIO pins, type of connectivity, power consumption (critical for IoT battery powered systems) and development tools with community around it. There are basically three types of operating systems that run on top of them: bare metal, RTOS and Linux. Microcontrollers commonly come in the shape of development boards that are used for rapid prototyping and the most used types are from Texas instruments, Arduino, Samsung, Raspberry Pi and many others. While choosing which development boards is important for you these are the factors to take care of: compatibility with sensors and actuators, architecture for handling the required complexity, quantity of RAM and flash memory, availability of production i.e. how many pieces can be produced, energy efficiency i.e. battery consumption, cost per unit, possibility of having development kits and development support.
Full article can be found here.

