+ All Categories
Transcript
Page 1: Contents · Contents I INTRODUCTION & CONCEPTS 17 1 Introduction to Internet of Things.....19 1.1 Introduction20 1.1.1 Definition & Characteristics of IoT ...

Contents

I INTRODUCTION & CONCEPTS 17

1 Introduction to Internet of Things . . . . . . . . . . . . . . . . . . . . . . . . . . 19

1.1 Introduction 201.1.1 Definition & Characteristics of IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

1.2 Physical Design of IoT 231.2.1 Things in IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231.2.2 IoT Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

1.3 Logical Design of IoT 291.3.1 IoT Functional Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291.3.2 IoT Communication Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301.3.3 IoT Communication APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

1.4 IoT Enabling Technologies 351.4.1 Wireless Sensor Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351.4.2 Cloud Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361.4.3 Big Data Analytics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371.4.4 Communication Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371.4.5 Embedded Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

1.5 IoT Levels & Deployment Templates 381.5.1 IoT Level-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391.5.2 IoT Level-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401.5.3 IoT Level-3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411.5.4 IoT Level-4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

Page 2: Contents · Contents I INTRODUCTION & CONCEPTS 17 1 Introduction to Internet of Things.....19 1.1 Introduction20 1.1.1 Definition & Characteristics of IoT ...

1.5.5 IoT Level-5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431.5.6 IoT Level-6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

2 Domain Specific IoTs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

2.1 Introduction 48

2.2 Home Automation 482.2.1 Smart Lighting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482.2.2 Smart Appliances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482.2.3 Intrusion Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492.2.4 Smoke/Gas Detectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

2.3 Cities 502.3.1 Smart Parking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502.3.2 Smart Lighting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502.3.3 Smart Roads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502.3.4 Structural Health Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512.3.5 Surveillance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512.3.6 Emergency Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

2.4 Environment 522.4.1 Weather Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522.4.2 Air Pollution Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522.4.3 Noise Pollution Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532.4.4 Forest Fire Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532.4.5 River Floods Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

2.5 Energy 542.5.1 Smart Grids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542.5.2 Renewable Energy Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552.5.3 Prognostics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

2.6 Retail 562.6.1 Inventory Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562.6.2 Smart Payments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562.6.3 Smart Vending Machines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

2.7 Logistics 572.7.1 Route Generation & Scheduling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572.7.2 Fleet Tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582.7.3 Shipment Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582.7.4 Remote Vehicle Diagnostics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

2.8 Agriculture 592.8.1 Smart Irrigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592.8.2 Green House Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

2.9 Industry 602.9.1 Machine Diagnosis & Prognosis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602.9.2 Indoor Air Quality Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

Page 3: Contents · Contents I INTRODUCTION & CONCEPTS 17 1 Introduction to Internet of Things.....19 1.1 Introduction20 1.1.1 Definition & Characteristics of IoT ...

2.10 Health & Lifestyle 622.10.1 Health & Fitness Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622.10.2 Wearable Electronics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

3 IoT and M2M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

3.1 Introduction 66

3.2 M2M 66

3.3 Difference between IoT and M2M 67

3.4 SDN and NFV for IoT 693.4.1 Software Defined Networking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693.4.2 Network Function Virtualization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

4 IoT System Management with NETCONF-YANG . . . . . . . . . . . . . 79

4.1 Need for IoT Systems Management 80

4.2 Simple Network Management Protocol (SNMP) 814.2.1 Limitations of SNMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

4.3 Network Operator Requirements 82

4.4 NETCONF 83

4.5 YANG 84

4.6 IoT Systems Management with NETCONF-YANG 914.6.1 NETOPEER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

II DEVELOPING INTERNET OF THINGS 97

5 IoT Platforms Design Methodology . . . . . . . . . . . . . . . . . . . . . . . . . 99

5.1 Introduction 100

5.2 IoT Design Methodology 1005.2.1 Step 1: Purpose & Requirements Specification . . . . . . . . . . . . . . . . . . . . . . 1005.2.2 Step 2: Process Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1015.2.3 Step 3: Domain Model Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1025.2.4 Step 4: Information Model Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1035.2.5 Step 5: Service Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1035.2.6 Step 6: IoT Level Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1055.2.7 Step 7: Functional View Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1065.2.8 Step 8: Operational View Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1095.2.9 Step 9: Device & Component Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . 1115.2.10 Step 10: Application Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

Page 4: Contents · Contents I INTRODUCTION & CONCEPTS 17 1 Introduction to Internet of Things.....19 1.1 Introduction20 1.1.1 Definition & Characteristics of IoT ...

5.3 Case Study on IoT System for Weather Monitoring 111

5.4 Motivation for Using Python 115

6 IoT Systems - Logical Design using Python . . . . . . . . . . . . . . . . 121

6.1 Introduction 122

6.2 Installing Python 123

6.3 Python Data Types & Data Structures 1236.3.1 Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1236.3.2 Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1256.3.3 Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1266.3.4 Tuples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1276.3.5 Dictionaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1286.3.6 Type Conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

6.4 Control Flow 1296.4.1 if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1296.4.2 for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1306.4.3 while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1316.4.4 range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1316.4.5 break/continue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1316.4.6 pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

6.5 Functions 132

6.6 Modules 135

6.7 Packages 137

6.8 File Handling 138

