The Wave Project v2.5










I wanted to learn to write code using the Processing 3 language so I created The Wave Project as a learning  exercise.  Often times I find it is better for me to work towards some goal or project rather than to just read about some new programming language.

In order to explore the capabilities of the Processing programming language I outlined my educational goals.

Learning Outcome (the end result of the lesson)
* Create a program that pulls data gathered from an ocean buoy out in the Bearing Sea and display that data both numerically and graphically. The numerical data can be averaged. The graphical representations can be approximate.

To achieve this learning outcome I devised the following objectives.

Learning Objectives ( steps taken to complete the learning outcome )
   1) Learn to write a program in Processing 3.0.
   2) Learn to pull data for the program from the Internet.
   3) Learn to massage and display the data as information.
   4) Learn to display information both numerically and graphically.
   5) Learn to create a multi-pane data dashboard to show the numeric and graphic data.

The result of my education project, which I call "The Wave Project V2.5" consists of the following 11 Processing code modules.

The_Wave_Project_V2_5.pde
Bezier_Routines.pde
Constants.pde
Data_Routines.pde
GUI.pde
Sine_Routines.pde
Text_Routines.pde
Timing_Routines.pde
Variables.pde
Weather_Resources.pde
x_Resources.pde


Project Functionality
The program pulls the latest buoy sensor reading from the National Data Buoy Center. 
I chose buoy  46035 which is in the middle of the Bering Sea, home to one of my favorite sea foods.
 

























Once the program has pulled the buoy sensor information, it then processes the data, builds and displays both text and graphical information for the display dashboard.  I chose to display information about the buoy in one text pane of the dashboard, information about wave frequency over time as a moving bezier curve, information about wave height and wave frequency as a moving sine wave and finally information about the current weather conditions as text.  The program pulls fresh data automatically once an hour.
The text information is accurate but the graphical representations, the bezier and sine waves, are only approximations even though they use buoy data in their creation. Remember this is just an educational exercise not an actual accurate nautical application!

Below is a short loop animated GIF of the program as it runs.



















As a Processing 3 learning exercise, even through this project took me a while and was frustrating at times, it turned out to be quite successful and I look forward to creating more projects in Processing.

Project Source Code
The source code for this project can be found on the digitalstew GitHub page.

The code is released to the public domain as-is, without restrictions.