|22||ARC Machine Monitor
|# ARC Machine MONITOR
- Calvin Lee (calvinl4)
- Rohan Inampudi (rohani2)
- Akhil Kodumuri (akhilvk2)
One question that is always on a college student's mind is "Is the ARC busy?" There have been many times throughout our college career where we have gone to the ARC expecting a quick workout just to see lines to the machines we wanted to use. We've always wished that we could see what machines were being used and what were not. That is why, we would like to create an interface where students can use their phone to visually see which equipment at the ARC are being used and which are not.
We would like to create an interface where students can use their phone to visually see which equipment at the ARC are being used and which are not. This way, students can anticipate whether or not they should go to the ARC. At a high level, there would be a button by the equipment being used. The button, upon being pressed by the user when a machine is being used, would then send a signal to an IoT device which would then send a signal to an AWS server. Our website will then use this server to update a UI which users can utilize to see which machine is being used.
# Solution Components
## Subsystem 1 (machine sensor pcb to IoT device)
In order to detect whether or not a machine is in use, we would like to create a PCB with the following components. A button (https://www.amazon.com/Gikfun-Waterproof-Button-Momentary-Arduino/dp/B07F8GBWGG/ref=asc_df_B07F8GBWGG/?tag=hyprod-20&linkCode=df0&hvadid=343224601369&hvpos=&hvnetw=g&hvrand=2325432847971158710&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=9022196&hvtargid=pla-757057055269&psc=1&tag=&ref=&adgrpid=70737352522&hvpone=&hvptwo=&hvadid=343224601369&hvpos=&hvnetw=g&hvrand=2325432847971158710&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=9022196&hvtargid=pla-757057055269) that will be pressed whenever a machine is being used, a timer in order to keep a time a machine is being used, an alarm (https://www.digikey.com/en/products/detail/tdk-corporation/PS1440P02BT/2236832?utm_adgroup=Alarms%2C%20Buzzers%2C%20and%20Sirens&utm_source=google&utm_medium=cpc&utm_campaign=Shopping_Product_Audio%20Products_NEW&utm_term=&utm_content=Alarms%2C%20Buzzers%2C%20and%20Sirens&gclid=Cj0KCQjw39uYBhCLARIsAD_SzMRocrg56djQZdtSr1banc2WuquRuRWNwZ3Xb1x-w5BqNdJqJw-9-HQaAjB5EALw_wcB), a network card (https://www.espressif.com/en/products/socs), and 2 leds of different colors to indicate that a machine is being used.
## Subsystem 2 (IoT device to AWS Server)
This server will host all information on which machine is being used. In order to send data to the AWS cloud, we will install AWS IoT Device SDK (https://docs.aws.amazon.com/iot/latest/developerguide/connecting-to-existing-device.html#gs-device-view-msg) onto our Raspberry Pi 3 Model B. All machine information that is sent to the Pi will be sent to the AWS cloud.
## Subsystem 3 (AWS Server to website)
The website we will design will keep track and display what machines at the ARC are being used by using the AWS server configured in Subsystem 2. This website will be configured using the Python framework Flask.
## Subsystem 4 (load sensor to alarm)
If there is time in the project, we would like to attach load or motion sensors in order to detect use of the equipment that occurred without pressing the button, which would set off alarm.
# Criterion For Success
Ultimately, we define success on whether or not the UI on our website can change the status of a machine at the ARC when it is being used. This can be tested by the following process: Person at ARC working out, button pressed to indicate machine in use, IoT device receives signal from button, IoT device sends data to AWS server, and, finally, machine status on website changes to "Occupied".
# Important Notes
One facet of our project that needs to be tested is power consumption. In order for this product to be used at the ARC, it is imperative that we find the most lightweight solution to our project. Our current proposal is a product of our preliminary research into the most energy efficient solution to our project idea.
Communication between Aruduino and Pi: https://medium.com/@anujdev11/communication-between-arduino-and-raspberry-pi-using-nrf24l01-818687f7f363
Sending Data Between MQTT: