Team E6: waitr

Carnegie Mellon ECE Capstone, Spring 2022

Sophie Sacks, Sam Lavelle, Dina Razek

Weekly Status Reports

Sophie Sacks’s Status Update for March 26th

This week, I made a great deal of progress on the neural network. By adjusting the training data to be more accurate (but still random enough) to real data and adjusting the learning rate, I was able to get the mean squared error down by over 150. This improved our model a lot, allowing us to have much more accurate predictions. In addition, we were able to connect the updated model with the frontend by providing predictions for an entire day for the graph data. All of these changes can be seen on our private repo.

My progress is currently on schedule. The majority of the work left relating to the ML model is dependent on updating the training data based on new scans into the RFID readers in our interface.

Next week, Dina and I hope to work together on the RPi connection from the hardware scans to the software as well as some processing in the backend. We hope to be able to fully process the data from an RFID into our backend database.

Sam Lavelle’s Status Report for Mar. 26, 2022

This week I connected our circuit components and began testing. Pictures and videos have been added to the Google Drive of process pics. I was able to prove that the circuit is working correctly, however, I was also able to prove that CMU’s ID cards do not contain a 125 kHz RFID chip. I tested with the circuit and our commercial 125 kHz RFID reader, and neither picked up any signal from the card. I researched other possible frequencies, and there are a few our cards could contain. Unfortunately, to test every frequency would require me to reconstruct the coil and circuit each time, and I don’t think this would be worth it right now. I requested 125 kHz bit code cards like those we used in 220 lab, and will use those as a contingency plan for now. If I have extra time down the road, I’d love to get our system working with the CMU IDs.

This snafu didn’t greatly impact our schedule – I’m able to continue using the bit code cards from 220 lab. However, now I do want to be ahead of schedule so that I can try to get the CMU cards working eventually.

Next week, I will see what data I can extract with the 220 bit code cards, and work on getting that from the Arduino to the RPi. This will allow us to connect hardware to software and begin to have a fully integrated project!

Dina Razek’s Status Report for March 26, 2022

This week, I worked on finishing up the frontend implementation. On the home page, I interfaced with the backend data, connecting the live wait time and the predicted times for the day based on the ML model. I added the component of having the wait time change color based on the value – if the wait time is <= 10, the wait time will be in green, if it is between 11 and 25, it will appear yellow, and if it is above 25, it will be red. I also added an alert to notify a user that their form input was successfully submitted. This is the updated site when hosted locally, fit for the dimensions of a mobile device. The video was recorded at 12:10 PM on March 25th, which is why the first input is invalid. Notice how the graph shows only values from 12 PM onward. This is an attempt to make the graph as large as possible for the user, as they will not need predicted values for times that have already passed today.

I am on schedule for the week. For next week, I plan on working with Sophie to update the accuracy of our ML model. We also plan to work heavily on the connection of the RPi to our Django server in order to properly receive data from the RFID readers.

Dina Razek’s Status Report for March 19, 2022

This week, I worked on building out the full frontend view of our application, including charts and form settings. On the home page, I finalized the screen design and fixed some issues I had with the navigation bar.  I also set up the graphical information using Chart.js based on the hours / common intervals for the day. I considered factors like exchange operating hours and current hour of the day to try to make the graph most readable and logical. For this project, we are designing for the most common view to be on a mobile device, so while the site is responsive, we want to make the most out of the small space of a device screen when compared to a desktop. I also built out the About page information and page setup. This is the site when hosted locally, fit for the dimensions of a mobile device.

I am on schedule for the week. For next week, I want to finish up all UI elements, such as a “response received” message for manual input and fix any form validity issues. I plan to spend time interfacing more with the backend to incorporate all the data we are receiving. I also plan on working with Sam to see the next steps to interfacing with the hardware.

Sam Lavelle’s Status Report for Mar. 19, 2022

This week I collected all of our supplies that had come in and reserved a bin to hold them. We recieved our 2 RPis, RFID reader for testing, and accessory cables for the RPis (USB A and power supply). We’re still waiting on HDMI cables for the RPis, which should come in soon. Once we have them, I’ll start setting them up and connect them to the Arduino that controls the circuit. I also constructed our inductor coil. I found a suitable holder in TechSpark, calculated winds based on its dimensions and what capacitors I have available, and wound it. Next week or this weekend I’ll bring the circuit I constructed in and connect the two.

