Livestock tracking system
This project provides a low cost, easy to use method for tracking livestock anywhere and accessing the data about livestock movement from a PC web or hand held device. It tracks specific animals in a single pasture including 1) normal movement, 2) non-movement which could indicate sickness, entrapment or death, 3) loss of animal via theft or escape 4) excessive movements indicating stress or predator presence. Using existing technology livestock are tracked remotely without visiting the pasture. Pasture grazing patterns are captured to help improve pasture management.
This project remotely monitors the location of large livestock and potentially, equipment. (“Large” is typically greater than 75 lbs.)
With 98% accuracy, count the number of livestock in two separate fields using a computer or smart phone application.
With 98% accuracy determine the movements of livestock within two separate fields using a computer or smart phone application.
Demonstrate an application for counting and tracking livestock that is less than $300/base station and less than $35/tag.
Because of changes in technology no field testing has been performed yet.
The following has been accomplished:
- Hardware has been purchased and one base station has been set up for development. The remaining two base stations have been checked for completeness, but not set up for this project.
- Many hours have been spent trying to figure out the I/O system sufficiently to write a device driver. We know where to place the code changes in the kernel, but don’t know how to test them (by activating the devices).
The base problem is that the prototype was based on a previous verison of the Beaglebone (now called Beaglebone White). The latest version (which was purchased for this project) is called Beaglebone Black and is 30% faster, but (unbeknownst to me) it has a radically different I/O system.
The older I/O system was a relatively traditional Unix-like system where the serial ports (/dev/ttyO1, /dev/ttyO2, …) were where they’ve always been. In the newer one, one has to install “templates” to access the serial ports. This is a new and well documented method of exposing pin functions to software. (The Beaglebone Black has a lot more functions than pins, so one has to select which functions various pins will provide.) The problem is that the documentation I’ve been able to find doesn’t match what we see in the software. And there’s no pre-created template that maps the functions we need to any pins. Also, the fact that there are several software distributions for the Beaglebone Black doesn’t help things (a lot of the community documentation doesn’t describe which distribution they’re talking about; and each distribution seems to provide their own templates in their own directories).
We have located where to place the changes in the serial device driver (to record the instant a serial I/O interrupt occurs), but haven’t figured out how to test them because we can’t “connect” the UART device with a set of pins. Unfortunately, we can’t make the changes without testing because, at the device driver level, they will render the system completely inoperative if there are bugs, problems, and/or unanticipated actions.
- Significant research has been done and found/not found:
- Similar purposed products, described in a section of the same name.
- Not Found: Information on where device interrupts (and the like) are located on the Beaglebone Black with a Debian distribution.
The following has not been accomplished as planned:
- Working prototype.
- In-field test.
Because the hardware/software did not perform as expected, the following will be done:
- Concentrate on the non-driver software (web interface and protocols for talking to the server)
- Periodically go back to the community to see if there is any progress on the multiplexed I/O issues.
Similar Purposed Products
The following products which provide functions similar to this projects are listed below along with a description.
Beagleboard:Radarcape”; http://elinux.org/Beagleboard:Radarcape. Designed more for tracking aircraft than small transceivers, but indicates that the method used in this project is appropriate for our purposes.
We have come across the following information related to this project:
- “BeagleBone Black System Reference Manual”. Revision C, March 21, 2014. firstname.lastname@example.org
- “Introduction to the BeagleBone Black Device Tree”. Justin Cooper; Adafruit Learning System. Www.adafruit.com
- “BeagleBone Black”. https://eewiki.net/display/linuxonarm/BeagleBone+Black
- “Setting up IO Python Library on BeagleBone Black”. Justin Cooper; Adafruit Learning Systems. Www.adafruit.com
- “Trilateration”. http://en.wikipedia.org/wiki/Trilateration
- “Multilateration”. http://en.wikipedia.org/wiki/Multilateration
- “Trilateration using 3 latitude and longitude points, and 3 distances”. http://gis.stackexchange.com/questions/66/trilateration-using-3-latitude-and-longitude-points-and-3-distances
- “Trilateration algorithm for n amount of points”. http://gis.stackexchange.com/questions/40660/trilateration-algorithm-for-n-amount-of-pointsd
Agricultural Educator – Technical Advisor
UNH Cooperative Extension Service
315 Daniel Webster Hwy
Boscawen, New Hampshire 03303
Office Phone: 603 796-2151 ext 329