Samraj’s Status Report 5/8/21

This week I made slight adjustments to the website to accommodate last minute changes in the algorithms and measurements. For the infraction notification page, I added an indicator for the status lights on the car, so the user will know if the check engine, tire pressure, oil level, etc. lights are on. I also added some more visualization for the overall data report to plot the average speed and acceleration. Besides this, I did a lot of testing to make sure the system is working and updating correctly and helped in fine tuning the algorithms. We noticed that there were some issues with the website updating due to the post requests being made in different threads within the algorithms, but we were able to fix this issue by sending all the data simultaneously within the script. Additionally, through the testing, I noticed that some of the infraction notifications were not being sent at the right times or correctly, but I was able to spot and correct these issues. I also spent time this week helping to create the demo video and final poster.

Samraj’s Status Report for 5/1/21

This week I worked on adding final changes to the website. I finalized the notification system by adding a series of lights on the page that will flash when an infraction is detected. This way, the user can see the violation but won’t have to read and get too distracted. I also added some more navigational features to the site to view all of the data. We also were able to receive more the error codes from the car through the OBD stream, so I needed to add a feature on the website to be able to see if any of these error codes is triggered on the car. Besides the website, I helped with the final steps of integration and testing the system to make sure everything is functional before the demo. I helped Reid to design and cut a box to store all the components in when it is in the car.  I have also been running tests in the car to make sure that all the data is being read and stored correctly and properly sent to the website in real time. So far, there don’t seem to be any major issues and we just need to do more small refinements before the demo.

Samraj’s Status Report for 4/24/21

This week I made some more modifications to the website. During our demo we noticed some issues with how the live data updates and the update rate was not as fast as it should be. This was mainly due to an issue that the service I was using to host the data was not set at the correct update rate, but I was able to fix this to update every second. Aside from this, I worked more on the live notifications and getting a solution working so that the data is sent in real time and pop’s up on the users screen. I am looking into an alternate solution to send real time push notifications to the phone rather than updated the website constantly, since this is harder than anticipated. This seems to be more feasible and I plan to get this working early this week. I also spent more time working with the team on integration and testing that the system all works together properly.

Team Status Report 4/10/21

This week our team continued working on the integration of our subsystems and we were able to make good progress on this. Now that our data stream is fully working, we are able to store all of the data into a local SQLite database on the Raspberry Pi. As the data is stored, the infraction detection program reads from the database and runs the analysis to output the different driving metrics. These metrics are then sent via POST request to the website and are displayed in real-time. The overall system seems to be working, but now we need to iron out small details and bugs that may arise. We also encountered an issue where some of the data we need for turn checking is not accessible since we are not able to read the steering wheel angle from the OBD-II stream. Since it is not a standard PID, we need a way to manually find the id since it is not published and differs between vehicles. We are still looking for a way to fix this but will leave it out for the demo. Next week, we will do more testing with our integrated systems and fix issues that come up, and add in the smaller details to finalize the system.

Samraj’s Status Report 4/10/21

This week I worked on integrating my work on the website with the OBD-II data stream.  In order to visualize the data, I found a website called Thingspeak, which makes it easy for me to store the data and format it into a graph or chart. Using this, I can embed an iframe of the graph that is generated in Thingspeak into our main website and we can visualize all the data the is coming in that way. So far, I am able to visualize most of the raw data and outputs of of the infraction check functions, but there are a few more I need to add in in the next few days. Aside from this, I helped out with integrating the OBD-II logger with the infraction checking functions but putting the code together so they run in sync. Next week, I plan to continue working on integrating the website with the data so we can see all the data we need. I will also add more features if time permits such as user log in and exporting tools.

Samraj’s Status Report for 4/3/21

This week I worked mainly with the team on fixing our issue with the data stream. We were having trouble with the Raspberry Pi Can-bus interface, but we were able to resolve the issue by using an ELM327 cable which removes the need for us to use the CAN bus.  Now that we have the data stream, we are working on final steps of integration to get the whole system running.  Aside from this, I made more adjustments to the website to prepare for the data that we will be taking in. I used the database structure which we are using for the on-board SQLite database so that it is easy to send and store the data without much translation to be displayed on the website. I am working more on getting the real-time notifications to display for the driver and the system is working, but I plan to continue testing this with the real data we are receiving now to ensure that it works correctly and looks good for the driver without much distraction.

