This past week we solidified the overall structure and flow of our data pipeline. We plan on having two processes running on the RaspberryPi at the same time. One process will be continuously receiving, filtering, and decoding the CANbus data and writing it into a local SQL database. The other process will be reading and analyzing each new entry from that local database. After processing the data, we decided that the second process will send it to the AWS IoT console via MQTT protocol. Lastly, the web application will read all the data written to the AWS console and visualize it with charts and graphs. We also discussed how we are going to integrate the different software components. We decided on the format that the data would be in so that we could build our separate pieces of software knowing how the data will look when it is received. Lastly, we decided on the specific pieces of information we would need from the CANbus in order to perform a quality analysis of a person’s driving.
Ryan’s Status Report for 2/27/21
At the beginning of this week, I worked on creating our team’s slide deck for our presentation on Monday. We came up with the requirements for our project and the schedule to track our progress using a GANTT chart. This week I created a GitHub repository for our project where we will store all the analytics code that will run on the RaspberryPi as well as the code for our web application. I also researched how the RaspberryPi will communicate with its data. We decided to store our data using AWS IoT and send it via the MQTT protocol. I spend some time getting familiar with different APIs to find which one works best for our group, including a weather API and a google API for road data to access speed limit. I also read a few research papers that discussed data that teams had used from a vehicle to try and recognize good and bad driving.
Reid’s Status Report for 2/27/21
This week, I worked on presenting and preparing the slide deck that we worked on. I worked on the technical requirements slides about navigation and infraction detection, as well as technical challenges and preliminary design. I was a little rushed on the presentation but overall I think I was able to communicate Drivaid’s purpose and technical components. One question that arose was how we needed a GPS tracking device connected to the Arduino that sends info to the Google Maps API to tell if a driver is slowing down for a stop sign/traffic light. I settled on the Adafruit ultimate GPS because of its precision and 10Hz updates, which should be frequent enough for precision mapping and location updates. I worked on a preliminary parts list as well which we plan on submitting to the TAs, which includes the PiCan, cables, GPS, and RaspberryPi. I also started researching how difficult it would be to not use the PiCan2 at all and instead use a OBD2 to USB to hook into the RaspPi’s USB port – we will discuss this as a team either later tonight or tomorrow since it would be a substantial change to our initial design.
Reid’s Status Report for 2/20/21
This week, I worked on researching the OBD2 port and finding an optimal technical solution to our problem. After shifting from our initial smart heater idea, I thought of this idea as something that built off a past internship that tracked hard braking and turning to improve street design. I helped design our initial outline of which devices we will be using and how they communicate with each other. I was able to find a OBD2 to Bluetooth device that could communicate directly with our onboard Raspberry Pi, one of the port alternatives that we are looking at. I also researched the OBD2 communication protocol to see the feasibility of reading directly from the port, which looks like it can be manageable using correct bitshifting. I also looked at some gyroscopes and IMUs, as Professor Mukherjee suggested, but am still unsure if they can provide the same data accuracy and breadth that CAN data does.
Team Status Report for 2/20/21
This week the members of our team spent most of our time pivoting from our initial idea. After a brief discussion with Professor Fedder, we came to the conclusion that our first idea didn’t have the teeth to be considered for a full capstone project. We met a few times to reconsider the direction of our project and landed on the idea to make a virtual driver’s ed application. Since we decided on our new idea, we have researched how to gather the data from the car via the OBDII port and how to make a web application to display our data analytics. We are also considering adding cameras that record the environment around the individual’s car. This will be useful to add context to the analytics that we provide from the internal car data.
Samraj’s Status Report for 2/20/21
This week, we shifted our project idea from a smart heating system to this smart driving instructor. Most of my work this week was done in helping my team come up with this new idea and research it’s feasibility. Since our project relies on communicating data from the OBD-II port to the Raspberry Pi, I did some research into the tools we need to achieve this and found that we need to order a PiCAN2 CAN-Bus Board, along with a Raspberry Pi, and an OBD-II cable. I also started to setup the website that we will be using in our project in order to display and store the data by setting up a host and a basic page. We seem to be on track for next week where we will start to get the project fully rolling and hope to order parts and continue with the website.
Ryan’s Status Report for 2/20/21
This week we spoke with our professor and TA about the shortcomings of our initial idea. Since our meeting on Monday, I spent time considering other ideas for our capstone project. When we decided on a driving assistant I spent time researching the different ways of tracking car data. We discussed bringing in our own sensors that would attach to a RaspberryPi, but came to the conclusion that in order to get the widest range and most accurate data measurements, the best option would be to gather the information from the CANbus through the OBDII port. I researched a few methods for getting this data including commercial solutions that came with their own software, but decided that with a RaspberryPi and PiCAN attachment, we could collect and decipher the CANbus data ourselves. Additionally, I contributed to the proposal presentation slides we made.