The Smart “Things” in IoT

  • Farshad Firouzi
  • Bahar Farahani
  • Mahdi Nazm Bojnordi


Things (devices) are the key components of IoT systems that have continually evolved in various aspects of the user interface, form factor, performance, energy consumption, and security. Every new generation of IoT devices harnesses more intelligence to enable novel applications in IoT systems. As a result, IoT designers have defined an architectural design platform to build smart IoT things. In this chapter, we first provide a definition of smart things. Then, we continue with an overview of relevant architectural components included in typical smart things. In the following sections, we provide detailed examples of the architectural components. Various types of sensors and actuators are explained. The general architecture of microcontrollers, in particular ARM Cortex-M, is examined. Finally, we provide a general view of the input/output interfaces, programming models, and real-time operating systems for IoT smart things.


Sensors Actuators Switches Relays Motors RISC CISC Microcontroller ARM PIC AVR Cortex-M GPIOs Serial interfaces SPI I2C UART Clock tree Interrupts Addressing modes Timers Low-power modes Debugging techniques Real-time operating system (RTOS) 


  1. 1.
    IBM. Available from:
  2. 2.
    D. Hanes et al., IoT Fundamentals: Networking Technologies, Protocols, and Use Cases for the Internet of Things (Cisco Press, 2017)Google Scholar
  3. 3.
    A. Rayes, S. Salam, Internet of Things—From Hype to Reality (The road to Digitization. River Publisher Series in Communications, Denmark, 2017), p. 49CrossRefGoogle Scholar
  4. 4.
  5. 5.
    National Instruments. Available from:
  6. 6.
    Microcontrollers – Types & Applications. Available from:
  7. 7.
  8. 8.
    ARM. Available from:
  9. 9.
    D. Ibrahim, ARM-Based Microcontroller Projects Using Mbed (Newnes, 2019)Google Scholar
  10. 10.
    Sparkfun. Available from:
  11. 11.
  12. 12.
    Introduction to SPI InterfaceGoogle Scholar
  13. 13.
  14. 14.
    A Software Approach to Using Nested Interrupts. Available from:
  15. 15.
    Y. Zhu, Embedded Systems with Arm Cortex-M Microcontrollers in Assembly Language and C (E-Man Press Llc, 2017)Google Scholar
  16. 16.
  17. 17.
    JTAG/SWD vs Bootloader. Available from:

Copyright information

© Springer Nature Switzerland AG 2020

Authors and Affiliations

  • Farshad Firouzi
    • 1
  • Bahar Farahani
    • 2
  • Mahdi Nazm Bojnordi
    • 3
  1. 1.Department of ECEDuke UniversityDurhamUSA
  2. 2.Shahid Beheshti UniversityTehranIran
  3. 3.University of UtahSalt Lake CityUSA

Personalised recommendations