Samraj’s Status Report for 3/27/21

This week I worked with Reid on getting the OBD-II data stream functioning properly. We had some issues with the data stream being cut short due to a buffer issue and we were able to target the issue to a header pin that was not connected. Besides this, the rest of the scripts are setup to log the data to a file to be stored on the database and seem to be functional. Once we resolve this issue, we believe our stream will be working properly and be ready for integration.  Aside from working on this, I also spent some time working on the realtime notifications for the website. Since we constantly have to be reading and updating the page, I setup a MySQL database connected to the website, so we can simply use a PHP script to send the data at a set interval to the database which will display on the website. Since we are on a shared network, this is quite simple and is more efficient than our previous idea of using the AWS iOT Core which is far more complicated to setup. Using this, I was able to send some test data to be displayed, but I need to work on getting it to display faster and in a more visible style. Next week, I plan to continue this and also continue helping Reid on the OBD streaming.

Team Status Report for 3/13/21

This week we spent time preparing our Design Review presentation. This process involved us planning out each aspect of our project in detail and now we have a very clear understanding of what we need to do and how it will be accomplished. One issue we discovered in the process is that the seatbelt sensors are not readily available through the OBD-II data stream, so we may not be able to use this as an infraction check. We have also received all of our required parts, so we are beginning to setup the Raspberry Pi and PiCan for some preliminary tests to see if we can read and print out a basic data stream from the OBD-II port of the car. Once this is successful, we can start the process of filtering the output and storing it for analytics and the webpage. Another task we are beginning to research and work on is our OBD-II test bench. We need to be able to simulate a data stream for testing so that we can feed this into our infraction checker to make sure it is working correctly. Creating this simulation involves us doing more research into how the data output is formatted so we can replicate it as needed. Next week, we plan to continue working on these group tasks and make good progress in OBD-II logging, infraction algorithms, and setting up the backend system for when the data is ready.

Samraj’s Status Report for 3/13/21

This week I worked on setting up AWS to host our website. Since our website involves displaying dynamic data and constantly updating the page, I will be hosting using Amazon EC2. Since I have not used AWS before, I followed a few different tutorials online to help with the process. Setting up the hosting server involves first creating an EC2 instance in the AWS portal. Once this is set up, I can connect and update the server, and then upload the files I need to display on the website. As of now, everything seems to be mostly working, but I need to do more tests with dynamic data to make sure the website can update appropriately. Aside from this, I was the presenter of our groups Design Review presentation so I spent a good amount of time earlier this week preparing for this. Next week, I plan to wrap this up and start working on the database integration/setup process. Also, now that we have all of our parts received, we can start setting up a data stream and I plan to do some preliminary testing with putting this data into a database and trying to read it on the website.

Samraj’s Status Report for 3/6/21

This week I worked more on the website which we will be using to display the real time notifications and user driving report. A lot of my work this week was done on planning out the exact process I will go about on working on this piece of the project and how to integrate it easily with my other team member’s parts, which involved a group effort of ironing out the design our overall system. We decided we will be using AWS as our database, since we can send the driving data to AWS via MQTT and also access this data from the website. Once the data is sent from the Raspberry Pi and received on the server, I can take the data and write Javascript code to interpret the data into different charts and lists to display on the website. For example, on the driving report page, we plan to have a complete summary of the user’s drive, split up into parts such as:  a chart of their speed, amount of time and distance driven, list of infractions, chart of efficiency overtime, etc. Aside from planning, I also continued work on the actual development of the website and created the HTML and CSS for two static pages with the basic template of the final website. The infractions page is just a simple box on the screen where the text will update/flash when an infraction is detected from the server. The other page is the driving report page, and has the layout for where we will be placing the data also when it is received from the server.  Apart from the website, I also spent time doing research on OBD-II data formatting and how exactly we can read this data. I found that the the data has a standardized format array of bytes where each block of the data represents some piece of the information, which is logged online. We simply can create a bit mask based on the data we need and extract it.

Next week, I plan to setup the website with AWS now that I have received credits so that we can host the website and start storing/retrieving data and be ready for when we get the ODB-II reader going.