*I could not get the photos to upload directly so here is a link to a Google Drive 🙂

This week’s progress was very promising to me. From this point on is where the real work is – testing the hardware and debugging as necessary – but I think things look good right now. Possible events that could put me behind schedule include any issues that require a lot of debugging and late arrival of components; I’m still waiting on the power supply for our circuit, and HDMI cables for the RPis. I do have risk mitigation plans in place: for the power supply, I can use an ADALM, and for the HDMI cables, I can borrow some that are already in the 1300 wing laboratories. I will put them back when I’m done with them 🙂

Next week, I’ll connect the coils to my circuit and begin testing the circuit. I’ll start with the default 220 lab settings on the Arduino and an in-lab waveform generator for our power supply, and once everything looks good, start swapping things out for what our own project needs one by one. This slow transition will help me quickly identify the source of any errors. Once everything is working, I’ll connect the hardware to the RPi and start working on bringing hardware and software together to form our finished product!

Team Status Report for March 19th

This week, the team worked on the ML for our wait time estimation, web application development, and circuit development. We received feedback on our Design Report that helped us stay on track. We are on schedule with our project.

There were no changes to the existing design of the system. Below are some pictures showing our progress on the web application. All of the current components shown on the page are functioning.

Below is our updated Gantt chart. No major changes have been made to the schedule or lists of tasks necessary to complete the project.

Sophie Sacks’s Status Report for March 19th

This week, I personally made a great deal of progress on the machine learning model in the backend of our web application. I began by creating some mock training data by randomizing the day, hour, minute, and wait time. I made some time periods “busier” than others by having the wait time randomized to be higher during those times. I then tried randomizing the training data and training the model a few times in order to see how accurate the neural network is with it. Although I made a lot of progress getting the loss function down, I need to make the data a bit less random in order to have it work better and make the mean squared error lower. Below is some sample output from model training and predictions for testing.

In addition, I made progress setting up the input form on the web application. I successfully implemented validation for the form to ensure that the inputs make sense (exit time comes after entry time, the time and day aren’t in the future, etc.). Below is some of my form validation code.

My progress is on schedule so far. In the next week, I hope to get the neural network accuracy up as well as begin working with Dina and Sam on the connection between the RPi and the web application. Once that component is working, it will be much more simple to connect Sam’s circuit with the RFID reader to the web app later on.

Team Status Report for February 26th, 2022

This week, the team worked on the ML for our wait time estimation, web application development, and circuit development. Sophie gave our design presentation at the beginning of the week, and we received some questions and thoughts that we can use moving forward with our project. We are on schedule with our project.

There are  no changes to the plan for our software and user interface. We will be getting an out-of-box RFID reader that Sophie and Dina can use for testing our web application with as Sam builds out our RFID reader. For hardware, one minor change was made – we will need an AC power source that is 125 kHz and 2.0 Vpp, so we are considering different ways to convert power from an outlet to these metrics. In this upcoming week, we will ask for feedback from the professor and TA about our updated power converter strategy.

Below is our up-to-date Gantt chart. No changes were made to the schedule of plans.

Dina Razek’s Status Report for February 26th, 2022

This week, I worked on setting up our web application. I built out the urls, the views, and started working on the HTML for each page. A form is being used to get the user input for entry time and exit time in the case that a user forgets to scan in and out. I also began looking into different chart libraries, such as Chart.js and Plotly, to visualize our wait times over the course of the day.

I am on schedule for the week. For next week, I plan to spend more time on the design report, finalizing the summaries of our design trade studies, system implementation for the web application (frontend and backend), and testing plans. I also want to place the chart in the frontend, and began interfacing with the ML.

Sophie Sacks’s Status Report for February 26th

This week, I began by giving the Design Review presentation. I put a good deal of work into prepping for the presentation as well as presenting on Monday. For the rest of the week, I continued to research how to set up the neural network for our project. I decided on the number of inputs, hidden layers, neurons, and outputs for the entire network. Additionally, I chose the type of optimizer and loss function based on the type of regression we are using. Below is the current basic design of the neural network.

I then wrote all of this up in more detail in the Design Report as part of the System Implementation section. I also wrote up the Abstract, Introduction, and Use-Case Requirements in the Design Report.

My progress is on schedule as of now. Next week, I plan to continue working on the Design Report since it is due this week. I also plan to continue finalizing the software backend system design.