Internet of Things: A Hands-on Approach

Arshdeep Bahga and Vijay Madisetti

ISBN: 9788173719547 | Year: 2015 | Paperback | Pages: 520 | Language : English

Book Size: 216 x 280 mm | Territorial Rights: Restricted

Price: 995.00

About the Book

This book is written as a textbook for educational programs at colleges and universities. It can also be used by IoT (Internet of Things) vendors and service providers for training their program developers. The authors have used an immersive ‘hands on’ approach, similar to the one adopted in the companion book, Cloud Computing: A Hands-on Approach, to help readers gain expertise in developing working code for real-world IoT applications.

It is organised into three main parts. Part I covers the building blocks of Internet of Things (IoT) and their characteristics. Domain specific IoT and their real-world applications are described along with a generic design methodology and an IoT system management approach using NETCONF-YANG.  Part II introduces the reader to the programming aspects of IoT with a view to developing rapid prototypes of complex IoT applications. A primer on Python, the programming language used in this book, is included to bring readers to a common level of expertise. Packages, frameworks and cloud services including WAMP-AutoBahn, Xively cloud and Amazon Web Services that can be used to develop IoT systems are described. The Raspberry Pi device has been chosen for the examples in this book. Case studies with complete source code for various IoT domains such as home automation, smart environment, smart cities, logistics, retail, smart energy, smart agriculture, industrial control and smart health are described.  Part III introduces the reader to advanced topics in IoT, including IoT data analytics and tools for IoT.  Case studies on collecting and analyzing data generated by IoT in the cloud are described.

Contributors (Author(s), Editor(s), Translator(s), Illustrator(s) etc.)

Arshdeep Bahga is a research scientist at Georgia Institute of Technology. His research interests include cloud computing and big data analytics. He has authored several scientific publications in peer-reviewed journals in the areas of cloud computing and big data.

Vijay Madisetti is a professor of computer engineering at Georgia Institute of Technology. He is a Fellow of IEEE and has received the 2006 Terman Medal from the American Society of Engineering Education and HP Corporation.

Table of Content

