Your task

In this tutorial, you assume the role of a full-stack developer tasked to automate the thermostat functions of a meeting room to conserve energy. To accomplish this, you use the M5Stack Core2 for AWS IoT Kit device as the thermostat, or HVAC controller, and deploy an end-to-end solution that is integrated with AWS.

The solution should recognize when employees are present in the room and engage the HVAC to deliver comfortable temperatures. The thermostat should use a narrow range of temperatures when employees occupy the room to maximize their comfort. When the room is not occupied, however, a wider range of temperatures is permitted to save energy.

Solution overview

Instead of using cameras to detect when the room is occupied, this solution minimizes cost by using the device’s microphone to sample noise in the room. You will capture the ambient noise level from the microphone and the room temperature from the device’s sensors. Then you publish these values to AWS.

Your AWS serverless solution converts the noise level into a boolean expression (true or false) and uses that to determine whether the room is occupied. The room is considered occupied when the noise level exceeds a predefined threshold.

While the room is occupied and the measured temperature exceeds the comfort threshold, the serverless solution sends a command to the device to begin heating or cooling. When the temperature is then measured to be within threshold, the serverless solution sends a command to the device to resume standby mode.

Solution architecture

Smart thermostat solution architecture

Notes from the Smart thermostat end-to-end workflow illustration

Now that you understand the scenario and have an overview of the solution, let’s continue with the Data acquisition lesson.

Questions? Please use M5Stack Forum

AWS IoT Kit now features direct access to M5Stack Forum , which is a community-driven, questions-and-answers service. Search re:Post using the Core2 for AWS tag to see if your question has been asked and answered. If not, ask a new question using the Core2 for AWS tag.