Skip to content
Eli Yu edited this page Dec 4, 2020 · 4 revisions

Introduction

Welcome to the smart-cube-prototype wiki!

This project was originated as the course project of "Georgia Tech ECE 4180 Embedded System Design" with a single-person team.

Team member:

  • YU, Zhihao (Section A)
    GTID# 903160158

Project Brief

The goal of the project is to make a cube-shaped smart home IoT device with various functionalities, with six panels of the cube each performing different functions/purposes.

The functions achieved SO FAR are:

  • FRONT Panel: color uLCD display for a digital clock with tiem pulled from SNTP service.
  • BACK Panel: power switch and battery charging port.
  • LEFT Panel: smart home device switches and status indicator LEDs (currently 4 sets).
  • HIDDEN Control Board: core functions including the embedded controller and IMU.

The functions TO BE DEVELOPED are:

  • RIGHT Panel: smart home scene trigger with touch sensors (4 scenes expected)
  • TOP Panel: potential easy-to-access buttons/touch sensors (and possibly TTS speaker mounted)
  • BUZZER: a small buzzer attached to control board or back panel for simple notification sound and possible alarm functions.
  • SPEAKER: a speaker capable of TTS audio that could be integrated in the future, might be placed on TOP panel.

Realization Method Brief

The project is realized with a mbed LPC1768 controller and a ESP32 board inside the “cube”. The “smart home” service is a “Home Assistant” running on my home LINUX server, with MQTT server integrated. The mbed board is loaded with code to interfacing with all the input and output devices on the cube, and communicate with the ESP32 board through UART interface. The ESP32 board is loaded with ESPHome firmware to provide necessary network services(like SNTP) to the mbed board through UART, and interact with “Home Assistant” smart home server through native API/MQTT service.

Reference

  • Project skeleton idea inspired by product "Aqara Cube"
  • Internet clock idea inspired by Mbed 2 project "ESP8266-NTP-Test" by Paul Staron (Only inspiration, actual implemented method is different by using ESP32 directly pulling SNTP time and then send to Mbed through UART)
  • ESP32 firmware and code using ESPHome system.
  • Mbed code interacting with LSM9DS1 IMU is based on the Mbed2 library LSM9DS1_Library_cal by James Hamblen
  • Mbed code interacting with uLCD-144-G2 LCD is based on the Mbed2 library 4DGL-uLCD-SE by James Hamblen
Clone this wiki locally