Jake’s status report for 3/26

This week I and the team worked primarily on the ethics side of the project. We participated in a very productive in class discussion over the potential ethical implications of our project and as a team we had the opportunity to discuss potential solutions/mitigation factors. Some of the potential implications were as follows:

  • Currently we have no features that limit who can see the real time data on occupancy in the UC. The multiple problems people found with this ethically were that it displaying when there is a high concentration of people within the UC allows potentially nefarious actors to come in and abuse this concentration in a multitude of ways ranging from solicitation and advertising to potentially things more harmful. To address this as a time we are going to require an andrewid to access the data. As CMU students and faculty are the target users we don’t see this restriction harming our use case however it is important to note that Chartwells employees do use the tables and this change will discriminate against them but as team we decided this trade off vs the original ethical concern was worth it to secure the safety of CMU students.
  • The second ethical concern raised was that people have no way of opting into having theirselves tracked. This was something our team hadn’t really considered the ethical implications of. However we concluded that ethically already having security cameras in the UC supercede the table occupancy tracking. That being said we also wanted to spread flyers notifying people of the occupancy trackers, just saying what they are, the way the hardware works and that no personally-identifiable data is being gathered as we advertise the app.

In terms of the hardware software integration I had hoped to finish the data transfer pipeline last week I still have not finished yet but I made some good progress. In terms of our schedule this all needs to be done for our demo so I will work to finish it up this week. Additionally this week, I plan to integrate my data transfer pipeline with Angela’s EC2 django instance.

Team Status Report 3/27

Our team had to focus more on the ethics assignment that was released to be due on Monday as well as the lecture on Wednesday. As a team, we’ve been trying to integrate our individual work, which didn’t happen last week as we had hoped. Because of this pushback, we will have to focus much more on connecting the pipelines between software and hardware as well as make sure our individual products still work as intended.

With the ethics assignment, we were also presented with other topics to think about in regards to our project, which would be more on the user side of this project. How would we prevent people from using our data for ill-intent (aka knowing the number of students in the UC at a time)? What would we do about people who don’t want their data collected in terms of occupancy? These are definitely problems we should confront.

Since we are behind schedule, we hope to catch up a lot more in class the following week as well as make sure software and hardware form a pipeline.

Ryan’s Status Report for 3/26

This week, I mostly focused on the ethics side of the project. This involved participating in a very interesting discussion between many groups about the ethics in both our projects and others, and we got some very interesting feedback that I considered and thought of solutions for. Specifically, two main points of concern were addressed:

  1. Anybody can access the data through the web app, and this data can be used for many purposes besides finding a free seat in the UC. To address this, we are going to restrict web app access to those with Andrew logins. While this may restrict access to a minority of the use case members, as some Chartwells employees use the tables as well and the UC is technically open to all people on the weekdays, we believe that this is a necessary step to secure the safety of the data of the remaining users.
  2. If this system is set up in the UC, people do not have the option of not having their occupancy tracked or opting out. Although this is definitely of concern, there are cameras in the UC that can be used to track someone’s location. More importantly, though, we would intentionally spread flyers notifying people of the way the hardware works and that no personally-identifiable data is being gathered as we advertise the app. We believe that the vast majority of the users, once informed, would not have concerns with the system; conversely, there is no easy solution to implement for the edge case of users that still do have concerns.

Unfortunately, since the rest of the hardware arrived very late in the week and due to some personal issues, I was not able to put forth much work on the project design this week, which has pushed me a bit back on schedule. Since I have a lighter schedule this upcoming week, I am hoping to be able to make up for the lost time. This week, I plan to assemble all of the hardware together, and I intend to at least get started on writing code to initialize all systems and get the sensors talking to the processor, in preparation for the interim demo coming up.

Angela’s Status Report 3/26