I INTRODUCTION & CONCEPTS 
Introduction to Internet of Things 
1.1 Introduction 
1.1.1 Definition & Characteristics of IoT 
1.2 Physical Design of IoT 
1.2.1 Things in IoT 
1.2.2 IoT Protocols 
1.3 Logical Design of IoT 
1.3.1 IoT Functional Blocks 
1.3.2 IoT Communication Models 
1.3.3 IoT Communication APIs 
1.4 IoT Enabling Technologies 
1.4.1 Wireless Sensor Networks 
1.4.2 Cloud Computing 
1.4.3 Big Data Analytics 
1.4.4 Communication Protocols 
1.4.5 Embedded Systems 
1.5 IoT Levels & Deployment Templates 
1.5.1 IoT Level-1 
1.5.2 IoT Level-2 
1.5.3 IoT Level-3 
1.5.4 IoT Level-4 
1.5.5 IoT Level-5 
1.5.6 IoT Level-6 
Domain Specific IoTs 
2.1 Introduction 
2.2 Home Automation 
2.2.1 Smart Lighting 
2.2.2 Smart Appliances 
2.2.3 Intrusion Detection 
2.2.4 Smoke/Gas Detectors 
2.3 Cities 
2.3.1 Smart Parking 
2.3.2 Smart Lighting 
2.3.3 Smart Roads 
2.3.4 Structural Health Monitoring 
2.3.5 Surveillance 
2.3.6 Emergency Response 
2.4 Environment 
2.4.1 Weather Monitoring 
2.4.2 Air Pollution Monitoring 
2.4.3 Noise Pollution Monitoring 
2.4.4 Forest Fire Detection 
2.4.5 River Floods Detection 
2.5 Energy
2.5.1 Smart Grids 
2.5.2 Renewable Energy Systems 
2.5.3 Prognostics 
2.6 Retail
2.6.1 Inventory Management 
2.6.2 Smart Payments 
2.6.3 Smart Vending Machines 
2.7 Logistics 
2.7.1 Route Generation & Scheduling 
2.7.2 Fleet Tracking 
2.7.3 Shipment Monitoring 
2.7.4 Remote Vehicle Diagnostics 
2.8 Agriculture 
2.8.1 Smart Irrigation 
2.8.2 Green House Control 
2.9 Industry 
2.9.1 Machine Diagnosis & Prognosis 
2.9.2 Indoor Air Quality Monitoring 
2.10 Health & Lifestyle 
2.10.1 Health & Fitness Monitoring 
2.10.2 Wearable Electronics 
IoT and M2M 
3.1 Introduction
3.2 M2M 
3.3 Difference between IoT and M2M 
3.4 SDN and NFV for IoT 
3.4.1 Software Defined Networking 
3.4.2 Network Function Virtualization 
4 IoT System Management with NETCONF-YANG 
4.1 Need for IoT Systems Management 
4.2 Simple Network Management Protocol (SNMP) 
4.2.1 Limitations of SNMP 
4.3 Network Operator Requirements 
4.4 NETCONF 
4.5 YANG 
4.6 IoT Systems Management with NETCONF-YANG 
4.6.1 NETOPEER 
II DEVELOPING INTERNET OF THINGS 
IoT Platforms Design Methodology 
5.1 Introduction 
5.2 IoT Design Methodology
5.2.1 Step 1: Purpose & Requirements Specification 
5.2.2 Step 2: Process Specification 
5.2.3 Step 3: Domain Model Specification
5.2.4 Step 4: Information Model Specification 
5.2.5 Step 5: Service Specifications 
5.2.6 Step 6: IoT Level Specification
5.2.7 Step 7: Functional View Specification 
5.2.8 Step 8: Operational View Specification 
5.2.9 Step 9: Device & Component Integration 
5.2.10 Step 10: Application Development 
5.3 Case Study on IoT System for Weather Monitoring 
5.4 Motivation for Using Python 
IoT Systems - Logical Design using Python 
6.1 Introduction
6.2 Installing Python 
6.3 Python Data Types & Data Structures 
6.3.1 Numbers 
6.3.2 Strings 
6.3.3 Lists 
6.3.4 Tuples 
6.3.5 Dictionaries 
6.3.6 Type Conversions 
6.4 Control Flow 
6.4.1 if 
6.4.2 for 
6.4.3 while 
6.4.4 range 
6.4.5 break/continue 
6.4.6 pass 
6.5 Functions 
6.6 Modules 
6.7 Packages 
6.8 File Handling 
6.9 Date/Time Operations 
6.10 Classes 
6.11 Python Packages of Interest for IoT 
6.11.1 JSON 
6.11.2 XML 
6.11.3 HTTPLib & URLLib 
6.11.4 SMTPLib 
IoT Physical Devices & Endpoints 
7.1 What is an IoT Device 
7.1.1 Basic building blocks of an IoT Device 
7.2 Exemplary Device: Raspberry Pi
7.3 About the Board 
7.4 Linux on Raspberry Pi 
7.5 Raspberry Pi Interfaces 
7.5.1 Serial 
7.5.2 SPI 
7.5.3 I2C 
7.6 Programming Raspberry Pi with Python 
7.6.1 Controlling LED with Raspberry Pi 
7.6.2 Interfacing an LED and Switch with Raspberry Pi 
7.6.3 Interfacing a Light Sensor (LDR) with Raspberry Pi 
7.7 Other IoT Devices 
7.7.1 pcDuino 
7.7.2 BeagleBone Black 
7.7.3 Cubieboard 
IoT Physical Servers & Cloud Offerings 
8.1 Introduction to Cloud Storage Models & Communication APIs 
8.2 WAMP - AutoBahn for IoT 
8.3 Xively Cloud for IoT 
8.4 Python Web Application Framework - Django 
8.4.1 Django Architecture 
8.4.2 Starting Development with Django . 
8.5 Designing a RESTful Web API 
8.6 Amazon Web Services for IoT 
8.6.1 Amazon EC2 
8.6.2 Amazon AutoScaling 
8.6.3 Amazon S3 
8.6.4 Amazon RDS 
8.6.5 Amazon DynamoDB . 
8.6.6 Amazon Kinesis 
8.6.7 Amazon SQS 
8.6.8 Amazon EMR 
8.7 SkyNet IoT Messaging Platform 
Case Studies Illustrating IoT Design 
9.1 Introduction 
9.2 Home Automation 
9.2.1 Smart Lighting 
9.2.2 Home Intrusion Detection 
9.3 Cities 
9.3.1 Smart Parking 
9.4 Environment 
9.4.1 Weather Monitoring System 
9.4.2 Weather Reporting Bot 
9.4.3 Air Pollution Monitoring 
9.4.4 Forest Fire Detection 
9.5 Agriculture 
9.5.1 Smart Irrigation 
9.6 Productivity Applications 
9.6.1 IoT Printer 
III ADVANCED TOPICS 
10 Data Analytics for IoT 
10.1 Introduction 
10.2 Apache Hadoop 
10.2.1 MapReduce Programming Model 
10.2.2 Hadoop MapReduce Job Execution 
10.2.3 MapReduce Job Execution Workflow 
10.2.4 Hadoop Cluster Setup 
10.3 Using Hadoop MapReduce for Batch Data Analysis 
10.3.1 Hadoop YARN 
10.4 Apache Oozie 
10.4.1 Setting up Oozie 
10.4.2 Oozie Workflows for IoT Data Analysis 
10.5 Apache Spark 
10.6 Apache Storm 
10.6.1 Setting up a Storm Cluster 
10.7 Using Apache Storm for Real-time Data Analysis 
10.7.1 REST-based approach 
10.7.2 WebSocket-based approach 
10.8 Structural Health Monitoring Case Study 
11 Tools for IoT 
11.1 Introduction 
11.2 Chef 
11.2.1 Setting up Chef 
11.3 Chef Case Studies 
11.3.1 Multi-tier Application Deployment 
11.3.2 Hadoop Cluster 
11.3.3 Storm Cluster 
11.4 Puppet 
11.5 Puppet Case Study - Multi-tier Deployment 
11.6 NETCONF-YANG Case Studies 
11.6.1 Steps for IoT device Management with NETCONF-YANG 
11.6.2 Managing Smart Irrigation IoT System with NETCONF-YANG 
11.6.3 Managing Home Intrusion Detection IoT System with NETCONF-YANG 
11.7 IoT Code Generator 
Appendix-A - Setting up Raspberry Pi 
Appendix-B - Setting up Ubuntu VM 
Appendix-C - Setting up Django 
Bibliography 
Index

wives cheat open read

`