KIT317 Assignment 3

Hello, if you have any need, please feel free to consult us, this is my wechat: wx91due

KIT317 Assignment 3 2024

Assignment 3

Due: 11:59pm, Friday June 7th

Scenario

IoT devices collect data about the real world to help us make better decisions with that data. Raw data isn’t particularly helpful, so we analyse data to try it into more meaningful information. Sometimes we want to use this data not just to tell us about the past, but also to make inferences about the future.

In this assignment, we are going to use machine learning trained on historic weather data to make an inference about the future. You have been provided with a data set consisting of weather data for 5 sites. The data covers temperature, humidity and wind observations that were recorded every half hour for almost 6 years per site.

This data will be used to create a simple IoT enabled ‘light’ device that uses machine learning to predict what the days weather conditions should be and compare it against the current reading. This will consist of a simulated IoT hardware device (using the SenseHat emulator) and a server that runs the machine learning algorithms and offers more detailed information for the selected day.

Please note:

· The size of these data sets is quite large. The weather data is provided in xlsx format and will need to be cleaned up and converted to a suitable format before you can use it in your program – you should discard any data that you don’t need to reduce the amount of time it will take to train your models.

· The data set includes data from 2015 – 2021 inclusive, but 2021 does not contain the full year. Your predictions should be for the year 2022.

· While this project shares some similarities with the first assignment, this is a separate device and does not need to implement any of the functionality from that device.

Specification

Your IoT device should:

· Allow the user to input a date (day and month) and a site number, using the keys on the front of the device.

o Press the middle key to enter date entry mode. Press left and right to switch between day and month. Use scrolling text to indicate which mode you are in. Press up and down to change the day or month. Press the middle key to save the date and return to normal operation mode.

o Your date should also include 2022 as the year – this is the next year outside of the data set.

o Your site number indicates the location of the IoT device from among the 5 provided data sets.

· Send the date to your server and return the predicted minimum and maximum temperature, the predicted minimum and maximum humidity for the given date, and the name of the location as per the location ID.

o Print these predicted values and location name to the terminal.

· While in normal mode, if the date has been set and a prediction returned, the device should visualize whether the current temperature and humidity is within the predictions for this day.

o Press left and right to switch between temperature and humidity mode.

§ Indicate changes between these two modes using scrolling text.

o Change the colour of the screen to red if the current temperature/humidity is higher or lower than the prediction, and green if it is within the current temperature prediction mode.

o As the temperature changes on your sensehat, so should these visual indications.

§ Temperature and humidity measurements are local only and do not need to be sent to the server.

· All scrolling text messages should scroll quickly at 0.05 to reduce time taken to setup and use the device.

Your server should:

· Accept the date and location ID from the IoT device and store in an XML file for later access.

· Use machine learning to return a prediction to the IoT device.

o You should return a predicted maximum and minimum temperature and a maximum and minimum humidity.

o Your prediction should use PHP-ML to train a model based on the historic data (from the supplied data set) for the selected date.

§ Select an appropriate ML method and train it with the appropriate samples from the provided data sets to generate the above predictions.

· Your server should also provide a view that shows more information about the selected date. This information should be based on the data recorded in the data set.

o Using the last stored date, generate a graph (using CanvasJS) that shows the average temperatures for the selected date in half hour increments. Below the graph you should display the predicted minimum and maximum temperatures (for the whole day).

o Using the last stored date, generate a graph (using CanvasJS) that shows the average humidity for the selected date in half hour increments. Below the graph you should display the predicted minimum and maximum humidity (for the whole day).

o This should be rendered as two separate graphs, with a way to switch between the views.

o The locations name and the type of data shown should be included as the graph title.

Documentation:

· A diagram explaining how data flows in your system. (2 marks)

· Write a brief explanation (1 paragraph) explaining your choice of machine learning algorithm, the training data you needed to supply it, and any steps you had to take to sample that data from the data sets. (2 marks)

· Comment on the accuracy of the predictions that your system returns, and what could be done to improve them. (1 paragraph) (2 marks)

Demonstration 2 marks

Along with your code (zipped), you should record a quick video that demonstrates your system. Your video should be a screen recording, whereby you demonstrate your virtual machine environment, showing off all the features of your webserver running in a browser. In your video, you should talk through the features as you demonstrate them to the marker.

Your demonstration should show you:

· Setting a date on the IoT device.

· The printed response in the terminal.

· The colour of the lights changing as you adjust the temperature and humidity sliders.

· Your webserver visualizing the temperature and humidity graphs for the selected date.

· Your demonstration should be recorded as a screen capture, as per the instructions on Mylo.

Marking Scheme

The assignment submission will include:

· Your code for the IoT device (python), server (php) and your cleaned data set as a zip file.

· Your documentation, including your diagram and your explanation of ML methods/accuracy.

· A video demonstration of the system, as a screen capture.

Please submit this as 3 separate files (zip, document/image and video) via Mylo, as this will make the markers life much easier.

Your IoT system allows a user to send a date and location to the server

· Enters setup mode, allows date and location to be set, sends data and location ID to the server, exits and enters normal operation mode.

3

· Partially implemented, but fails one or more of the above

1

· Not implemented

0

Your IoT system

· Reads the current temperature and humidity, displays the correct status colour, switches between the two modes(temp/humidity), visual indicates the mode.

3

· Partially implemented, but fails one or more of the above

1

· Not implemented

0

Your server accepts a date and ID from the IoT device

· Your server accepts a date and location ID, stores this information as an XML file, returns a prediction to the server

2

· Partially implemented, but fails one or more of the above

1

· Not implemented

0

Your server uses machine learning to predict that days temp/humidity ranges for the selected date and location ID.

· Sample the appropriate data from the data set, use an appropriate machine learning algorithm, train a machine learning model, predict the min/max temp and humidity for the location ID, returns a reasonably accurate result.

5

· Partially implemented, but fails one or more of the above

3

· Partially implemented, but fails two or more of the above

1

· Not Implemented

0

Your webserver visualizes data

· Reads the date and ID from the XML, reads the half hourly temperature and humidity for those dates and ID from the data set, calculates an average for each half hour increment, graphs the data as two separate graphs (with a sway to switch between them).

4

· Partially implemented, but fails one or more of the above

2

· Partially implemented, but fails two or more of the above

1

· Not implemented

0

Demonstration

2

Diagram

2

Explanation of ML choice

2

Discussion of Accuracy

2

发表评论

电子邮件地址不会被公开。 必填项已用*标注