This past week, I prepped a lot for the presentation on Monday and made sure I understood every part of the project. And once again, it ended up being a lot of debugging for everyone. I had to adjust around my web application a lot as well because we initially were going to rescope to only 7 nodes but ended up switching back to 9 nodes so I had to readjust everything again. And while testing, it uncovered a bug in how I was doing some of the web application. Essentially, I was not showing the dead links and adding the links of the STP after showing the dead links. Apart from the web application, I helped debug some parts of the graph code to eliminate nodes from the graph when they are dead and assisted with helping fix the JSON file writing. I had two final exams this week so I spent a lot of time studying for those. Today, however, we settled on how we are planning to demo and got some runs going. I have also gotten a start on the final paper and created slides for a demo to make sure anyone who has never seen our project before will be able to understand the project. We still need to do more testing to measure all of our requirements. I will be reaching out to course staff for assistance in measuring power consumption in the next day or so.
Ankita’s Status Report for 12/03
These past two weeks have involved lots of integration of our parts. I had to add some features to the web application to make it more coherent and accessible to the user. Now, each node can be one of three statuses: standard, on fire, or dead. There are also now links between each of the nodes that shows the topology between the nodes and shows what our code is actually doing. These links can be one of three statuses as well: possible link, link being used by the Spanning Tree Protocol, or dead. So now, within the web application a user should be able to see which form of the spanning tree provides the optimal path to where the fire location is as indicated by the rest of our code. I added all of this to a separate Git repository to store all my code and have some version control. All the code from the web application was then moved onto the Raspberry Pi finally and integrated with the rest of the parts. Though those parts are still in progress, I am able to get the data from the nodes and display it properly. There were just some issues with choosing what would be displayed because if a node is dead and on fire, I should be showing on the application that it is dead because there is no way the user will know it is on fire. Those small cases that I never considered were added into the web application. [RESCOPING] To focus attention on the network debugging and the testing aspect of our project, the web application will not include an ability to refresh the page every time the JSON file receives new data. One of us will manually reload the page to show the change in data. Other than that, I have been helping debug the network issues as well as taking the LoRA transceiver’s TOA (time on air) calculations and trying to make functions out of those equations to make it easier for network communication post-presentation and pre-final demo. Hopefully this will help improve timing and help with our “efficiency” later on.
Ankita’s Status Report for 11/19
This week was primarily spent on the network scheduling. I needed to create a structure from the topology provided to me that maps out which nodes would be receiving and transmitting at what time slot as well as which node will be getting the schedule in what order. This involved using some of the structures created by Arden and making my own data struct that had all these elements of the schedule. The way I approached it was walking through the topology using an algorithm similar to Breadth First Search, where each “level” of the tree was looked at separately. However, we look at the leaf nodes first and then move up to the higher-level nodes. I then kept track of the nodes that were being looked at and their parent node to determine what is transmitting and what is receiving. This was all added to two separate adjacent lists allocated to a buffer size of one less than the number of nodes. In terms of the receiving order, it works using the quasi-Breadth First Search method and sends it to all the nodes on higher levels. I tested this with a few different topologies to make sure it works: a line topology of four nodes, a tree of all nine nodes that we use in our design report, and a mesh topology of four nodes. The schedule is printed out to see the order. Working on the schedule exposed some bugs in the code, but those were quickly resolved. This is now being integrated into the rest of the protocol. Now, as more of the network is being resolved, I need to figure out how to build the backend of the web application and take input from the network.
Ankita’s Status Report for 11/12
The web application has been for the most part completed and since the demos some more features have been added to make the interface more user-friendly. The “About” and “How to Use” sections have been flushed out in terms of the words that are used to describe it. The map has been slightly adjusted so that all the nodes are as equidistant away from each other as possible to replicate our smaller-scaled future demo. Now, instead of just a node turning red when there is a fire (there is a change in some of the graphics here now too) it is also able to handle when a node dies. This means that the node has gone down in the system. This is currently also being hard-coded with a boolean flag, causing the node to turn gray to signify it being inaccessible. This code has been set aside for now and needs to include a json file input but that will be adjusted when the network is complete. Since then and our various team meetings, I have been sick and have not been super able to do work while in quarantine. However, I am now working on creating a schedule for our network to determine if it is under RX/TX. This transmission schedule is beneficial to work with the rest of the protocol and needs to be completed for a lot of the rest to continue. At the moment, my design for the schedule is a framework but is in the process of being implemented. The plan is to have this done during the week so that Arden will have it ready to transmit the schedule amongst the nodes and Karen will have it ready to execute the schedule.
Ankita’s Status Report for 11/05
This week was the most successful work week this semester in terms of the capstone project. I had to find a USB keyboard and mouse to use the monitors on campus easily but found an alternative way to create the web application. As Django can be installed locally on my laptop, I used it that way to make the web application and plan to scp it to the RPi when I can. The web application is now working: there is a map that shows our eight nodes as well as two other tabs on the web application created for the convenience of the user. I actually completely scrapped the design that I used in the design report in terms of the APIs and libraries I was planning on using. I was struggling with the app this past week, because I was trying to create an image map (images transposed on one another) but realized it was easier to use Folium, a library used to make maps. It made things way easier to implement and use. I was able to get a popup to show up at the node “on fire” and was able to change its color depending on if it is on fire or not. At the moment, the way of deciding if the node is on fire is through setting the node’s id in the code but will be changed to the output of the network when that is configured. This week I plan on possibly refining the web application more if it seems needed but transition to helping with the network.
Ankita’s Status Report for 10/29
This week my work on the capstone project hit a bit of an obstacle. I managed to have the web application up and running; however, when trying to add images to the web application I am running into issues. Thinking about how the web application should respond to the network is making me reconsider some of the design details that were stated in the paper. I am planning by next week to have the images working so I can shift my focus to the scheduling in the network when Arden is ready. I will talk to the faculty on Monday about suggestions about the web application and who to reach out to for my issues.
Ankita’s Status Report for 10/22
In the past few weeks since the last status report, I worked with the rest of my team writing up the design document. After writing all our individual parts, we spent many hours combining our content into our document. I went home for fall break and took the Raspberry Pi with me. It was difficult to deal with because my home network is not that great but I got our fire-away web application up and running. Right now it is a skeleton web app and simply has text. I am trying to create a database that can take the status of each of the 8 nodes to signal to the application if the node is alive or not but am having trouble with that. I need to figure out how to create some table or database to keep track of that. Debugging some of the setup for the web application did take me some time. I have decided that if I were to create a skeleton that is taking in the data and assist with the actual routing protocol and network and then come back to the application to make it pretty and professional, it would be a more efficient use of my time. Therefore, depending on how much I get done in the upcoming week, I will shift around my individual Gantt chart components to have something worthwhile to show at the Interim Demo. So, I want to get the data inputs up and running but am not sure how to get that working. I will do more research on that and attempt it.
Ankita’s Status Report for 10/08
This week has set me behind a lot in my intended schedule as mentioned in the Gantt chart. I had intended to have Django all up and running on the RPi, but I have yet to do that after falling sick this past week. Due to my work being stagnant, I have adjusted my schedule and have laid it out as the following: By the start of fall break, I intend to download Django and all other software needed onto the Raspberry Pi. I also intend to create a dummy web server with the finalized design that has no actual functioning components yet but looks how we want it to look. I have read up on a lot of documentation regarding Django and what might end up becoming future challenges for me, so I have taken note of that. I have decided that everything related to the web application will be written in Python for simplicity. After recovering, I am hoping to catch up to my Gantt chart so that my component is completed on time. Unfortunately, this might lead to some work being done during the break.
Ankita’s Status Report for 10/01
This past week has been really busy for me with other classes, so I haven’t done as much as I set out to do and am planning on adjusting my next week’s schedule accordingly. I got the Raspberry Pi 4 from the inventory and have been trying to find the best software for web application development to download. After doing lots of research, I decided on using Django as there are lots of tutorials/references as well as an easier learning curve. I wanted to choose a platform with easy management and this seems to be the best option. I also met with Professor Mukherjee regarding the issues I was having with the Raspberry Pi; now I am able to ssh into the Pi and am planning to download any software that our team needs onto the Pi. I did draw out a design of what the ideal interface should look like, with a map of all the nodes and a system that sends text alerts to the general public regarding the location of a fire. The rest of the time I have been working on the design presentation slidedeck. For the upcoming week, I am hoping to get a simple version of a web application up and running before adding special features.
Ankita’s Status Report for 9/24
Since we have just pivoted to a new project, I have spent the last few days researching how to develop a web application. As a group we have decided to use a RPi to host the web application so I have been doing some personal research on how to set that up. I think that the best option to host the web application is to use Heroku so I have been looking into using that. For simplicity and convenience, the web application’s code that I will be writing will all be in Python. I have also been drawing out designs of what the web application should actually look like. I know that I want to have a graphic that looks like a heat map that will change colors as “fire” is detected at a specific node. I am planning on creating a sample web application just to familiarize myself with the platform in the upcoming week as well as coming up with a drawn out design of what the desired web application should look like. So far, with our adjusted schedule, I am on track and will discuss with staff about ordering a RPi in the upcoming week.