▶Book Description
The Internet of Things (IoT) is the fastest growing technology market. Industries are embracing IoT technologies to improve operational expenses, product life, and people's well-being. Mastering Internet of Things starts by presenting IoT fundamentals and the smart city. You will learn the important technologies and protocols that are used for the Internet of Things, their features, corresponding security implications, and practical examples on how to use them. This book focuses on creating applications and services for the Internet of Things. Further, you will learn to create applications and services for the Internet of Things. You will be discover various interesting projects and understand how to publish sensor data, control devices, and react to asynchronous events using the XMPP protocol. The book also introduces chat, to interact with your devices. You will learn how to automate your tasks by using Internet of Things Service Platforms as the base for an application. You will understand the subject of privacy, requirements they should be familiar with, and how to avoid violating any of the important new regulations being introduced.
At the end of the book, you will have mastered creating open, interoperable and secure networks of things, protecting the privacy and integrity of your users and their information.
▶What You Will Learn
- Create your own project, run and debug it
- Master different communication patterns using the MQTT, HTTP, CoAP, LWM2M and XMPP protocols
- Build trust-based as hoc networks for open, secure and interoperable communication
- Explore the IoT Service Platform
- Manage the entire product life cycle of devices
- Understand and set up the security and privacy features required for your system
- Master interoperability, and how it is solved in the realms of HTTP,CoAP, LWM2M and XMPP
▶Key Features
- Design and implement state-of-the-art solutions for the Internet of Things
- Build complex projects using motions detectors, controllers, sensors, and Raspberry Pi 3
- A hands-on guide that provides interoperable solutions for sensors, actuators, and controllers
▶Who This Book Is For
This book is for students, developers, or electronics engineers who want an introduction to the Internet of Things, or for professionals who want to deepen their understanding and explore the possibilities of different technologies for the Internet of Things and the Smart City. With only a rudimentary understanding of electronics (high school level), Raspberry Pi or similar credit-card-sized computers, and some programming experience using managed code such as C# or Java or object-oriented languages such as C++, you will be taught to develop state-of-the-art solutions for the Internet of Things in an instant.
▶What this book covers
- Chapter 1, Preparing Our First Raspberry Pi Project, introduces you to development for Raspberry Pi. You’ll get an introduction to the Raspberry Pi and peripherals and how to prepare, start, and administer your device. You’ll learn how to develop, compile, run, deploy, and test your application on your device.
- Chapter 2, Creating a Sensor to Measure Ambient Light, shows you how to create a basic sensor firmware application for your device. This includes sampling, error correction, management of physical quantities, basic statistics, and data persistence.
- Chapter 3, Creating an Actuator for Controlling Illumination, focuses on how to create a basic actuator firmware application. You’ll learn how to define control parameters, use relays to control equipment, persist control states, and log important control events.
- Chapter 4, Publishing Information Using MQTT, presents a simple way to publish your information on the internet. It introduces you to the MQTT protocol, the Publish/Subscribe communication pattern, how to connect to a broker, publish information, and subscribe to information. You’ll learn to test and troubleshoot your communication and consider basic security issues.
- Chapter 5, Publishing Data Using HTTP, introduces you to the HTTP protocol and the Request/Response communication pattern. This includes locating resources on the internet and basic protocol semantics. You’ll also learn how to publish machine-readable web service interfaces and the fundamentals of encryption.
- Chapter 6, Creating Web Pages for Your Devices, continues by focusing on human interfaces for your devices, and how they can be used to monitor and interact with them. You’ll learn how to publish file-based content how to use Markdown to publish human-readable web content, how to interact with backend web services from JavaScript. You will also learn how to perform basic authentication using login pages and Java Web Tokens (JWT).
- Chapter 7, Communicating More Efficiently Using CoAP, shows you how to create interfaces for resource-constrained devices. You’ll get an introduction to the CoAP protocol, how security is performed, how content is encoded, how data is published, and how to respond to control actions. You’ll be introduced to a new Communication Pattern, the Event Subscription, and the Observe pattern. You’ll learn how to test your CoAP-enabled devices and how to secure them using encryption.
- Chapter 8, Interoperability, introduces the concept of application-level interoperability and how standardized technologies can help us in our work. You’ll be introduced to Constrained RESTful Environments (CoRE), the Light-weight Machine-to-Machine (LWM2M) enabler , and a standardized object model for the management of devices based on CoAP and CoRE. IPSO Smart Objects, a set of standardized object interfaces for sensors and actuators, will also be presented.
- Chapter 9, Social Interaction with Your Devices Using XMPP, begins a series of chapters introducing a more advanced paradigm of communication with devices that will allow us to do much more interesting things with them in a more secure and interoperable, yet flexible manner. This chapter introduces the XMPP protocol and the basics of XMPP extensions. It introduces a trust-based model for communication and security in a social context. The chapter shows how the Request/Response, Event Subscription, and Publish/Subscribe patterns can be used in XMPP. It also shows how to build human-tomachine chat interfaces.
- Chapter 10, The Controller, introduces a new type of device, the controller. It presents a way to register and discover things on the internet using Thing Registries. It will subscribe to data from sensors it finds and accepts and send control operation commands to appropriate actuators it finds and accepts.
- Chapter 11, Product Life Cycle, highlights that managing devices in an IoT infrastructure is more complicated than just installing devices, finding them, and starting to communicate with them. You need to manage the devices over their entire life cycle. You also need to consider operating costs, without compromising on the security and integrity of the data and people involved. This chapter introduces a method of provisioning that takes all these aspects into account. It defines the concept of ownership of data, and how owners can claim their devices. It presents a decision support extension to XMPP that helps devices determine
who can be their friends and who can do what with them, based on the wishes of their owners.
- Chapter 12, Concentrators and Bridges, presents a method to encapsulate virtual devices inside one communicating entity called a concentrator seamlessly, as if they were standalone devices on the network. The same technique used to model embedded devices can be used to bridge between protocol islands, either using the same or different types of communication protocols, or to integrate backend systems into the network. You’ll learn to create a concentrator embedding both your sensor and actuator functionality into one single physical device. You’ll also learn how you can interact with these embedded devices and how they can be provisioned just as if they were standalone devices.
- Chapter 13, Using an Internet of Things Service Platform, shows how an IoT Service Platform can help you with many of the repetitive tasks required to create a successful IoT application. It introduces the IoT Gateway project, its architecture and hardware abstraction layer, security infrastructure, and its management interfaces. You’ll learn how to create services running on the IoT Gateway, how to use its databases for persistence, how to interface things, and use its hosting environment.
- Chapter 14, IoT Harmonization, introduces a standardization effort to harmonize the wide range of technologies used in the field of Internet of Things, with the goal of creating an infrastructure for the Smart City. It reviews the vision of a Smart City and identifies the main driving forces and requirements for reaching the vision. The chapter gives an overview of the required new standards and new business roles.
- Chapter 15, Security for the Internet of Things, motivates the reader to add security for the Internet of Things from the beginning, integrating it into the fabric of the design and architecture, and not adding it later, as an add-on, in case it is needed. It provides a general introduction to the problem, reviews common attack surfaces, and presents some common counter measures.
- Chapter 16, Privacy, introduces privacy, and why it matters. It presents new modern privacy legislation, and how technology presented in this book can be used to protect the privacy.