As a kid, I dreamed of an automated farm. After a bit of computer science education, I'm now implementing it. Currently, our dairy cows are automatically fed four times per day—no human presence required.
Two batches of feed (up to 4 tons per batch!) are mixed each day. For each batch, the operator simply enters the desired batch size and forks in a small amount of hay (the only non-automated ingredient). A precise ration is calculated and measured by an electronic weigh scale, and a Programmable Logic Controller (PLC, like those used in factories) loads each of the other 8 required ingredients sequentially.
The PLC controls all feeding motors and actuators, and reads the scale weight to load and unload the set amounts. The PLC simultaneously monitors feedback from many sensors to ensure that everything is operating smoothly. If an anomaly is detected, all motors are stopped, and a SMS message is sent to the operator's phone describing the detected issue.
A webpage allows remote management of the feeding schedule. In addition, the scale display is emulated with working buttons on a webpage to allow remote control and monitoring.
The MultiPath TCP page documents how I improved my parent's Internet access by simultaneously utilizing two ISPs.
Dairy cows never take vacations. I've networked an array of video cameras so that my family's cows and calves can be remotely monitored. This allows more frequent checks than if one has to physically visit the barn each time. The linked source code runs on a Raspberry Pi and allows one to stream RTSP video feeds from the cameras to high-definition TVs in the living room. Through an IR sensor, the TV remote control can select which camera to view, and also turn the lights on and off in one of the barns.
RTSP Proxy is golang program to enable the cow cameras to be viewed on a mobile app, from anywhere with an internet connection
Current Web Demo: Locus Demo
- NSDI 2013: Lombard, IL, April 3, 2013
- MobiOpp 2012: Zurich, Switzerland, March 15, 2012
- MobiSys 2011: Washington D.C, June 29th, 2011
Tribonacci Entertainment Distribution (TED)
TED is a whole-apartment audio distribution system that allows music input from any bedroom or other sources to output at any combination of bedrooms, living room, bathroom, kitchen, and stairway. TED can be controlled from any web browser.
For about 1.5 years, my apartment was on a per-hour real-time pricing plan for electricity. I had hoped to save money and, in a small way, reduce my environmental impact by incentivizing myself to reduce energy demand during peak loads, when the most unclean power sources are often used. I eventually concluded that the (small) savings weren't worth the stress of monitoring prices and adjusting my behavior. In the meantime though, I wrote a neat script that would scrape the hourly prices from the electric company's website and schedule OS X to sleep when the the price rose above a threshold, and wake again when the price dropped.
A modification of the XBox 360 MIDI Pro Adapter for Rock Band 3 to re-enable the Squier Stratocaster guitar buttons.
This website was created by me to organize and make available information about the decedents of Hans Georg and Katherina Ehrat, my Great-Great-Great Grandparents, who immigrated to the United States in 1871.
Spudwinder is a pneumatic potato cannon I built in high school. My friend, Drew Bell, built Spudnik I (combustion powered) and Spudnik II (combustion or pneumatic).