Team E6: waitr

Carnegie Mellon ECE Capstone, Spring 2022

Sophie Sacks, Sam Lavelle, Dina Razek

Weekly Status Reports

Dina Razek’s Status Report for April 16th, 2022

This week, Sophie and I worked on setting up the second RPi with a commercial RFID scanner to be used for the exit scanner. We were able to successfully connect it to CMU-Device and upload code to send the scan data to our web application. I added error-checks on the scanned data in views.py, ensuring that we only add consider entry and exit scans that occur during business hours, on the same day, and with entry time being earlier than exit time. In doing so, we hope to catch any edge cases that could occur through usage.

I also fixed our frontend view of the web application on a mobile device. Before, the frontend used to be a bit squished, but I now have the viewport considering the width to be the device width as opposed to the expected content width. A screen recording on my mobile device can be found here (taken around 2:30 PM on Saturday, when the Exchange closes at 3 PM). In finishing off the frontend, I removed our unnecessary feedback page.

I am on schedule. For next week, Sophie and I hope to add some security measures to the web application and fine tune the live updating feature to incorporate more data. We also hope to integrate with Sam’s circuit, updating any necessary code to facilitate the connection.

Team Status Report for April 10th, 2022

This week, the team worked on the connection between the commercial RFID reader and the web application as well as circuit development. We made significant progress in sending scan data from the RFID reader to the web application through the RPi. We also managed some issues we faced with our circuit, and are working on fixing the voltage situation.

There were small changes to the existing design of the system. We will be creating a new ML model that will use live data as a large backbone. In our current design plan, we have our circuit and web application functioning and our connection from a RFID reader to the web application is complete. We will need to modify some code in order to account for the Arduino being used in our built RFID reader, but will work on that final connection soon.

No major changes have been made to the schedule or lists of tasks necessary to complete the project. We are extremely close to the final solution coming together.

Dina Razek’s Status Report for April 10th, 2022

This week, Sophie and I worked on connecting our web application to a commercial RFID reader. We had to deploy our web application through an EC2 instance on AWS in order to get a host URL. In doing so, we were able to successfully send RFID data through a post request to the web application database. The following is a code snippet of our scan.py file, which is responsible for finding the RFID device connected to the RPi and sending the ID and scan time to our URL. 

In the interim demo, we were able to show our web application hosted on AWS and our ability to get scan data from the commercial RFID reader.

I am on schedule for this week. For next week, Sophie and I plan to create an ML model that incorporates live data heavily for demo purposes. We also plan to set up the other RPi in order to get exit times. I want to edit the frontend to be more compatible with mobile devices – it appears a bit different than on the desktop.

Sophie Sacks’s Status Report for April 10th

This week, Dina and I were able to successfully send a request from the RPi to the web application deployed onto an EC2 instance on AWS. We connected the commercial RFID scanner directly to the RPi and sent the time scanned and the ID scanned to the web server. We then saved this information into the backend database through Django. All of this new code can be seen in our scan.py file, which first finds the connected device and then sends the request. A snippet of this code can be seen below.

During our demo, we were able to showcase the web application and RPi functionality well. The main feedback I received on the neural network and the backend was to integrate the live wait times better now that we are able to collect that data through the RPi.

My progress is currently on schedule. Next week, I hope to set up the second RPi since this takes a good amount of time. I also hope to setup the backend to better handle the live data since this is a priority in our application. Finally, I hope to start connecting Sam’s circuit to the RPi if time allows.

Sam’s Status Report for Apr. 10, 2022

This week, I was able to bring the whole system together to extract the code off of a 125 kHz card. This is what I showed at our interim demo, which I think went well! I reconnected the system later in the week to see if there was any part of the code or hardware I could tweak to make the system more portable and custom, but it was displaying strange behavior even before I could change anything. I was able to narrow down the issue: the voltage at the part of the circuit that connects to the analog arduino pin is too low, causing the arduino to calibrate to a value of zero. This prevents any sort of card detection. After troubleshooting for an hour, I placed an order for an ADALM from 18-500 inventory, which will allow me to check every part of the circuit. I’m hoping the issue is minor, since it was just working fine.

This issue will cause some delay, which is dependent on how long it will take to fix it. Hopefully I can get it up and running again next lab period, and figure out what was going wrong.

Looking forward, I’ll debug this issue and then begin to decide what I’ll be soldering. Once this issue is fixed, we will also be able to start working on connecting the arduino and RPi to create a full system.

Dina Razek’s Status Report for April 2nd, 2022

This week, Sophie and I made significant progress towards connecting the RPi to our web application. We connected the RPi to the CMU-Device wifi, which took more time than expected, but in the end allowed us to SSH to the RPi. In doing so, we were able to set up code to send requests to our web application, after some work from Sophie in deploying our web application through AWS.

I am on track for this week. For next week, Sophie and I will work on sending wait-time-like data from our RPi to our web application, integrating with the store-bought RFID reader.  This will get us one step closer towards finalizing software-hardware connections and data collection code, which will allow us to soon integrate with our self-made RFID reader.

Sam Lavelle’s Status Report for Apr. 2, 2022

This week, I set out to test my circuit with 125 kHz bit tag cards. I hit a few bumps at the beginning of the week, as the circuit wasn’t showing any signs of card detection. I tested the bit cards with our commercial RFID reader, and both worked, so the issue was my circuit. I used the oscilloscope and ADALM to monitor the output at various points in the circut, and with the professor’s help, figured out the issues: the input of the circuit was incorrectly grounded; the DC power supply to the op amp was uncalibrated; and because of the DC power supply being a lot higher than I thought, my Arduino was damaged. I fixed the first two issues in the lab, and got addtional Arduinos from my teammates.

This week of debugging did push me back a bit, but I expect to be ready for demos next week. Sophie and Dina set up the RPi during the week, which I originally expected to handle, so overall I’m in a good place.

After demos, I will begin the process of soddering the now correctly working circuit. I’ll first look into the possibility of changing my circuit so that it can read CMU IDs, but since I still don’t know exactly what frequency the cards are, it’ll be a bit of guess and check work. I think if I can’t find it within a few days, it’s not worth the delay in progress.

Team Status Report for April 2nd

This week, the team worked on the connection between the Raspberry Pi and the web application as well as circuit development. We were able to make significant progress on our circuit for the RFID readers and our RPi setup. After debugging on both sides, both of these elements are near perfect for the demo this week.

There were no changes to the existing design of the system. The entirety of our web application is functioning. In addition, our circuit is working without connection to the software after obtaining a new Arduino. Finally, our RPi is able to send a post request to our web application, which is now setup on an AWS EC2 instance.

No major changes have been made to the schedule or lists of tasks necessary to complete the project. We are extremely close to a product ready for the demo next week.

Sophie Sacks’s Status Report for April 2nd

This week, Dina and I made a lot of progress on connecting the Raspberry Pi to our web application. In order to do so, we first had to set up the RPi and connect it to the CMU-DEVICE wifi, which took a decent amount of time. Afterwards, in order to be able to send a request from the RPi to the web app, I had to deploy the whole web app to an AWS EC2 instance since the RPi can’t see any sort of “localhost” server. After some small issues with the sizing of the instance and installing all of the required packages, I was able to get the RPi to send a post request to the web app. This can be seen in the code snippet below.

Before the demo next week, Dina and I want to try sending real information to the web app from the RPi and saving it into our database. Although this won’t include the circuit and RFID scanner piece yet, it will get us much closer to connecting all of the subsystems together.

My progress is currently on schedule. In the next week, I hope to be able to share all of my progress in the interim demo. I also hope to start connecting Sam’s circuit to our RPi so we can begin connecting all three subsystems together. This will most likely involve connecting the RPi and the Arduino at the very least, and if we get that working, then we can start to focus on the circuit connection as well.

Team Status Report for March 26th

This week, the team worked on the ML for our wait time estimation, web application development, and circuit development. We were able to make significant progress on our circuit for the RFID readers, our frontend for the web application, and our ML model in the backend.

There were no changes to the existing design of the system. The entirety of our web application is functioning. In addition, our circuit is working without connection to the software. Finally, our backend is improving with each step of the other subsystems.

No major changes have been made to the schedule or lists of tasks necessary to complete the project. We are very close to a product ready for the demo next week.