Preface |
|
xv | |
Author Biographies |
|
xvii | |
About This Book |
|
xix | |
Concepts Revisited |
|
xxi | |
Hands-On Work and Safety Precautions |
|
xxiii | |
The IoMT Training Kit |
|
xxv | |
|
PART I Theory and Concepts |
|
|
|
Chapter 1 The Internet of Things (IoT) |
|
|
3 | (46) |
|
1.1 A New Design Paradigm: The Internet of Things |
|
|
3 | (1) |
|
1.1.1 A New Design Paradigm: Design for IoT |
|
|
3 | (1) |
|
1.1.2 A New Design Paradigm: Design from IoT |
|
|
4 | (1) |
|
1.1.3 IoT for Mechanical Engineers |
|
|
4 | (1) |
|
1.2 Introduction to the IoT Framework |
|
|
4 | (7) |
|
1.2.1 A Brief Refresher on the Internet |
|
|
5 | (2) |
|
|
7 | (2) |
|
1.2.3 Types of IoT Systems |
|
|
9 | (2) |
|
1.3 Understanding the FULL Potential of IoT |
|
|
11 | (5) |
|
1.3.1 IoT Potential: Streamlining Operations |
|
|
11 | (2) |
|
1.3.2 IoT Potential: Repurposing Data |
|
|
13 | (1) |
|
1.3.3 IoT Potential: Data Monetization (Data as a Commodity) |
|
|
14 | (2) |
|
1.4 Challenges of Implementing Effective IoT Systems |
|
|
16 | (9) |
|
1.4.1 The Multidisciplinary Nature of IoT |
|
|
17 | (1) |
|
1.4.2 Sector-Specific Challenges |
|
|
17 | (6) |
|
1.4.3 Technological Challenges |
|
|
23 | (1) |
|
1.4.4 Socioeconomic Challenges |
|
|
24 | (1) |
|
1.5 The Effective Implementation of IoT: The Detailed Procedure |
|
|
25 | (12) |
|
1.5.1 Set a Common Ground |
|
|
25 | (1) |
|
1.5.2 Define Your System Architecture |
|
|
26 | (1) |
|
1.5.3 Set/Define Data Requirements |
|
|
27 | (1) |
|
1.5.4 Design the IoT Devices, the Things |
|
|
28 | (3) |
|
1.5.5 Networking Configuration and Setup |
|
|
31 | (1) |
|
1.5.6 Select/Develop the Required Data Analytics (DA) Algorithms |
|
|
32 | (1) |
|
1.5.7 Develop/Select Your IoT Client |
|
|
33 | (1) |
|
1.5.8 IoT Outputs: Streamlining Operations |
|
|
34 | (1) |
|
1.5.9 IoT Outputs: Protocols for Repurposing Data |
|
|
35 | (1) |
|
1.5.10 IoT Outputs: Protocols for Data Monetization |
|
|
36 | (1) |
|
1.6 Case Studies of Successful IoT Applications |
|
|
37 | (5) |
|
1.6.1 The Centralized Water Management System (2017--2020) |
|
|
37 | (2) |
|
1.6.2 The IoT-Enabled Robotic Camera Dolly (2018--2019) |
|
|
39 | (1) |
|
1.6.3 Portable, Wireless, Interactive IoT Sensors for Agriculture (2018--2020) |
|
|
39 | (2) |
|
1.6.4 IoT Vehicle Management System with Network Selection (2019--Current) |
|
|
41 | (1) |
|
1.7 IoT of Tomorrow: Emerging Trends of the Internet of Things |
|
|
42 | (4) |
|
1.7.1 IoT Applications of Tomorrow |
|
|
42 | (1) |
|
1.7.2 Innovative Solutions for IoT |
|
|
43 | (1) |
|
1.7.3 IoT and Other Emerging Technologies |
|
|
44 | (2) |
|
|
46 | (3) |
|
Chapter 2 Foundation Topics: Concepts |
|
|
49 | (46) |
|
2.1 Terminologies and Fundamentals |
|
|
49 | (3) |
|
2.1.1 Electrical & Electronics Systems |
|
|
49 | (1) |
|
2.1.2 Hardware Abstraction |
|
|
49 | (1) |
|
2.1.3 A Program vs. an Algorithm |
|
|
50 | (1) |
|
|
51 | (1) |
|
2.1.5 Microprocessors vs. CPUs |
|
|
52 | (1) |
|
2.2 Embedded Systems: An Introduction |
|
|
52 | (1) |
|
2.3 Embedded Systems: Hardware Considerations |
|
|
53 | (6) |
|
2.3.1 Single-Chip Microcontroller Systems (Controller Chip Embedded Systems) |
|
|
54 | (1) |
|
2.3.2 Single-Board Microcontroller Systems (Controller Board Embedded Systems) |
|
|
54 | (1) |
|
2.3.3 Single-Board Computer Systems (Computer Board Embedded Systems) |
|
|
54 | (2) |
|
2.3.4 Embedded Systems: Features, Comparisons, and Combinations |
|
|
56 | (3) |
|
2.4 Embedded Systems: Peripherals |
|
|
59 | (23) |
|
2.4.1 Modules (Connectivity, Others) |
|
|
59 | (3) |
|
2.4.2 Input Devices (Sensors, Buttons) |
|
|
62 | (11) |
|
2.4.3 Output Devices (Actuators, LEDs, Buzzers) |
|
|
73 | (6) |
|
2.4.4 Miscellaneous Components |
|
|
79 | (3) |
|
2.5 Embedded Systems: Software Considerations |
|
|
82 | (5) |
|
2.5.1 The Main Elements of a Controller Program |
|
|
82 | (1) |
|
2.5.2 Sources of Data for Controller Programs |
|
|
83 | (1) |
|
2.5.3 Programming Languages for Controllers |
|
|
84 | (2) |
|
2.5.4 The Integrated Development Environment (IDE) |
|
|
86 | (1) |
|
2.5.5 Best Practices for Program Development and Troubleshooting |
|
|
86 | (1) |
|
|
87 | (2) |
|
|
87 | (1) |
|
|
87 | (1) |
|
2.6.3 IoT Resources and Vendor Solutions |
|
|
88 | (1) |
|
|
89 | (6) |
|
PART II Hands-On System Development |
|
|
|
Chapter 3 Foundation Topics: Programming |
|
|
95 | (42) |
|
3.1 Programming Languages: C++ |
|
|
95 | (15) |
|
3.1.1 Getting Starting with C++ |
|
|
95 | (2) |
|
3.1.2 Working with Data (Variables and Collections) |
|
|
97 | (4) |
|
3.1.3 Manipulating Data (Operators & Conditionals) |
|
|
101 | (6) |
|
3.1.4 Reusing Code (Loops, Functions, and Libraries) |
|
|
107 | (3) |
|
3.2 Programming Languages: Python |
|
|
110 | (18) |
|
3.2.1 Getting Starting with Python |
|
|
110 | (3) |
|
3.2.2 Working with Data (Variables and Collections) |
|
|
113 | (5) |
|
3.2.3 Manipulating Data (Operators and Conditionals) |
|
|
118 | (4) |
|
3.2.4 Reusing Code (Loops, Functions, and Libraries) |
|
|
122 | (6) |
|
3.3 The Linux Operating System |
|
|
128 | (8) |
|
3.3.1 Components of a Linux System |
|
|
129 | (2) |
|
3.3.2 The Linux Distributions (Distros) |
|
|
131 | (1) |
|
3.3.3 The Linux Commands (General, Networking, apt-get) |
|
|
132 | (3) |
|
3.3.4 Reference: System Management Commands |
|
|
135 | (1) |
|
|
136 | (1) |
|
Chapter 4 Arduino-Based IoT Systems |
|
|
137 | (40) |
|
|
137 | (5) |
|
|
137 | (2) |
|
|
139 | (1) |
|
|
139 | (2) |
|
|
141 | (1) |
|
|
142 | (1) |
|
4.2.1 Arduino Compatible Add-Ons |
|
|
142 | (1) |
|
4.2.2 Hardware Setup: Safety Precautions |
|
|
142 | (1) |
|
4.3 The Arduino Integrated Development Environment (Arduino IDE) |
|
|
143 | (5) |
|
4.3.1 Installation & Setup |
|
|
143 | (1) |
|
|
144 | (1) |
|
4.3.3 Arduino Programming |
|
|
144 | (4) |
|
4.4 Hands-On Projects: Arduino Autonomous Systems |
|
|
148 | (18) |
|
4.4.1 Project 4.1: The Blinking LED |
|
|
149 | (2) |
|
4.4.2 Project 4.2: The Alternately Blinking LED |
|
|
151 | (1) |
|
4.4.3 Project 4.3: Button-Controlled LED |
|
|
152 | (2) |
|
4.4.4 Project 4.4: Button-Controlled LED Toggle |
|
|
154 | (1) |
|
4.4.5 Project 4.5: Button-Controlled LEDs |
|
|
155 | (2) |
|
4.4.6 Exercise 4.1: Arduino LEDs and Pushbuttons |
|
|
157 | (1) |
|
4.4.7 Project 4.6: The Light Intensity Sensor (Arduino) |
|
|
157 | (2) |
|
4.4.8 Project 4.7: The Ultrasonic Distance Sensor (Arduino) |
|
|
159 | (3) |
|
4.4.9 Project 4.8: The DHT11 Temperature and Humidity Sensor (Arduino) |
|
|
162 | (2) |
|
4.4.10 Project 4.9: Sensor-Actuator Interactions (Arduino) |
|
|
164 | (2) |
|
4.4.11 Exercise 4.2: Arduino Autonomous Systems |
|
|
166 | (1) |
|
4.5 Hands-On Projects: Arduino-Based IoT Systems |
|
|
166 | (10) |
|
4.5.1 Project 4.10: IoT Remote Monitoring Systems (Arduino) |
|
|
166 | (6) |
|
4.5.2 Project 4.11: IoT Remotely Operated Autonomous Systems (Arduino) |
|
|
172 | (4) |
|
4.5.3 Exercise 4.3: Arduino-Based IoT Systems |
|
|
176 | (1) |
|
|
176 | (1) |
|
Chapter 5 Raspberry Pi-Based IoT Systems |
|
|
177 | (40) |
|
5.1 The Raspberry Pi Boards |
|
|
177 | (3) |
|
5.1.1 The Raspberry Pi Model B |
|
|
177 | (1) |
|
5.1.2 The Raspberry Pi Model A |
|
|
178 | (1) |
|
5.1.3 The Raspberry Pi Zero |
|
|
179 | (1) |
|
5.2 The Raspberry Pi Peripherals |
|
|
180 | (4) |
|
5.2.1 Official Raspberry Pi Accessories |
|
|
180 | (1) |
|
5.2.2 Third-Party Accessories |
|
|
181 | (2) |
|
5.2.3 Hardware Setup: Safety Precautions |
|
|
183 | (1) |
|
5.3 The Raspberry Pi Operating System |
|
|
184 | (10) |
|
5.3.1 Installation and Setup |
|
|
186 | (1) |
|
5.3.2 Virtual Network Computing (VNC), the Setup |
|
|
187 | (1) |
|
5.3.3 Geany IDE Basics (For Raspberry Pi) |
|
|
187 | (2) |
|
5.3.4 Raspberry Pi Programming |
|
|
189 | (5) |
|
5.4 Hands-On Projects: Raspberry Pi Autonomous Systems |
|
|
194 | (15) |
|
5.4.1 Project 5.1: The Blinking LED |
|
|
195 | (2) |
|
5.4.2 Project 5.2: The Alternately Blinking LED |
|
|
197 | (1) |
|
5.4.3 Project 5.3: Button-Controlled LED |
|
|
198 | (1) |
|
5.4.4 Project 5.4: Button-Controlled LED Toggle |
|
|
199 | (1) |
|
5.4.5 Project 5.5: Button-Controlled LEDs |
|
|
200 | (2) |
|
5.4.6 Exercise 5.1: The Raspberry Pi LEDs & Buttons |
|
|
202 | (1) |
|
5.4.7 Project 5.6: The Light Intensity Sensor (RPi) |
|
|
202 | (2) |
|
5.4.8 Project 5.7: The Ultrasonic Distance Sensor (RPi) |
|
|
204 | (1) |
|
5.4.9 Project 5.8: The DHT11 Temperature and Humidity Sensor (RPi) |
|
|
205 | (1) |
|
5.4.10 Project 5.9: Sensor-Actuator Interactions (RPi) |
|
|
206 | (2) |
|
5.4.11 Exercise 5.2: The Raspberry Pi Autonomous Systems |
|
|
208 | (1) |
|
5.5 Hands-On Projects: Raspberry Pi-Based IoT Systems |
|
|
209 | (6) |
|
5.5.1 Project 5.10: IoT Remote Monitoring Systems (RPi) |
|
|
209 | (3) |
|
5.5.2 Project 5.11: IoT Remotely Operated Autonomous Systems (RPi) |
|
|
212 | (3) |
|
5.5.3 Exercise 5.3: The Raspberry Pi-Based IoT Systems |
|
|
215 | (1) |
|
|
215 | (2) |
Closing Remarks |
|
217 | (2) |
Index |
|
219 | |