Adjust Resources and Reflections to match IEEE template, I think.

This commit is contained in:
Danila Fedorin 2020-05-28 23:31:27 -07:00
parent 58a773dc8b
commit 82ae1c0469
5 changed files with 81 additions and 12 deletions

View File

@ -7,6 +7,9 @@ archive.pdf: intro.pdf requirements.pdf design-doc.pdf \
binary/blog-ryan.pdf blog-daniel.pdf binary/blog-matt.pdf \
readme.pdf
reflection.pdf: reflection.tex
pdflatex reflection.tex
# Generate LaTeX files from READMEs
# Matt's READMEs don't use the convention for headers; we need to update them so that every
# "section" is a subsection and so on. We also insert our own overarching section title.

View File

@ -1,7 +1,6 @@
\documentclass[10pt, draftclsnofoot,onecolumn, compsoc]{IEEEtran}
\def\changemargin#1#2{\list{}{\rightmargin#2\leftmargin#1}\item[]}
\setlength{\parindent}{0pt}
\let\endchangemargin=\endlist
\usepackage{hyperref}
@ -24,7 +23,7 @@
\def \CapstoneProjectName{Automated Fenceless Grazing}
\def \CapstoneSponsorCompany{Oregon State University}
\def \CapstoneSponsorPerson{Bechir Hamdaoui}
\def \DocType{Project READMEs}
\def \DocType{Project Documentation}
\newcommand{\NameSigPair}[1]{\par
\makebox[2.75in][r]{#1} \hfil \makebox[3.25in]{\makebox[2.25in]{\hrulefill} \hfill \makebox[.75in]{\hrulefill}}
@ -62,19 +61,25 @@
}
\vspace{20pt}
}
% \begin{abstract}
% The Fenceless Grazing Collar system aims to reduce the amount of work
% needed by farmers to keep herds of grazing animals. The project
% will be implemented using the LoRa wireless communication protocol to allow
% for long-range interaction between animal-worn collars and a gateway device.
% The gateway device will also provide an HTTP-based JSON API to apply configuration
% changes to collars through an application built for Android mobile devices.
% The MariaDB SQL database management system will be used to store the data
% received from the collar for viewing and analysis.
% \end{abstract}
\end{singlespace}
\end{titlepage}
\section{Project Overview}
Our project consists of three major components: a series of end-devices attached to each animal, a gateway hosted in a central location, and a network server implementing the LoRaWAN capabilities. Much of the communication between these devices is via LoRa, the physical communication protocol. Each end-device communicates back and forth with the gateway using LoRa and LoRaWAN as illustrated in the image linked below. A Raspberry Pi is the main computer that implements both the LoRaWAN gateway and the HTTP API server. The LoRaWAN gateway intercepts communications and forwards LoRa packets received from each end-device to the network server over the desired backend. This depends on the internet setup at each seperate farm, and can vary between Ethernet or Wi-Fi to a router connected to an ISP modem. The gateway also sends packets back to each end-device when the user has provided a new set of boundary coordinates.
Packets are forwarded by the gateway off to The Things Network, hosted outside of our LAN. The Things Network manages encryption and parsing of the packets, and sends all data back to us over the internet backend. The Pi gathers this data, and stores it in the SQL database.
Lastly, the HTTP server hosted on the Pi queries the databased when necessary to send communications back to the user. The user runs an Android application on their smartphone, and is able to connect to our service from anywhere outside of the LAN as long as they have an internet connection.
Each collar, or end-device, hosts various hardware components. These components include an Arduino Nano, a 5 volt to 3.3 volt logic converter, a GPS receiver, and a LoRa transceiver. These components communicate over SPI and the Nano hosts compiled C++ code that manages sending and receiving GPS data over LoRaWAN as well as boundary checking.
All of these components work together to provide the required functionality of the Fenceless Grazing System, and give the user a seamless way to interact with each one of the collars while sufficiently abstracting the technical components.
\begin{figure}[h]
\centering
\includegraphics[width=0.8\linewidth]{stack.png}
\end{figure}
\pagebreak
\input{readme-app.tex}

33
reflection.tex Normal file
View File

