As New Yorkers, we live on islands but can easily forget that we are surrounded by water. Manhattan and Staten Island are their own islands, and Queens and Brooklyn are part of the larger Long Island which is lined by many small barrier islands. The East River, separating Manhattan from Brooklyn and Queens, is in fact not a true river but a tidal straight. Its current is affected by ocean tides and its flow changes direction up to four times a day. I typically cross the East River twice a day but do so by underground subway. I rarely feel much of an awareness or connection to the water. One can easily go through days and weeks in New York City without any thought of the surrounding ocean. Unfortunately, it is usually disastrous events, such as the 2003 Staten Island Ferry crash or the increasing number of regional hurricanes, that bring water into our daily focus.
With this project, I plan to design a tidal clock that will bring an awareness of the ocean into users’ daily lives, reconnecting city dwellers with their maritime environment. My goal is to make a clock that pulls tidal information from the web and then uses that information to control a tank of water that will rise and fall accurately with the tides. I will do this by using programming in conjunction with an Arduino controlled water pump.
This will be my first exploration into the world of programming so I expect that it will be challenging. Thanks to Boris for pointing me to processing.org, which is a great starting point. I plan to use processing to pull XML feed of weather data from the Internet. By entering specific zip codes into the program, I will be able to pull location specific tide charts. I will then use serial communication to relate this information to Arduino. I will write code to control the rate of my water pump to accurately reflect the rise and fall of the actual tide.
I have begun looking into parts. For pumping the water, I am going to start by experimenting with solenoid water valves to see how much control I can achieve with pumping and draining. Here is an example:
I will also need a RTC, or real time clock. In my research I have learned that most microcontrollers, like Ardunio, have built-in time keepers but these only count the milliseconds since the Arduino has been turned on, not real time as related to calendar time. A RTC keeps consistent track of time even if the Arduino is reprogrammed or runs out of battery. You can read more about RTCs here: http://learn.adafruit.com/ds1307-real-time-clock-breakout-board-kit/what-is-an-rtc
Here are a few images of visual inspiration for my tide clock: