Smart Home
The Smart Home project is an Internet of Things (IoT) solution that will illustrate how sensors around a home can capture and send data to residents on a mobile app, either to alert them to an event that needs their attention or action, or for information. It will also show how appliances around the home can be controlled via signals sent from a mobile app.
Home owners can receive data on or send control signals from the mobile app from close proximity (when the resident is at home) using the Bluetooth Low Energy (BLE) protocol or remotely (when the resident is away from home) over the Internet using WiFi and MQTT protocols.
A Kitchen Sink Project
When learning computing technology, the most basic project is by convention a solution to display the phrase "Hello World". On the other end is what is referred to as a Kitchen Sink Project. The term comes from the English phrase "everything but the kitchen sink" which means almost everything one can think of.
Such projects are often an integration of individual small solutions used for learning or demonstrations.
This project uses many of the solutions covered in the Micro Circuits projects, and some other solutions, and shows how they can all be connected togther to provide a complete IoT solution.
Circuits
The solution will comprise of three circuits, each using one of the three most popular boards - Arduino Nano, Raspberry Pico, and ESP32 - with various modules and components distributed across them. The Arduino Nano and ESP32 will be programmed using the Arduino IDE and the Arduino C language while the Raspberry Pico will be programmed using the Thonny IDE and the microPython language.
Node-RED Platform
Node-RED is a low-code IoT Platform that can be used to exchange data between the circuits and the mobile app via the MQTT Broker without requiring the boards to have WiFi capabilities. The microcontroller code required for each of the boards is also simplifed. Node-RED can be run on any computer to which the circuits need to be connected using a standard USB cable. We will use the Raspberry Pi to run Node-RED.
Mobile App
While we will not cover how to develop the mobile app, you will learn how IoT Mobile Apps can be configured and how they function to display data from the sensors to the user and accept control signals from the user to send them to devices/appliances.
Solution Variants
The solution will have two variants:
-
The first variant will require more complex programming with inter-board communication using UART and LoRa between the Nano, Pico and the ESP32. The ESP32 will be programmed to connect to a WiFi network and to send data to the MQTT broker on the cloud over the Internet. The ESP32 will also be programmed to send data over BLE to the mobile app.
-
The second variant will have much simpler code with each board sending its data to the Node-RED low-code platform running on a Raspberry Pi which will be configured (with very simple code) to send data to the MQTT broker over WiFi. This variant will only exchange data with the mobile app via MQTT and not over BLE.
This is an illustration of the features of a Smart Home. The current project may not replicate this exactly but the concept will be the same.