6.9 Date/Time Operations 140

6.10 Classes 141

6.11 Python Packages of Interest for IoT 1446.11.1 JSON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1446.11.2 XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1456.11.3 HTTPLib & URLLib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1476.11.4 SMTPLib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

7 IoT Physical Devices & Endpoints . . . . . . . . . . . . . . . . . . . . . . . . 153

7.1 What is an IoT Device 1547.1.1 Basic building blocks of an IoT Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

7.2 Exemplary Device: Raspberry Pi 155

7.3 About the Board 155

7.4 Linux on Raspberry Pi 156

Page 5: Contents · Contents I INTRODUCTION & CONCEPTS 17 1 Introduction to Internet of Things.....19 1.1 Introduction20 1.1.1 Definition & Characteristics of IoT ...

7.5 Raspberry Pi Interfaces 1627.5.1 Serial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1627.5.2 SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1627.5.3 I2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

7.6 Programming Raspberry Pi with Python 1627.6.1 Controlling LED with Raspberry Pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1627.6.2 Interfacing an LED and Switch with Raspberry Pi . . . . . . . . . . . . . . . . . . . . . 1647.6.3 Interfacing a Light Sensor (LDR) with Raspberry Pi . . . . . . . . . . . . . . . . . . . 166

7.7 Other IoT Devices 1677.7.1 pcDuino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1677.7.2 BeagleBone Black . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1687.7.3 Cubieboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168

8 IoT Physical Servers & Cloud Offerings . . . . . . . . . . . . . . . . . . . 171

8.1 Introduction to Cloud Storage Models & Communication APIs 172

8.2 WAMP - AutoBahn for IoT 172

8.3 Xively Cloud for IoT 176

8.4 Python Web Application Framework - Django 1798.4.1 Django Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1808.4.2 Starting Development with Django . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180

8.5 Designing a RESTful Web API 188

8.6 Amazon Web Services for IoT 1938.6.1 Amazon EC2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1938.6.2 Amazon AutoScaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1968.6.3 Amazon S3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1998.6.4 Amazon RDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1998.6.5 Amazon DynamoDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2028.6.6 Amazon Kinesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2048.6.7 Amazon SQS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2068.6.8 Amazon EMR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

8.7 SkyNet IoT Messaging Platform 211

9 Case Studies Illustrating IoT Design . . . . . . . . . . . . . . . . . . . . . . 217

9.1 Introduction 218

9.2 Home Automation 2189.2.1 Smart Lighting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2189.2.2 Home Intrusion Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226

9.3 Cities 2379.3.1 Smart Parking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237

Page 6: Contents · Contents I INTRODUCTION & CONCEPTS 17 1 Introduction to Internet of Things.....19 1.1 Introduction20 1.1.1 Definition & Characteristics of IoT ...

9.4 Environment 2479.4.1 Weather Monitoring System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479.4.2 Weather Reporting Bot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2639.4.3 Air Pollution Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2669.4.4 Forest Fire Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270

9.5 Agriculture 2759.5.1 Smart Irrigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275

9.6 Productivity Applications 2789.6.1 IoT Printer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278

III ADVANCED TOPICS 283

10 Data Analytics for IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285

10.1 Introduction 286

10.2 Apache Hadoop 29210.2.1 MapReduce Programming Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29210.2.2 Hadoop MapReduce Job Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29210.2.3 MapReduce Job Execution Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29410.2.4 Hadoop Cluster Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295

10.3 Using Hadoop MapReduce for Batch Data Analysis 30110.3.1 Hadoop YARN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303

10.4 Apache Oozie 31110.4.1 Setting up Oozie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31110.4.2 Oozie Workflows for IoT Data Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312

10.5 Apache Spark 320

10.6 Apache Storm 32510.6.1 Setting up a Storm Cluster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326

10.7 Using Apache Storm for Real-time Data Analysis 33010.7.1 REST-based approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33010.7.2 WebSocket-based approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337

10.8 Structural Health Monitoring Case Study 342

11 Tools for IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351

11.1 Introduction 352

11.2 Chef 35211.2.1 Setting up Chef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354

Page 7: Contents · Contents I INTRODUCTION & CONCEPTS 17 1 Introduction to Internet of Things.....19 1.1 Introduction20 1.1.1 Definition & Characteristics of IoT ...

11.3 Chef Case Studies 35511.3.1 Multi-tier Application Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35511.3.2 Hadoop Cluster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36011.3.3 Storm Cluster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368

11.4 Puppet 372

11.5 Puppet Case Study - Multi-tier Deployment 374

11.6 NETCONF-YANG Case Studies 37711.6.1 Steps for IoT device Management with NETCONF-YANG . . . . . . . . . . . . . . . 37811.6.2 Managing Smart Irrigation IoT System with NETCONF-YANG . . . . . . . . . . . 37911.6.3 Managing Home Intrusion Detection IoT System with NETCONF-YANG . . . . 392

11.7 IoT Code Generator 405

Appendix-A - Setting up Raspberry Pi . . . . . . . . . . . . . . . . . . . . 413

Appendix-B - Setting up Ubuntu VM . . . . . . . . . . . . . . . . . . . . . . 419

Appendix-C - Setting up Django . . . . . . . . . . . . . . . . . . . . . . . . . 432

Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441


Top Related