This is a full-stack project designed for a team with skills in electronics, server security and software engineering (including API development).
The implementation will consist of three key parts:
- A "home hub" that contains the core business logic and handles the communications between the sensors/actuators and the UI. This could be a small computer running Linux (such as a Raspberry Pi) or a powerful microcontroller.
- Some sensors and actuators that communicate with the hub. Each will need its own microcontroller and you will need to decide how it will wirelessly communicate with the hub.
- Some form of UI that the homeowners can interact with. Will this be a web page, app or both?
Whilst you can add your own features (as a result of your group brainstorm) here is a list to get you started:
- When it gets dark there should be an outside light triggered when someone approaches the house. Once it is triggered it should stay on for a specified number of minutes. There should be an override option to disable the automatic light.
- When the temperature of a room becomes too high the system should check to see if the outside temperature is lower and, if it is, the system should open the window.
- There should be a smart doorbell. When it is pressed it should let the user know but only in a room currently occupied.
- If the temperature in a room drop below a defined threshold the heater should be turned on.
- The lights should automatically turn on if the system detects someone is in the room and the ambient light levels are below a set threshold.
- All the sensor data should be logged to a central system.
- It should be possible to see graphs of the selected sensor data.
- The system should include an interior light and an exterior light for people approaching the front door.
- Each light should be independently controlled.
- The lights should not come on automatically unless the natural lighting levels are too low.
- The threshold should be set by the user and this can differ for different lights.
- The light should switch off if no movement is detected for 10min by default but this interval should be user definable.
- The user should be able to override the indoor light system and switch the lights on and off using a light switch (push button).
- The system should keep a record of when the outdoor light is triggered, to include the date/time when it switched on and off.