LEARN MORE ABOUT FOUNDATIONAL AND ADVANCED TOPICS IN INTERNET OF THINGS TECHNOLOGY WITH THIS ALL-IN-ONE GUIDE
Enabling the Internet of Things: Fundamentals, Design, and Applications delivers a comprehensive starting point for anyone hoping to understand the fundamentals and design of Internet of Things (IoT) systems. The book's distinguished academics and authors offer readers an opportunity to understand IoT concepts via programming in an abstract way. Readers will learn about IoT fundamentals, hardware and software components, IoT protocol stacks, security, IoT applications and implementations, as well as the challenges, and potential solutions, that lie ahead.
Readers will learn about the social aspects of IoT systems, as well as receive an introduction to the Blockly Programming Language, IoT Microcontrollers, IoT Microprocessors, systems on a chip and IoT Gateway Architecture. The book also provides implementation of simple code examples in Packet Tracer, increasing the usefulness and practicality of the book. Enabling the Internet of Things examines a wide variety of other essential topics, including:
- The fundamentals of IoT, including its evolution, distinctions, definitions, vision, enabling technologies, and building blocks
- An elaboration of the sensing principles of IoT and the essentials of wireless sensor networks
- A detailed examination of the IoT protocol stack for communications
- An analysis of the security challenges and threats faced by users of IoT devices, as well as the countermeasures that can be used to fight them, from the perception layer to the application layer
Perfect as a supplementary text for undergraduate students taking computer science or electrical engineering courses, Enabling the Internet of Things also belongs on the bookshelves of industry professionals and researchers who regularly work with and on the Internet of Things and who seek a better understanding of its foundational and advanced topics.
Table of Contents
About the Authors xiii
Preface xv
Acknowledgments xix
1 Internet of Things (IoT) Fundamentals 1
1.1 Introduction 1
1.2 Evolution of IoT Concept 2
1.3 IoT Vision 3
1.4 IoT Definition 5
1.5 IoT Basic Characteristics 6
1.6 IoT Distinction 7
1.6.1 IoT Versus Embedded Systems 7
1.6.2 IoT Versus M2M 7
1.6.3 IoT Versus CPS 7
1.6.4 IoT Versus WSN 8
1.6.5 IoT Versus WoT 8
1.7 IoT General Enablers 9
1.7.1 Identification and Sensing Technologies 10
1.7.2 Wireless Communication and Networking 11
1.7.3 Aggregation Standardization 14
1.7.4 Augmented Intelligence 14
1.7.5 Augmented Behavior 15
1.8 IoT Architectures 16
1.8.1 Three-layer IoT Architecture 17
1.8.1.1 Perception Layer 17
1.8.1.2 Network Layer 18
1.8.1.3 Application Layer 18
1.8.2 Five-Layer IoT Architecture 19
1.8.2.1 Object (Perception) Layer 19
1.8.2.2 Object Abstraction (Network) Layer 19
1.8.2.3 Service Management (Middleware) Layer 19
1.8.2.4 Application Layer 19
1.8.2.5 Business Layer 19
1.8.3 Six-layer Architecture 20
1.8.3.1 Focus Layer 21
1.8.3.2 Cognizance Layer 21
1.8.3.3 Transmission Layer 21
1.8.3.4 Application Layer 21
1.8.3.5 Infrastructure Layer 21
1.8.3.6 Competence Business Layer 21
1.8.4 Seven-layer Architecture 21
1.8.4.1 Layer 1: Things Layer 21
1.8.4.2 Layer 2: Connectivity 21
1.8.4.3 Layer 3: Edge/Fog Computing 22
1.8.4.4 Layer 4: Data Accumulation 23
1.8.4.5 Layer 5: Data Abstraction Layer 23
1.8.4.6 Level 6: Application Layer 23
1.8.4.7 Layer 7: Collaboration and Processes 23
1.9 Advantages and Disadvantages of IoT 23
Review Questions 23
References 25
2 IoT Building Blocks - Hardware and Software 29
2.1 IoT Building Blocks 29
2.2 The Smart Things 29
2.2.1 Smart Thing Sensor 30
2.2.2 Smart Thing Communicator 31
2.2.3 Smart Thing Actuator 31
2.2.4 Smart Thing Controller 32
2.2.4.1 Microcontroller (MCU) 32
2.2.4.2 Development Boards 32
2.2.4.3 Packet Tracer and MCUs 33
2.2.5 Smart Thing Capabilities 36
2.3 The IoT Gateway 38
2.4 Network Infrastructure 39
2.5 IoT Cloud 39
2.5.1 Virtual Resource Pool 39
2.5.2 Application Server 39
2.5.3 Database Servers 40
2.5.4 Load-balancing Servers 41
2.6 IoT Analytics 41
2.6.1 IoT Analytics - Tools and Techniques 42
2.6.2 IoT Analytics Life Cycle 43
2.7 IoT Applications 43
Review Questions 43
References 45
3 Sensing Principles and Wireless Sensor Network 49
3.1 Sensor Fundamentals 49
3.2 Sensor Classification 51
3.2.1 Simple (Direct) Sensor Versus Complex Sensor 51
3.2.2 Active Sensors Versus Passive Sensors 51
3.2.3 Contact Sensors Versus Noncontact Sensors 52
3.2.4 Absolute Sensors and Relative Sensors 52
3.2.5 Digital Sensors Versus Analog Sensors (Based on Output) 52
3.2.6 Scalar Sensor Versus Vector Sensors (Based on Data Types) 52
3.3 Anatomy of Sensors 52
3.4 Physical Principles of Sensing 53
3.4.1 Capacitance 53
3.4.1.1 Examples of Capacitive Sensors 55
3.4.2 Magnetism and Induction 57
3.4.2.1 Magnetic Sensing Examples 59
3.4.3 Electric Resistance and Resistivity 60
3.4.3.1 Resistive Sensor Applications 61
3.4.4 Piezoelectric Effect 61
3.5 Use of Basic Sensing Principles in RFID Technology 61
3.6 Actuators 62
3.7 Wireless Sensor Networks (WSNs) 63
3.7.1 WSN Architecture 63
3.7.2 Types of WSNs 64
3.7.3 General Characteristics of WSNs 64
3.7.4 Protocol Stack of WSNs 65
3.7.4.1 Physical Layer 65
3.7.4.2 Data Link Layer (DLL) 66
3.7.4.3 Network Layer 68
3.7.4.4 Transport Layer 68
3.7.4.5 Application Layer 69
3.7.4.6 Cross-layer WSN Protocols 69
3.7.5 WSN Operating Systems 69
3.7.5.1 WSN OS Design Issues 71
Review Questions 72
References 72
4 IoT Gateway 75
4.1 The IoT Gateway 75
4.2 Sensing Domain and IoT Gateways 77
4.3 The Architecture of IoT Gateway 79
4.3.1 Hardware Layer of IoT Gateway 79
4.3.2 OS Layer of IoT Gateway 80
4.3.3 Hardware Abstraction Layer 80
4.3.4 Data Forwarding Layer 80
4.3.5 Service Abstraction Layer 81
4.3.6 Manageability Layer 81
4.3.7 Security Layer 81
4.3.8 Application Layer 81
4.4 Selection of IoT Gateway 81
4.4.1 Nature of IoT System Architecture 81
4.4.2 Multiple Network Connectivity Support 82
4.4.3 Data Storage Capacity 82
4.4.4 Development Environment 82
4.4.5 Robust Security Mechanism 82
4.4.6 External Hardware Watchdog Timer 83
4.4.7 Time Synchronization 83
4.4.8 Firmware Update 83
4.4.9 LED Indication and Remote Reboot 83
4.4.10 Support for Legacy Equipment 83
4.4.11 Standard Protocol Support 83
4.4.12 Gateway Certification 83
4.4.13 Control of Low Power Footprint 84
4.4.14 Support for Edge Computing 84
4.5 IoT Gateways and Edge Computing 84
4.5.1 Benefits of Edge Computing 84
4.5.2 Use Cases of Edge Computing 85
4.5.2.1 Smart Home 85
4.5.2.2 Cooperative Safety Smart Vehicles 86
4.5.2.3 Provisioning of Infotainment Services for Smart Vehicles 86
4.5.2.4 Online Shopping Service 86
4.5.2.5 Healthcare and Collaborative Edge 86
4.5.2.6 Video Monitoring and Analysis 87
4.5.2.7 Smart City 87
4.5.2.8 Security Surveillance 87
4.5.2.9 Retail Advertising 87
4.5.3 Challenges of Edge Computing-based IoT Systems 87
4.5.3.1 System Integration 88
4.5.3.2 Resource Management 88
4.5.3.3 Security and Privacy 88
4.5.3.4 Heterogenous Communication 88
4.5.3.5 Data Analysis Support for Smart Systems 88
4.6 IoT Gateway Providers 89
Review Questions 89
References 90
5 IoT Protocol Stack 93
5.1 IoT Protocol Stack 93
5.2 IoT Protocols 95
5.2.1 Infrastructure Protocols 95
5.2.1.1 EPCglobal 95
5.2.1.2 Z-wave 96
5.2.1.3 Long-term Evolution - Advanced (LTE-A) 97
5.2.1.4 Bluetooth Low Energy (BLE) 97
5.2.1.5 IEEE 802.15.4 97
5.2.1.6 IEEE 802.11ah 98
5.2.1.7 ZigBee 100
5.2.1.8 6LoWPAN 102
5.2.1.9 Routing Protocol for Low-Power and Lossy Networks (RPL) 102
5.2.2 Service Discovery Protocols 104
5.2.2.1 Multicast Domain Name System (mDNS) 104
5.2.2.2 DNS Service Discovery (DNS-SD) 104
5.2.3 Application Layer Protocols 105
5.2.3.1 Data Distribution Service (DDS) 105
5.2.3.2 Message Queue Telemetry Transport (MQTT) 105
5.2.3.3 Constrained Application Protocol (CoAP) 111
5.2.3.4 Advanced Message Queuing Protocol (AMQP) 116
5.2.3.5 eXtensible Messaging and Presence Protocol (XMPP) 119
Review Questions 123
References 124
6 IoT Cloud and Fog Computing 127
6.1 IoT Cloud 127
6.1.1 Cloud Computing for IoT 129
6.1.2 IoT Cloud Architecture 129
6.1.2.1 Virtual Resource Pool 130
6.1.2.2 Application Server 130
6.1.2.3 Database Servers 131
6.1.2.4 Load-balancing Servers 131
6.1.3 Application Domains of IoT Cloud Platforms 134
6.2 Fog Computing for IoT 135
6.2.1 Difference from Related Computing Paradigms 136
6.2.1.1 Edge Computing 136
6.2.1.2 Mobile Edge Computing (MEC) 136
6.2.2 Architecture of Fog Computing 137
6.2.2.1 Physical and Virtualization Layer 137
6.2.2.2 Monitoring Layer 137
6.2.2.3 Preprocessing Layer 137
6.2.2.4 Temporary Storage Layer 137
6.2.2.5 Security Layer 137
6.2.2.6 Transport Layer 139
6.2.3 Fog Deployment Models 139
6.2.4 Fog Service Models 140
6.3 Case Study - Vehicles with Fog Computing 140
6.3.1 VANETs and Fog Computing 140
6.3.2 Dynamic Traffic Light Signal Management 141
6.3.3 Parking System 142
6.3.4 Content Distribution 143
6.3.5 Decision Support System 143
Review Questions 143
References 144
7 IoT Applications 147
7.1 Application Domains of IoT 147
7.2 IoT and Smart Home 147
7.2.1 IoT-based Smart Home Framework 148
7.3 IoT and Healthcare 150
7.4 IoT and Smart Mobility 153
7.4.1 Car Parking System 156
7.5 IoT and Agriculture 159
7.5.1 Major Instances of Crop Growth and IoT 159
7.5.2 IoT Architecture of Smart Agriculture 160
7.6 Smart Grid 162
7.7 IoT-based Smart Cities 164
7.8 IoT and Smart Education 167
7.9 Industrial IoT 168
Review Questions 168
References 170
8 IoT Security 173
8.1 IoT Systems and Security Constraints 173
8.1.1 IoT Security Constraints Based on Hardware Limitations 175
8.1.2 IoT Security Constraints Based on Software Limitations 176
8.1.3 IoT Security Constraints Based on Communication Limitations 176
8.2 IoT Security Requirements 176
8.2.1 Information-level Security Requirements 176
8.2.2 Access-level Security Requirements 177
8.2.3 Functional Security Requirements 177
8.3 Security Challenges 177
8.4 Taxonomy of IoT Security Threats/Attacks 178
8.4.1 IoT Security Attacks Based on Device Category 178
8.4.2 Attacks Based on Access Level 178
8.4.3 Attacks Based on Attacker’s Location 178
8.4.4 Attacks Based on Attack Strategy 178
8.4.5 Attacks Based on Information Damage Level 180
8.4.6 Host-based IoT Attacks 180
8.4.7 Protocol-based Attacks 180
8.5 IoT Architecture and IoT Security 180
8.5.1 Perception Layer Security 180
8.5.2 Network Layer Security 183
8.5.3 IoT Application Layer Security 185
8.5.3.1 Security Threats at Support Layer of IoT Applications 185
8.5.3.2 Security Threats at Service Layer of IoT Applications 185
8.6 Multilayer Security Attacks 186
8.7 IoT Application Scenarios and IoT Security 186
8.7.1 Smart Home Security 186
8.7.2 Smart Healthcare Security 187
8.7.3 Smart Vehicle Security 189
8.7.4 Smart City Security/Privacy Concerns 190
Review Questions 190
References 192
9 Social IoT 195
9.1 Smart Things to Social Things 195
9.2 The Epitome of SIoT 196
9.3 Smart Thing Relationships in SIoT 197
9.4 SIoT Architecture 198
9.4.1 SIoT Server 198
9.4.1.1 The Network Layer of SIoT Server 199
9.4.1.2 The Application Layer of SIoT Server 199
9.4.1.3 The Interface Sublayer 200
9.4.2 The SIoT Gateway and Social Things 200
9.5 Features of SIoT System 200
9.6 Social Internet of Vehicles (SIoV) - An Example Use Case of SIoT 201
9.6.1 Reference Architecture of VANETs 201
9.6.2 Reference Architecture of IoV 203
9.6.2.1 Differences in Communication Standards 203
9.6.3 Reference Architecture of SIoV 205
9.6.3.1 Vehicle-Object Perception Layer (VOPL) 205
9.6.3.2 The IoV Gateway Layer 208
9.6.3.3 The Fog Layer 209
9.6.3.4 The Vehicular Cloud Layer 209
9.7 SIoV Application Services 209
Review Questions 210
References 210
10 Packet Tracer and IoT 213
10.1 IoT and Packet Tracer 213
10.2 Packet Tracer Programming Environment 214
10.3 Visual (Blockly) Programming Language 216
10.3.1 Hello World Program 217
10.4 Simple Smart Light Project 219
10.4.1 Adding Devices to Workspace 222
10.4.2 Connecting Devices 224
10.4.3 Using Program Blocks and Pin Access 227
References 234
11 IoT Projects in Packet Tracer 235
11.1 IoT Projects in Packet Tracer 235
11.2 Smart Things Directly Connected with Gateways 235
11.3 Smart Things and Sensors Directly Connected with MCUs (Without Gateways) 237
11.3.1 Adding Devices to Workspace 240
11.3.2 Connecting Devices Together 241
11.3.3 Blockly Programming for Smart Room 242
Review Questions 255
Index 259