Team Members
Ebisan Ekperigin
Rahul Gupta
George Klimiashvili
Tinashe Marera
Clara Martinez Rubio
Supervisors
Jack G. Mottley, Daniel Phinney
Customers
Anyone who enjoys home automation, smart devices, IoT, or cool tech.
Description
MOTLEY (Main Organizing Terminal for Low Energy Usage) focuses on the creation of a Smart Home using a Raspberry Pi as the central device. Similar to the google home, we are able to control our in-house made and thoughtfully designed custom peripherals through the use of this Pi, granting our user the ability to remotely control various devices in their homes from their current location.
Software
Engineers: Clara Martinez Rubio, Rahul Gupta, Ebisan Ekperigin
On the software side of the project, we had two main tasks:
- Communicating between phone-and-RaspberryPi using a Flask web-app and REST-API
- Communicating between RaspberryPi-and-peripherals using the MQTT protocol
Communication between our peripherals and the central hub, a Raspberry Pi, was set up using MQTT protocol, a lightweight messaging protocol that provides 93 times faster communication than HTTP and much more reliable, since it is optimized for high latency and unreliable networks.
Using Flask, a micro web framework, we designed a web application that allows the user to change the state of our peripherals long range. Our web app incorporates a backend SQLite database where the user data is stored. The data is stored in time frames and days of the week for the system to learn the user habits. For example, on Mondays from 9am to 5pm you are usually at work so the lights are always off and the front door is locked. This data is learnt for future implementation of a recommendation feature that will help optimize energy efficiency and security as well as help simplify the user’s day-to-day activities all in one centralized user-friendly app. Based on your user analytics, the app pushes a notification to the user’s device “The lights are usually off during this time, would you like us to turn them off?”.
Using Flask, MQTT protocol and a SQLite Database, we were able to create a method of retrieving data from our Dht22 sensor located on our peripheral device.
Fig.1 Workflow of devices using MQTT
When a sensor is active and a temperature/humidity reading is produced we take readings every couple of seconds and the values are converted into a string and published to our json file in our specified folder. This way, our database is always up to date as it takes readings from the sensors. The contents are then parsed from the json file and inserted into our sqlite database which has an appropriate schema.
Hardware
Engineers: Tinashe Marera, George Klimiashvili
Our hardware consists of Smart Switch, Smart Sensors, and Smart Door Lock. All of these devices work with popular consumer and DIY Internet of Things (IoT) platforms such as Blynk, Adafruit IO, TheThings.IO, etc. Moreover, these devices work with our custom smart home app that uses Raspberry Pi as the central organizing station.
Smart Switch
We designed 2 versions of the smart switch: SmartSwitch and SmartSwitch Pro. The SmartSwitch is based on esp-01 WiFi module that uses esp8266 microchip. The SmartSwitch Pro is based on esp-12E (also known as NodeMCU) which uses the same esp8266 microchip. The SmartSwitch Pro also comes with the DHT22 temperature and humidity sensor, as well as, MQx air quality sensor. These microcontrollers can be easily programmed with Arduino IDE and thus can be easily used with most professional and DIY IoT platforms.