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-to-machine 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.