Final draft for tonight.
This commit is contained in:
parent
63dd2b41cb
commit
a7a117f2e7
90
dd.latex
90
dd.latex
|
@ -20,6 +20,8 @@
|
||||||
for long-range interaction between animal-worn collars and a gateway device.
|
for long-range interaction between animal-worn collars and a gateway device.
|
||||||
Ths gateway device will also provide an HTTP-based JSON API to apply configuration
|
Ths gateway device will also provide an HTTP-based JSON API to apply configuration
|
||||||
changes to collars through an application built for Android mobile devices.
|
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{abstract}
|
||||||
|
|
||||||
\pagebreak
|
\pagebreak
|
||||||
|
@ -27,14 +29,27 @@
|
||||||
|
|
||||||
\pagebreak
|
\pagebreak
|
||||||
|
|
||||||
\section{Identification}
|
\section{Introduction}
|
||||||
This document describes the design of the Fenceless Grazing Collar system,
|
The Fenceless Grazing Collar system is designed to reduce the amount of manual
|
||||||
following the IEEE Standard 1016-2009. It covers the design of all components
|
labor performed by farmers owning herds of livestock. By automating
|
||||||
of the FGC system, namely the Smart Application, API Server, LoRa Gateway,
|
the herding of animals such as cattle, farmers may be able to save a significant
|
||||||
and the Collars.
|
amount of time and money.
|
||||||
|
|
||||||
This document is written by Danila Fedorin, Matthew Sessions, and Ryan Alder,
|
The Fenceless Grazing Collar system consists of a smart application,
|
||||||
working on the project through Oregon State University.
|
a "gateway", and individual collars to be placed onto animals.
|
||||||
|
|
||||||
|
% Collars are attached to live animals that emit an auditory or electrical stimulus when the animal
|
||||||
|
% leaves its designated area, preventing it from traveling further outside
|
||||||
|
% the established grazing boundaries.
|
||||||
|
% TODO this is bad; improve later.
|
||||||
|
|
||||||
|
\section{Glossary}
|
||||||
|
\begin{itemize}
|
||||||
|
\item \emph{LoRa:} A radio-based protocol for \textbf{Lo}ng\textbf{Ra}nge communication.
|
||||||
|
\item \emph{HTTP:} HyperText Transfer Protocol, which is currently the most popular standard
|
||||||
|
for web servers and APIs.
|
||||||
|
\item \emph{JSON:} JavaScript Object Notation, a language for encodings structured data.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
\section{Design Stakeholders and Concerns}
|
\section{Design Stakeholders and Concerns}
|
||||||
The primary stakeholders for this project are farmers who may replace their
|
The primary stakeholders for this project are farmers who may replace their
|
||||||
|
@ -328,9 +343,66 @@ to the collars. Similarly, the collars deliver location information and stimulus
|
||||||
by sending them to the LoRa gateway, from which they are retreived by the application.
|
by sending them to the LoRa gateway, from which they are retreived by the application.
|
||||||
|
|
||||||
\subsection{State dynamics view}
|
\subsection{State dynamics view}
|
||||||
Each fenceless grazing collar is a state machine. It has multiple states,
|
Each Fenceless Grazing Collar is a state machine. The states are described as follows:
|
||||||
|
\begin{itemize}
|
||||||
|
\item \emph{Sleep:} This will be the most common state for the collar. As per the
|
||||||
|
\emph{Long battery life} design concern, it's necessary that the collars remain functional
|
||||||
|
for long periods of time without maintenance. By putting the hardware of the collar
|
||||||
|
into sleep, the system will lower power consumption, and thus improve battery life.
|
||||||
|
\item \emph{Awake; quiet} The device will be in this state when it is gathering and trasmitting
|
||||||
|
GPS data to the LoRa gateway, while the host animal is within the prescribed grazing area.
|
||||||
|
No sound or other stimulus is necessary in this state.
|
||||||
|
\item \emph{Awake; loud} The device will be in the state when the host animal is within
|
||||||
|
a small distance outside the prescribed grazing area, and had not spent a long
|
||||||
|
period of time there. In this state, the auditory stimulus will be active with the
|
||||||
|
intention of preventing the animal from further negative action.
|
||||||
|
\item \emph{Awake; shocking} The device will be in this state when the host animal has
|
||||||
|
traveled far outside the prescribed grazing area, or has remained within
|
||||||
|
a small distance of the area for a long time. The electrical stimulus component is active
|
||||||
|
in this state.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
The transitions between the states are as follows:
|
||||||
|
\begin{itemize}
|
||||||
|
\item Every 15 seconds, if the device is in the \emph{Sleep} state, it will transition
|
||||||
|
into the \emph{Awake; quiet} state.
|
||||||
|
\item In the \emph{Awake; quiet} state, if the GPS coordinates are within the prescribed grazing area,
|
||||||
|
the device will return into the \emph{Sleep} state.
|
||||||
|
\item In the \emph{Awake; quiet} state, if the GPS coordinates are within a 10ft distance
|
||||||
|
outside the prescribed grazing area, the device will transmit a stimulus activation report,
|
||||||
|
and transition into the \emph{Awake; loud} state.
|
||||||
|
\item In the \emph{Awake; loud} state, if the GPS coordinates are within the prescribed grazing
|
||||||
|
area, the device will transition into the \emph{Sleep} state.
|
||||||
|
\item in the \emph{Awake; loud} state, if the device has spent 30 seconds outside, but in
|
||||||
|
close proximity to, the prescribed grazing area, it will transmit a stimulus activation
|
||||||
|
report, and transition into the \emph{Awake; shocking} state.
|
||||||
|
\item in the \emph{Awake; loud} state, if the device is further than 10ft outside the grazing
|
||||||
|
area, it will transmit a stimulus activation report, and transition into the
|
||||||
|
\emph{Awake; shocking} state.
|
||||||
|
\item in the \emph{Awake; shocking} state, if the device is within a 10ft distance
|
||||||
|
outside the prescribed grazing area, it will transition into the \emph{Awake; loud} state.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
\section{Design overlays}
|
|
||||||
\section{Design rationale}
|
\section{Design rationale}
|
||||||
|
The LoRa communication protocol was used specifically to address the \emph{Support for large areas}
|
||||||
|
design concern: LoRa works over \textbf{Lo}ng \textbf{Ra}nge, and is bidirectional. These properties
|
||||||
|
make it ideal for the Fenceless Grazing Collar system.
|
||||||
|
|
||||||
|
The LoRa gateway's API was chosen to be HTTP-based, rather than Bluetooth-based, to allow for
|
||||||
|
both remote communication and alternative clients (such as web interfaces). This necessitates
|
||||||
|
the use of a public-facing server (and likely a domain name to allow for DNS resolution).
|
||||||
|
|
||||||
|
Kotlin was chosen over Java due to its superior type system, which helps mitigate the Million Dollar
|
||||||
|
Mistake [citation needed], as well as because of its capacity to reduce boilerplate. This is
|
||||||
|
an acceptable decision due to Google's official support of the Kotlin language.
|
||||||
|
|
||||||
|
\section{Conclusion}
|
||||||
|
The Fenceless Grazing Collar system provides reliable, accessible, and scalable solution for replacing
|
||||||
|
manual labor in livestock herding. Through the use of physical collars attached to live animals,
|
||||||
|
providing auditory and electric stimuli, the system encourages animals to stay within prescribed
|
||||||
|
grazing boundaries without the need of direct human involvement. LoRa communication is used
|
||||||
|
to manage the collar devices spread out in the field, and both an HTTP JSON-based API
|
||||||
|
and a smart application are provided to expose the configuration and data collection functionality
|
||||||
|
of the collars to the user.
|
||||||
|
|
||||||
\end{document}
|
\end{document}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user