This week, I spent the first half working mostly on the ethics assignment. However, due to illness related difficulties, I was unable to make it to the ethics lecture on Wednesday. From the rundown I got from my groupmates, I was able to agree with their proposed ethical concerns on our project, which was mostly centered around the user’s privacy as well as potential use cases that are outside of our planned use-case scenarios. This would include having a person with ill intent planning to use the number of students in the UC for non-intended purposes. Users also cannot opt out of having their occupancy tracked, even if it’s anonymous.

I also made advancements with developing with Django. Currently, I have the web app set up on my local machine with skeletal code, using a python virtual environment.

Ryan’s Status Report for 3/19

This week, I finalized ordering the rest of the hardware for the project, including picking switching regulators to supply 5V and 3.3V from our 3.7V battery, and figuring out a charging solution for the battery as well. With this, the hardware should all be ordered and in house next week, and once the last of these components arrive, I am excited to put everything together! In addition, I worked on the ethics assignment and thought about various aspects of the ethicality of our project, and started to look at some of the existing hardware code Jake has written to familiarize myself with it.

Next week, I will be looking forward to some interesting ethics discussions, and am hoping that the rest of the parts will be in so I can assemble everything! Although I am slightly behind schedule, as I would have liked to be writing some code to initialize the sensors by now, I am not worried about getting this done by the interim demo, and hope to have everything up and running by then.

Jake’s Status Update for 3/19

This week was spent mostly on integrating the hardware software interface. To start off the week I registered all of our esp8266s with CMU-Device’s wifi registration. I worked through getting these new devices to connect to our aws iot accounts. I successfully started quick connecting the esp8266 to aws iot and pushing data packets with table occupancy. Code can be found here: https://github.com/ayzhang00/OccupancyMonkey/blob/main/Esp8266/aws_iot_main.

I designed the code such that all secure information i.e. keys and wifi information is entered into a small header file that is added at device flash so no outsider can peek at that information on our github. I additionally created our mySQL database hosted by Amazon RDS and am close to finalizing the AWS lambda rule to push the sent data to this mySQL database. The code for this is similar in structure to the esp8266 code where all sensitive information is placed in a small additional file. The code is found at: https://github.com/ayzhang00/OccupancyMonkey/tree/main/send_data_to_rds

I am about on schedule, there is a slight hiccup with AWS that I need to work through as it appears our EC2 credits do not count towards AWS IOT and Amazon RDS payments, as I initially hoped. I think the RDS free tier will suffice unless Django has some unanticipated quirks. The risk mitigation for this would be less reliance on Django models for the substitution of the pymsql library or something similar that gives tighter control over database reads.

Next week, will be spent completing the implementation of our hardware software integration by finalizing the Lambda function with the hopes of completing the hardware to software pipeline to the point that this code will not need to be touched for the remainder of the project.

Team Status Report for 3/19

This week we made great strides for the hardware software interface. All of the teams esp8266s were registered with CMU-Device’s wifi. We successfully implemented the esp8266’s quick connection to wifi, establishing communication with AWS IoT, and pushing data packets with table occupancy. Code can be found here

We initially deployed our Amazon RDS mySQL instance and created the preliminary AWS lambda rule to push the uploaded data to this mySQL database: code

We are currently on schedule with exception to low power testing and code creation. The major deviation is the necessity to use the PubSubClient and WifiClientSecure libraries to upload data securely from the esp8266 without fully knowing what they are doing under the hood. The risk mitigation for this is that we could rewrite some of the connecting and publish code as we only need to transfer data in one direction.

Additionally, we ordered the rest of the hardware last week, including switching regulators and a battery charger, and are hopeful that we will be able to get everything assembled soon! Although we would have ideally had this done a few days earlier, we still have a lot of time to run potential risk mitigation plans in case pieces of hardware don’t work as expected by figuring out and purchasing alternative solutions.

Angela’s Status Report 3/19

This week, I was feeling really sick up until Friday night and was unable to stay up enough to make significant progress. However, I was able to finalize plans for frontend to make it a little bit more accessible and streamlined.

Next plans are to fully integrate Django and MySQL with AWS and finish the integration process.