Table of Contents
Chapter 1: So… You Want to Build Your Own!
· The Background of IoT and Our Focus
· How Many Platforms Are Out There?
· Platforms Supporting Network Servicing
· Platforms Sitting Between Networks and Applications
· Application-Layer Development Platforms
· What Should a Good IoT Platform Have?
· Why Should You Build Your Own IoT Platform?
· Summary
Chapter 2: The Building Blocks of an IoT Solution
· The Functional Blocks of an IoT Solution
· The Detailed Block Diagram of an IoT Platform
· Is Everything from this Block Architecture Mandatory?
· What Is the Proposed Approach?
· Summary
Chapter 3: The Essentials for Building Your Own Platform
· Deciding Cloud Instance Specifics
· Additional Specifications
· Where Do We Get this Cloud Instance?
· What About Our Own Machine?
· Expanding on the IoT Platform Block Diagram
· Edge Interface, Message Broker, and Message Bus
· Message Router and Communications Management
· Time-Series Storage and Data Management
· REST API Interface
· Microservices
· Rule Engine
· Device Manager and Application Manager
· Our Own IoT Platform Block Diagram
· Summary
Chapter 4: Let’s Create Our Platform Wish List
· Connecting with the Platform in Real Time
· Using MQTT as the Message Broker
· How Do We Want to Store the Data?
· Data Storage Schema
· Accessing Platform Resources Through APIs
· Data Accessing APIs
· Elementary Microservices and Utilities
· Routing and Filtering Data and Messages
· Updated Block Diagram of Our IoT Platform
· Summary
Chapter 5: Here We Go!
· Initializing the Cloud Instance
· Register and Create
· Choosing an Operating System Image
· Choosing the Size
· Choosing a Datacenter Region
· Finalizing and Creating the Instance
· Connecting to Our Cloud Instance
· Installing Basic Software Stacks
· Installing Apache
· Installing MySQL
· Installing PHP
· Securing the Instance and Software
· It’s Easier with a Domain Name
· Add Virtual Hosts to Our Web Server
· Installing SSL Certificates
· Installing Node.js and Node-RED
· Modifying Node-RED Settings
· Securing our Node-RED Editor
· Summary
Chapter 6: The Message Broker
· What Is MQTT?
· Publish and Subscribe Paradigm
· Other Features of a Message Broker and MQTT
· Quality of Service
· Keep Alive Period
· Last Will and Testament
· The Retained Message
· The Best Part: WebSocket
· Are We Using the Best Message Broker Option?
· When to Utilize a Message Broker and When Not To
· Installing a Message Broker
· Securing a Message Broker
· Summary
Chapter 7: Building the Critical Components
· Creating a Time-Series Core Database
· Installing Required Nodes in Node-RED
· Creating First Flow for Our Platform
· Adding MQTT Publish Capability
· REST API Message Publisher
· Creating the Database Listener
· REST API Message Retriever
· Verifying that Everything Is Working as Expected
· Running Node-RED in the Background Continuously
· Summary
Chapter 8: Configuring the Message Broker
· The Difference Between WebSocket and Normal MQTT
· Why Is WebSocket Important?
· Adding WebSocket to Our MQTT Configuration
· Testing WebSocket
· Let’s Add User Access Controls
· Let’s Check If This Is Working
· Using the Forever Tool with the Message Broker
· Summary
Chapter 9: Creating a REST Interface
· Data Access APIs
· Adding Time-Based Filters
· Data Deletion APIs
· Removing Data Records Completely
· Adding Microservices to the Platform
· Getting the Current Timestamp
· Random Code Generator
· Adding New Modules to Node-RED
· UUID Generator
· Email and Text Message Microservice APIs
· Configuration of Nodes
· SMS Sending Utility
· Email-Sending Utility
· Summary
Chapter 10: Rule Engine and Authentication
· Start with the Rule Engine Logic
· Creating a Database
· Building the Flow Sequence
· Testing the Rule Engine
· Rule Management APIs
· Enable and Disable a Specific Rule
· Enable and Disable All Rules
· Create a New Rule
· Building Another Rule Engine with Node-RED
· Adding Authentication to the Data API
· What Are Our Options?
· What Is the Plan?
· Adding Authentication Middleware
· Enable and Test Authentication
· Our Core Platform Is Ready Now
· Summary
Chapter 11: Documentation and Testing
· Preparing a Valid OpenAPI Specification Document
· Platform API Specification File Explained
· Preparing Distribution Package for Final Upload
· Upload API Docs and Make It Live
· Authorize and Test API
· Summary
Chapter 12: Connecting Your Hardware
· Why learn hardware alongwith IoT platform?
· Available hardware options
· Creating bespoke designs
· Choosing the best option for your project
· Connectivity options and suitability for project
· Various topologies and arrangements
§ The “why” behind each topology and arrangement
· Connecting our hardware to the platform
§ Two possible modes
• Using REST API
• Using MQTT
• Can you use both? Why and when?
§ Requirements for each mode
• Circuit specific
• Firmware specific
§ How to incorporate them in hardware
• Circuit specific
• Firmware specific
· Other considerations for connecting the hardware
· Summary
Chapter 13: Let's Build a Better Mousetrap
· Backstory of better mousetrap case study
§ How I got this opportunity
§ What does “better” mean?
§ How I decided to approach this problem
§ Importance of top-down approach
· System architecture
§ High level system design process
§ Block diagram and explanation
· Hardware selection
§ What are different scenarios
§ What are potential options
§ What is on our shortlist
· Connectivity choice
§ What are different scenarios
§ What are potential options
§ What is on our shortlist
· Front-end application
§ What are different scenarios
§ What are potential options
§ What is on our shortlist
· Hardware arrangement
§ Hardware construction (overview)
§ How it works
§ Testing the hardware
· Backend buildup on the platform
§ What additions we need on the platform side
§ How to build them (details)
§ Testing the backend
· Dashboard for visualization
§ Building a basic dashboard
§ How to pool the data
· Additional services I built in the mousetrap application
§ Workflow for CRM
§ Client alert mechanism
§ Operator Scheduling
§ Compliance reporting
§ Machine learning provision for intelligent pest management
§ Other business benefits
· Project takeaways – real life and for you (as a reader)
· Summary
Chapter 14: Unlimited Possibilities
· What do I mean by unlimited possibilities?
· Why is this platform so capable?
· Five ideas you can work on
§ One button – based on my 1btn project
• The concept
• Block diagram
• Key ideas and things to work on
• Potential applications
§ Smart street lamps
• The concept
• Block diagram
• Key ideas and things to work on
• Potential applications
§ Council garbage collection management
• The concept
• Block diagram
• Key ideas and things to work on
• Potential applications
§ Datacenter climate control
• The concept
• Block diagram
• Key ideas and things to work on
• Potential applications
§ People counter for Covid-19 gathering compliance in shops & stores
• The concept
• Block diagram
• Key ideas and things to work on
• Potential applications
· Summary
Chapter 15: What We Built and the Takeaways
· Increasing Security for the Cloud Instance
· What About SQL Injection Through APIs?
· Should We Have Used MongoDB Instead of MySQL?
· Some Experts Might Still Try to Talk You Out of This
· How Is Our Platform Different from AWS, Google, and Azure?
· There Is a New Version of MQTT
· My Platform Is Ready. Now What?
· The Next Big Thing
· If You Need to Find More Resources
· Finally