@ -0,0 +1,33 @@
\documentclass[10pt, draftclsnofoot,onecolumn, compsoc]{IEEEtran}
\def\changemargin#1#2{\list{}{\rightmargin#2\leftmargin#1}\item[]}
\let\endchangemargin=\endlist
\usepackage{setspace}
\linespread{1}
\title{Conclusions and Reflections}
\begin{document}
\maketitle
\section*{Ryan Alder}
\subsection*{What technical information did you learn?}
I learned how to write C++ code for AVR, how to compile and flash code onto Arduino chips, and how to use a bootloader (vs no bootloader) for Arduino. Outside of the hardware, I learned a lot regarding LoRa and LoRaWAN, including the specific implementation and design constraints of this communication protocol. I went into this project knowing nothing regarding LoRa, and have come a very long way since then. Diving into LoRa specification was extremely fun and rewarding, as it helped us to understand how to implement the protocol into our network. This information also provided me with knowledge regarding the constraints of the LoRa protocol, informing me of the scalability and efficiency of a full LoRaWAN network.
\subsection*{What non-technical information did you learn?}
How to communicate with team members, project management, and document design. This class required a lot of writing which I would not classify as a strong suit for myself, and having the opportunity to write helped me to build that skill.
\subsection*{What have you learned about project work?}
Specifically, I have learned how to effectively spread out work and work as a team. While I have had internship experience before, much of my work was completely solo and I do not have much experience working on software as a team. This is the largest project I have participated in where there were other people working on the same code base, which taught me how to develop software with others.
\subsection*{What have you learned about project management?}
Mostly, each team needs an actual leader. A team is more efficient with a person in charge helping to make decisions and assign work. Our team learned this after the Fall term, and had one of our team members assign out work during the Winter term.
\subsection*{What have you learned about working in teams?}
I have learned how to communicate with others and spread out the work. As a team member you must be flexible to other ideas, especially if you are not in charge of the team. Learning new things that others want to do is required, otherwise you wont be able to contribute or will end up forcing other people to do things that only you are confident with. Flexibility and maleability leads to a good, effective team. The more variety in terms of ideas that are brought to the table results in a better product.
\subsection*{If you could do it all over, what would you do differently?}
Honestly I wouldn't change much. After the first term, our team discovered a better way of splitting up work to make us more efficient and ensure work was being done evenly. The only significant thing I would change would be to implement this design from the beginning, to reduce anger amongst teammates and increase our efficiency. We used an online resource to assign out action items to the team members, and then team members could complete these action items on their own time and report results back to the team via this online tool.
\end{document}

28
resources.tex Normal file
View File

@ -0,0 +1,28 @@
\documentclass[10pt, draftclsnofoot,onecolumn, compsoc]{IEEEtran}
\def\changemargin#1#2{\list{}{\rightmargin#2\leftmargin#1}\item[]}
\let\endchangemargin=\endlist
\usepackage{setspace}
\linespread{1}
\title{Resources}
\begin{document}
\maketitle
Much of the information that we gathered for the completion of this assignment were hosted on various websites.
\begin{enumerate}
\item One of the most helpful websites was the LoRa/LoRaWAN documentation hosted on the Lora Alliance website (https://lora-alliance.org/lorawan-for-developers) and The Things Network webpage (https://www.thethingsnetwork.org/). These two resources provided much of the necessary background into LoRa and how the protocol is implemented.
\item Another helpful website was the Android documentation (https://developer.android.com/docs) and the Kotlin documentation (https://kotlinlang.org/docs/reference/). These two sites helped with the development of the Android application, and as Daniel had questions with the development of this application he found help and support on these sites.
\item The Python documentation was also very helpful in the development of the HTTP API server hosted on the Pi. This documentation can be found here: https://docs.python.org/3/
\item Haskell was used for the CDL testing scripts, and the documentation provided on their website was a help (https://www.haskell.org/documentation/).
\item Lastly, we referenced the Arduino Nano manual provided by Arduino here
https://www.arduino.cc/en/uploads/Main/ArduinoNanoManual23.pdf
\end{enumerate}
Easily the most helpful individual on campus was our client Professor Bechir Hamdaoui. He was extremely helpful as he brought knowledge and experience with various forms of networking. He is very well versed in how networking protocols are implemented, and guided us to answer specific LoRaWAN implementation questions that we didn't know we had. Without his experience, we would have had to research LoRaWAN specifications towards the end of the project which would have resulted in us scrambling to understand how to implement the protocol.
\end{document}

BIN
stack.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 KiB