
Abstract
As Internet of Things technology seeps into and interconnects everyday objects, a clear need has arisen for comprehensively integrated devices that provide seamless and intuitive handling for end-users. We approach this problem through a “Smart Home” project consisting of an iOS app providing voice and touch enabled user interfacing, a GoogleSript enabled cloud database, a heating and cooling setup that emulates HVAC in a house, a WiFi enabled lamp with notification alerts, and a central control unit that controls the HVAC, detects motion and displays current status of devices.
Schematics

Technical Features
Our components utilize 4 out of the 8 subsystems outlined in the project evaluation form: Parallel Input/Output, Pulse Width Modulation, Serial Communication Interface, Maskable Interrupts as well as On-Chip WiFi, 1-Wire Protocol and an iOS app. We utilized parallel Input/Output to control GPIO pins as output to control the relays, which turn the hairdryers on/off in heating and cooling modes. The Pulse Width Modulation was utilized to control the RGB Light Emitting Diode in order to display different colors. Serial UART was utilized to communicate data between the Arduino UNO microcontroller and the NodeMCU. The NodeMCU has a WiFi enabled chip so that it can read/write to a GoogleScript enabled database, and output the relevant information to the UNO, which then displays it through a LCD shield. A separate WiFi enabled NodeMCU was utilized to read in notifications and control the RGB LED. ESP8266 WiFi chips were used along with Rest API’s to enable HTTP communication so that GoogleScript functions can be utilized to read/write to a central GoogleSheet. Maskable Interrupts were used to configure the photo interrupt sensor to detect motion and output the data to the Central Control Unit NodeMCU. A 1-Wire device communications bus system was used to record temperature data and interface it to the Central Control Unit NodeMCU. An iOS smartphone application was written in Swift xCode that allows user interfacing to all the devices.


Notification Lamp Circuit Schematic
Central Control Unit Circuit Schematic

Computer Aided Design
CAD models designed in SolidWorks
Plastic parts are all 3D printed in GATech
​







Notification Lamp
TFT Color LCD
Above is the lamp we created composed of a 3D CADded enclosure, a RGB LED, and a NodeMCU microcontroller. The lamp is intended for the user to set in a room of their choice but for purposes of this demonstrations is included within the the HVAC setup.
We first got the accurate measurements and drew an envisioned layout of our enclosure that will hold together the LED and NodeMCU as well as have orifices for the power supply. Then we used SolidWorks to draw the final design and create the .swg file to get printed from a 3D Printing Lab at Georgia Tech.
In this setup the WiFi-enabled NodeMCU reads the notification status from the Google Sheet and alerts accordingly by flashing the lights. We implemented the following alerts that can be set by the user beforehand: Normal Alert, Romantic Alert, and Emergency Alert.

The central control unit is composed of an Adafruit 2.8” LCD touch screen display, an Arduino Uno and an NodeMCU. The Arduino UNO controls the LCD, reads in the parameters stored in the cloud using serial communication (nodeMCU TX -> Arduino RX) with the WiFi enabled NodeMCU and then displays them through three pages that the user can scroll through using the touch screen capability. A tft touch screen library, and an Adafruit graphics library were utilized to achieve the following:



Google Scripts Web App


Github link for the codes: https://github.com/Smart-Home-Mechatronics







iOS Native APP Xcode Swift

CONTACT US
Georgia Institute of Technology, Mechatronics Lab, North Ave NW, Atlanta, GA 30332
arjun.ch@gatech.edu, mahmoud@gatech.edu, vishnuvardhan@gatech.edu, dlee383@gatech.edu
Arjun Chintapalli, Mahmoud Parto, Vishnu Busi Reddy, Daniel Lee




The nodeMCU is a low-cost wifi-enabled microcontroller with multiple capabilities, much like the Arduino or TI Launchpad. The nodeMCU was employed to gather data from the DS18B20 digital temperature sensor and HC-SR501 Passive Infrared (PIR) sensor.
The DS18B20 digital temperature sensor operates via one-wire protocol, allowing for easy data collection through the Arduino language (based off of C++).
The nodeMCU collects data from the PIR sensor through the enabling and implementation of an Interrupt Service Routine (ISR). Interrupt handling is necessary because the lengths of time necessary for iterations through the main loop renders polling the PIR sensor useless. By introducing an ISR, the controller can exit the main loop to immediately grab the value outputted by the PIR sensor.
The nodeMCU then controls our HVAC simulator (hair dryer) with a relay module. The simulator has two modes of operation, heating and cooling, controlled by a switch connected to two wires. These two wires were then connected to the relay module such that the nodeMCU can effectively control the dryer mode of operation.
![]() | ![]() | ![]() | ![]() | ![]() |
---|---|---|---|---|
![]() | ![]() | ![]() | ![]() |