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 o Using REST API
o Using MQTT
o Can you use both? Why and when?
Requirements for each mode
o Circuit specific
o Firmware specific
How to incorporate them in hardware
o Circuit specific
o 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
o The concept
o Block diagram
o Key ideas and things to work on
o Potential applications
Smart street lamps
o The concept
o Block diagram
o Key ideas and things to work on
o Potential applications
Council garbage collection management
o The concept
o Block diagram
o Key ideas and things to work on
o Potential applications
Datacenter climate control
o The concept
o Block diagram
o Key ideas and things to work on
o Potential applications
People counter for Covid-19 gathering compliance in shops & stores
o The concept
o Block diagram
o Key ideas and things to work on
o 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