Welcome to Smart Home Application
The innovative home application is a low-cost IoT-enabled web application for:
- Monitoring temperature and humidity.
- Controlling a thermostat and a lighting system.
- Simulating power consumption, a simple security system, and others.
Quick link
- link of final video
- Updates History
- Final checkpoint
Project Home Portallink of video demo 1Checkpoint 2
Overview
- The IoT device uses two photoresistors and a humidity & temperature sensor (DHT11)
- The IoT device will transmit measurements to a web application so that users can monitor their homes. It will use a simulated clock for this project.
- The web application uses responsive design to allow users to view the application seamlessly on desktop, tablet, and mobile devices.
- The web application should have a navigation menu.
- The web application should use a responsive design to be viewable on desktops, tablets, and smartphones. The web application should have the index.html page to introduce your team and your project.
- The web application should have the
reference.htmlpage to list your third-party APIS, libraries, and code.
Updates
v2.0.1 12/09/2021
- Localhost
- Updated localhost GUI
- Updated loading values
- DASHBOARD
- catch error when no device found
- History chart
- weakup/bedtime mode for light
- AWS
- history model
- history router
- history REST API frame
- save a history record
- Particle
- varaible
- thermostat
- power consumption
v2.0.0 12/08/2021
- Particle
- add variables of ac/door/power
- if failed to read DHT, set value to 0
- initialize all variables
- DASHBOARD 2.0.0
- Read Temperature status
- Read Humidity status
- Read Door status
- Thermostat widget
- ac mode interface
- (auto mode)/off, off/Cool/Heat
- Smartlight widget
- smartlight animation
- write on/off smart light
- Power consumption widget
- AC/Heat widget
- Temp/Hum History widget
v1.11 12/07/2021
- Removed local serial from AWS
- Updated README
- DASHBOARD 2.0.0
- hidden Smart Light
- hidden CMD Status Data Output
- hidden Oline Communication
- changed to information part to modules
- changed to dynamic creation of widget
- weather_module(); - temperature_module() - get result from third party API - updates Highest/Lowest/Current Temperature - updates Weather Icon - updates Humidity - updates City and Zip - humidity_module() - doorstatus_module()
- Server site
- add get method for third party weather API
v1.10 11/28/2021
- Updated instruction of Webhook
- Removed local serial from Dashboard
- Added reading single variable for humidity, temperature, sensors
- Added remoting control of smart light and sensor value
- update Localhost for local serial communication
- update Readme.md
- fixed bugs
v1.09 11/27/2021
- AWS
- Client side web pages (do not need to support mobile devices for this checkpoint 2)
- Your interface should provide an instruction (e.g., show information regarding event name, URL, Request type, Form fields in Advanced Settings) for the user to create the corresponding webhook
- Door Sensor Status
- Humidity Status
- Temperature Status
- Client side web pages (do not need to support mobile devices for this checkpoint 2)
v1.08 11/26/2021
- Particle firmware
- Implement your firmware for the following things
- Get temperature and humidity using DHT 11
- Get values from two photoresistors
- Estimate door status
- A user can receive data from the device where the data should contain “time”, “temperature”, “humidity”, and “door status” - [x] Minimum requirements: By clicking a button, a user can see received data
- Implement your firmware for the following things
- Local host (node.js + serialport + your web-based GUI)
- Implement your web-based GUI and localhost server for the following things
- Display your measurement data for
- Temperature/Humidity from DHT 11
- Values from two photoresistors
- Door status
- Smart light brightness
- Display your measurement data for
- Implement your web-based GUI and localhost server for the following things
- AWS
- Client side web pages (do not need to support mobile devices for this checkpoint 2)
- A visualization/control interface
- A user can receive data from the device where the data should contain “time”, “temperature”, “humidity”, and “door status”
- Server side
- implement simulated clock for local serial
- A visualization/control interface
- Client side web pages (do not need to support mobile devices for this checkpoint 2)
v1.07 11/25/2021
- Particle firmware
- Implement your firmware for the following things
- Serial communication (i.e., localhost - device)
- your commands and command processing
- Cloud communication (i.e., AWS - device)
- your commands and command processing
- Adjust smart light brightness (i.e., manual/auto mode)
- Serial communication (i.e., localhost - device)
- Implement your firmware for the following things
- Local host (node.js + serialport + your web-based GUI)
- Implement your web-based GUI and localhost server for the following things
- Serial communication (connect/disconnect/device selection)
- Interface to adjust brightness of smart light (i.e., manual/auto mode)
- Implement your web-based GUI and localhost server for the following things
- AWS
-
Client side web pages (do not need to support mobile devices for this checkpoint 2) - [x] A user can issue a “ping” command to check whether the registered device is online or offline - [x] A user can issue a “publish” command to receive data (i.e., enable/disable “publish” mode)
- Server side
- Should implement simulated clock for Online publish
- Server side
-
v1.06 11/24/2021
- Account Creation and Management
- account.html/js
- A user should be able to update any of their account information, except email
- register at least one device with their account
- list registered devices
- Device registration interface
- A user should be able to add and
- remove devices (e.g., device ID and API key) in his/her account
- remove device from the list
- A user should be able to have more than one device
- A user should be able to update any of their account information, except email
- Server site: Implement routers to communicate
- device/add
- device/delete
- account.html/js
v1.05 11/23/2021
- Account Creation and Management
- account.html/js
- A user should be able to update any of their account information, except email
- update information
- delete account
- User are able to change Preference panel after Login
- clear Localstorage after register account
- A user should be able to update any of their account information, except email
- Server site: Implement routers to communicate
- user/update
- user/delete
- account.html/js
v1.04 11/22/2021
- Account Creation and Management
- Access to the web application should be controlled using token based authentication
- User create an account by using an email as the username and a strong password
- Client site
- Sign-up interface
- signup.js
- Sign-in interface
- login.js
- account.html/js
- review information
- A user should be able to update any of their account information, except email
- A user should be able to add their location using a zip code
- Sign-up interface
- Between AWS and clients
- use MongoDB for sign-up/sign-in/device registration
- Server site: Implement routers to communicate
- user/signup
- user/login
- user/update
- updatezip
- Removed unnecessary files
v1.03 11/21/2021
- Signup
- sign.css
- signup.html
- signup.js
- Login.html
- init login.js
v1.02 11/20/2021
- GitHub Pages
- removed unnecessary files
- Static index.html
- responsive design
- carousel image width
- separate navigation
- separate carousel
- responsive design
- Dynamic website
- changed engine of template from
pugtoswig - converted
index.htmlto different parts - extracted website frame to templates for all pages
- changed engine of template from
- Implementation of Https
- certificated 90-day SSL, expires on Feb 19,2022
- Initial Signup page
v1.01 11/11/2021
- GitHub Pages with template
- Changed
default.html - index.md
- updates.md
- Check point 2
- Changed
- Re-structure the project directories
- AWS (Home page)
- Localhost (Node.js + Serialport + Web-based GUI)
- Particle (Particle firmware)
- README.md
- README.txt for submission