The Internet of Things is a trend, so you should take a look at the book \"A Practical Guide to the Internet of Things\". \"A Practical Guide to the Internet of Things\" starts with discussing popular Internet of Things protocols such as HTTP, UPnP, CoAP, MQTT, and XMPP, and introduces existing protocols, communication modes, architectures, and the importance of Internet of Things security from a practical perspective. This book is suitable for developers and engineers who are interested in the Internet of Things. Those who have a basic understanding of electronics, Raspberry Pi or card computers (high school level) and some experience in code hosting programming will quickly learn the current advanced Internet of Things solutions through this book. About the Author About the Technical Reviewer Introduction Chapter 1 IoT Project Preparation 1.1 Creating a Sensor Project 1.1.1 Preparing the Raspberry Pi 1.1.2 Clayster Library 1.1.3 Hardware 1.1.4 Interacting with Hardware 1.1.5 Hardware Interfaces 1.1.6 Internal Display of Sensor Values 1.1.7 Persistent Data 1.1.8 External Display of Sensor Values 1.1.9 Exporting Sensor Data 1.2 Creating Actuators 1.2.1 Hardware 1.2.2 Hardware Interfaces 1.3 Creating Controllers 1.3.1 Representing Sensor Values 1.3.2 Parsing Sensor Data 1.3.3 Computing Control States 1.4 Creating a Camera 1.4.1 Hardware 1.4.2 Accessing the Serial Port on the Raspberry Pi 1.4.3 Hardware Interfaces 1.4.4 Creating Persistent Default Settings 1.4.5 Adding Configurable Properties 1.4.6 Persisting the Device 1.4.7 Working with Current Settings 1.4.8 Initializing the Camera 1.5 Conclusion Chapter 2 HTTP 2.1 HTTP Basics2.2 Enabling HTTP Support for Sensors2.2.1 Setting up a Sensor-Based HTTP Server2.2.2 Installing an HTTPS Server on a Sensor2.2.3 Adding a Root Menu2.2.4 Displaying Measurement Information in an HTML Page2.2.5 Generating Graphs Dynamically2.2.6 Creating a Sensor Data Resource2.2.7 Interpreting a Readout Request2.2.8 Exporting Test Data2.2.9 User Authentication2.2.10 Adding Events for Enhanced Network Performance2.3 Adding HTTP-Supported Actuators2.3.1 Creating a Web Service Resource2.3.2 Accessing a Single Output2.3.3 Retrieving All Outputs2.3.4 Accessing Alarm Outputs2.3.5 Using Test Forms2.3.6 Accessing WSDL2.3.7 Using REST Web Service Interface 2.4 Add HTTP Support to the Controller 2.4.1 Subscribe to Events 2.4.2 Create Control Threads 2.4.3 Control Executors 2.5 Summary Chapter 3 UPnP Protocol 3.1 Introduction to UPnP 3.1.1 Provide Service Architecture 3.1.2 Documentation of Device and Service Capabilities 3.2 Create Device Description Documents 3.2.1 Select Device Type 3.2.2 More Friendly 3.2.3 Provide Identifiers for Devices 3.2.4 Add Icons 3.2.5 Add Indexes to Services 3.2.6 Provide a URL for Top-Level Web Page Display 3.3 Create a service description document 3.3.1 Add operations 3.3.2 Add state variables 3.3.3 Add a unique device name 3.4 Provide a web interface 3.5 Create a UPnP interface 3.5.1 Register UPnP resources 3.5.2 Replace placeholders 3.5.3 Add SSDP support 3.5.4 Notify the network 3.5.5 Respond to searches 3.6 Implement a still image service 3.6.1 Initialize event trigger state variables 3.6.2 Provide web service properties 3.6.3 Add service properties 3.6.4 Add actions 3.7 Use the camera 3.7.1 Set up UPnP 3.7.2 Discover devices and services 3.7.3 Subscribe to events 3.7.4 Receive events 3.7.5 Perform actions 3.8 Summary Chapter 4 CoAP 4.1 Generate HTTP binary files 4.1.1 Find development tools 4.2 Add CoAP to the sensor 4.2.1 Define the first CoAP resource 4.2.2 Manually trigger event notifications 4.2.3 Register data output resources 4.2.4 Return XML 4.2.5 Return JSON 4.2.6 Return Plain Text 4.2.7 Discover CoAP Resources 4.2.8 Test CoAP Resources 4.3 Add CoAP to Actuator 4.3.1 Define Simple Control Resources 4.3.2 Parse URLs in CoAP 4.3.3 Control Output with CoAP 4.4 Use CoAP in Controllers 4.4.1 Monitor observed resources 4.4.2 Receive notifications 4.4.3 Perform control operations 4.5 Summary Chapter 5 MQTT Protocol 5.1 Publish and subscribe 5.2 Add MQTT support to sensors 5.2.1 Control the life cycle of a thread 5.2.2 Mark important events 5.2.3 Connect to an MQTT server 5.2.4 Publish content 5.3 Add MQTT support to actuators 5.3.1 Initialize topic content 5.3.2 Subscribe to topics 5.3.3 Receive published content 5.3.4 Decode and parse content 5.4 Add MQTT support to controllers 5.4.1 Process events sent by sensors 5.4.2 Decode and parse sensor values 5.4.3 Subscribe to sensor events 5.4.4 Control actuators 5.5 Summary Chapter 6 XMPP 6.1 XMPP Basics6.1.1 Global Extensibility6.1.2 Providing Global Identification6.1.3 Authorized Communication6.1.4 Online Presence Awareness6.1.5 Communicating Using XML6.1.6 Communication Modes6.1.7 Extending XMPP 6.1.8 Connecting to a server 6.1.9 Additional security configuration 6.2 Adding XMPP support to objects 6.2.1 Connecting to an XMPP network 6.2.2 Monitoring connection status events 6.2.3 Notifying your friends 6.2.4 Handling HTTP requests outside of XMPP 6.3 Providing an additional layer of security 6.3.1 Configuration basics 6.3.2 Initializing the object registry interface 6.3.3 Registering an object 6.3.4 Updating a public object 6.3.5 Claiming an object 6.3.6 Removing an object from the registry 6.3.7 Disowning an object 6.3.8 Initializing the configuration server interface 6.3.9 Handling friendly referrals 6.3.10 Handling requests to remove unfriendly people 6.3.11 Searching for configuration servers 6.3.12 Providing registration information 6.3.13 Staying connected 6.3.14 Friendship negotiation 6.3.15 Handling existing subscription requests 6.3.16 Persistent interrupt negotiation 6.3.17 Adding XMPP support to sensors 6.3.1 8 Add the sensor\'s service interface 6.3.19 Update event subscriptions 6.3.20 Publish contracts 6.4 Add XMPP support for actuators 6.4.1 Add controller service interface 6.5 Add XMPP support for cameras 6.6 Add XMPP support for controllers 6.6.1 Set up the sensor client interface 6.6.2 Set up the controller client interface 6.6.3 Set up the camera client interface 6.6.4 Get camera images via XMPP 6.6.5 Identify equivalent functions 6.6.6 Respond to the same type 6.6.7 Detect rule changes 6.7 Concatenate all 6.8 Summary Chapter 7 Using the IoT Service Platform 7.1 Select an IoT Platform 7.1.1 Clayster Platform 7.1.2 Download Clayster Platform 7.1.3 Create a Service Project 7.1.4 Add References 7.1.5 Make a Clayster Module 7.1.6 Execute the Service 7.1.7 Use the Package Manifest 7.1.8 From Visual Studio Execution 7.1.9 Configure the Clayster system 7.1.10 Use the management tool 7.1.11 Browse data sources 7.2 Use XMPP to connect to our devices 7.2.1 Create classes for our sensors 7.2.2 Find good classes 7.2.3 Subscribe to sensor data 7.2.4 Interpret incoming sensor data 7.2.5 Create a class for our actuator 7.2.6 Custom control actions 7.2.7 Create a class for our camera 7.3 Create our control application 7.3.1 Understand rendering 7.3.2 Define application classes 7.3.3 Initialize controllers 7.3.4 Add control rules 7.3.5 Understand application indexes 7.3.6 Define brieflets 7.3.7 Display meters 7.3.8 Display binary signals 7.3.9 Push updates to clients 7.3.10 Finish the application 7.3.11 Configure the application 7.3.12 View the 10ft interface application 7.4 Summary Chapter 8 Create a protocol gateway 8.1 Understanding protocol bridging 8.2 Using abstract models 8.3 Clayster abstract model basics 8.3.1 Understanding editable data sources 8.3.2 Understanding editable objects 8.3.3 Using generic data sources 8.3.4 Overriding key properties and methods 8.3.5 Handling inter-device communication 8.4 Understanding the CoAP gateway architecture 8.5 Summary Chapter 9 Security and Interoperability 9.1 Understanding the risks 9.1.1 Reinventing the wheel, but upside down 9.1.2 Know your neighbors 9.2 Attack patterns 9.2.1 Denial of service 9.2.2 Guessing credentials 9.2.3 Accessing stored credentials 9.2 .4 Man-in-the-Middle 9.2.5 Sniffing Network Communications 9.2.6 Port Scanning and Web Crawling 9.2.7 Search Functions and Wildcards 9.2.8 Password Cracking 9.3 Tools for Implementing Security 9.3.1 Virtual Private Networks 9.3.2 X.509 Certificates and Encryption 9.3.3 Identity Authorization 9.3.4 Usernames and Passwords 9.3.5 Using Message Brokers and Configuration Servers 9.3.6 Centralization and Decentralization 9.4 The Need for Interoperability 9.4.1 Resolving Complexity 9.4.2 Reducing Costs 9.4.3 Enabling New Services and Reusing Devices 9.4.4 Combining Security and Interoperability 9.5 Summary
You Might Like
Recommended ContentMore
Open source project More
Popular Components
Searched by Users
Just Take a LookMore
Trending Downloads
Trending ArticlesMore