Table of contents : Table of Contents About the Author About the Technical Reviewer Acknowledgments Introduction Chapter 1: Introduction to Raspberry Pi Raspberry Pi Inside the Raspberry Pi Board Hardware Requirements A Power Supply A microSD Card Mouse, Keyboard, and HDMI Cable Software Requirements How to Install the OS in an SD card First Time Boot Using raspi-config Headless Setup for the Pi Accessing the Remote Desktop Summary Chapter 2: Controlling Raspberry Pi GPIO Raspberry Pi GPIO Raspberry Pi Pin Numbering GPIO Programming Importing a Python Module Pin Scheme Declaration Pin Mode Declaration Outputs Inputs Delays Python Program: Blinking an LED PWM: LED Dimming GPIO Input: Button Using Interrupts Analog Input Automating Scripts and Tasks Summary Chapter 3: Getting Started with Web Automation Web-Based Home Automation Hardware Requirements Software Requirements What Is Flask? Installing Flask Creating a Simple Web Server Creating a Home Automation Web Server Understanding IoT Protocols MQTT (Message Queue Telemetry Transport) Subscribe and Publish Messages Topics MQTT Broker XMPP (Extensible Messaging and Presence Protocol) DDS (Data Distribution Service) Installing Mosquitto MQTT Broker Testing Mosquitto Broker Controlling GPIOs Using MQTT Summary Chapter 4: Mesh Networking Using ESP and RPi What Is Mesh Networking? How Does a Mesh Network Work? Types of Mesh Networks Mesh Networking Using ESP Modules About ESP Dev Modules Installing and Setup Arduino IDE Problem Statement ESP-MESH Hardware Requirements and Connection Diagram Coding and Testing Communication Between ESP-MESH and Raspberry Pi MQTT Communication Between ESP and Raspberry Pi Coding and Testing Cloud-Based MQTT Setup Blynk: An IoT Platform Local Blynk Server Setup on Raspberry Pi Blynk App Setup Coding and Testing Summary Chapter 5: Designing Smart Controller Circuits Component Selection Designing the Printed Circuit Board (PCB) Schematic Design Layout Design Gerber Generation Enclosure Design Relay Module Power Supply 5V SMPS Circuit Design WiFi-Enabled Smart Switch/Plug AC Fan and Bulb Dimmer Circuit Zero-Crossing Detection Method All-in-One Smart Switch Energy Monitoring Circuit Electric/Capacitive Switch Connections Sensor Connections Summary Chapter 6: Getting Started with Home Assistant Home Automation Platforms Installing Home Assistant Setting Up Home Assistant Installing Add-Ons Configuration.yaml Controlling Raspberry Pi GPIO Using Home Assistant Creating Automation in Home Assistant Controlling a Smart Switchboard Using Home Assistant ESPHome Creating an ESP Node YAML File for Smart Switchboard Flashing Binary File in the ESP Module ESPHome Automation ESP32-CAM Integration with Home Assistant ESPHome and ESP32-CAM Arduino IDE and ESP32-CAM Editing the Dashboard Home Assistant and MQTT Device Interfacing Summary Chapter 7: Getting Started with Voice Assistant What Is a Voice Assistant? How Does a Voice Assistant Work? Controlling the Raspberry Pi Using an Amazon Echo Speaker Controlling a Smart Switchboard Using an Amazon Echo Speaker Raspberry Pi Google Assistant and Alexa AlexaPi Setup and Installation Amazon Alexa and Home Assistant Integration Creating Custom Assistants with Platypush Troubleshooting the Audio Voice Automation Controlling the Assistant Programmatically Installing Offline Voice Assistants Setting Up and Installing the Almond Add-on Jasper: A Custom Offline Voice Assistant Choosing an STT and TTS Engine Speech to Text Engines Text to Speech Engines Configuring Jasper Using Jasper Creating Jasper Modules Controlling the ESP Module Using a Jasper MQTT Module Summary Chapter 8: Getting Started with OpenCV Computer Vision OpenCV Installing OpenCV OpenCV Basics Opening and Displaying an Image Capturing and Reading a Video File Image Transformations Color Spaces Door Locking Using Face Recognition Gathering Data Training the Recognizer Using Face Recognition Using Gesture Recognition Sensors Summary Conclusion Index