Project showcase
WAVEbuoy

WAVEbuoy © MIT

The WAVEbuoy is a arduino lamp connected to the internet that displays the current wave height of any of the NDCBs network of wavebuoys

  • 1,246 views
  • 1 comment
  • 5 respects

Components and supplies

About this project

The WAVEbuoy is an arduino lamp connected to the internet that displays the current wave height of any of the National Data Buoy Centre's wave buoys.

This lamp is currently connected to the Sevenstones Lightship buoy that gives an indication of swell approaching Cornwall in the UK. The lamp can also be connected to any surfing location covered by magicseaweed.com

RED - High surf alert

GREEN - Medium swell

BLUE - Low swell

The case....it's up to you how you encase it. I'm a carpenter by trade and I had the ability to use some scrap pieces of oak. You could house it in all sorts of ready made boxes or lamps. The white dome on top is a lightbulb that I have cut in half.

It's a very simple circuit using 2 RGB modules and 3 resistors. Just follow the diagrams. If you need the fritzing file let me know.

I know I could improve this by using a PCB, but i just sawed off a small section of the breadboard and stuck it in the oak case.

Code

UNO CodeArduino
Here is the arduino code. Just change the link to your local buoy listed here on the Google map.

http://www.ndbc.noaa.gov/

Not all of them have the 'Significant Wave Height' variable so check first.

With a slight edit you can also pull data from any location covered at magicseaweed by using the 'Swell' variable

http://magicseaweed.com/syndicate/rss/index.php?id...

Replace the id=1 in the link to your local spot the id can be found by visiting the spot on msw and looking in the link.
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
char serverName[] = "ndbc.noaa.gov";
EthernetClient client;
int red=7,green=8,blue=9; // PWM pins initialized to pass values of RGB
float waveheight; // float value that holds wave height
void setup()
{
  Serial.begin(9600);
  pinMode(red   ,OUTPUT);
  pinMode(green ,OUTPUT);
  pinMode(blue  ,OUTPUT);
  if (Ethernet.begin(mac) == 0)
  { // start ethernet using mac & IP address
    while(true) ;
  }
  delay(2000); // give the Ethernet shield 2 second to initialize
}
void loop()
{
  if (client.connect(serverName, 80)>0) {
    client.println("GET http://www.ndbc.noaa.gov/data/latest_obs/62081.rss");
  }
  if (client.connected()) {
    if(client.find("Significant Wave Height:"))
    {//look for the wave height and pass the value to variable
      waveheight = client.parseFloat();
  }
  else{
    digitalWrite(13,HIGH);
  }
  //The code below lights up RGB module light depending on the wave height
   if ((waveheight>=0)&&(waveheight<3))
   {
     analogWrite(red   ,0  );
     analogWrite(green ,0  );
     analogWrite(blue  ,255);
   }
   if ((waveheight>=3)&&(waveheight<8))
   {
     analogWrite(red   ,0);
     analogWrite(green ,255 );
     analogWrite(blue  ,0);
   };
   if ((waveheight>=8)&&(waveheight<100))
   {
     analogWrite(red   ,255 );
     analogWrite(green ,0);
     analogWrite(blue  ,0);
   }

  client.stop();//Disconnect
}
}

Schematics

Circuit
Wavebuoy 3

Comments

Similar projects you might like

Colors of Photons

Project showcase by Eva Konya and Janos Magyar

  • 3,914 views
  • 4 comments
  • 19 respects

3D Printed R2-D2 with an Arduino Core

Project showcase by Raul Antonio

  • 3,251 views
  • 1 comment
  • 4 respects

Wooden Chess Board with Piece Recognition

Project showcase by MaxChess

  • 28,371 views
  • 41 comments
  • 82 respects

Arduino Clock

Project tutorial by Arduino_Scuola

  • 25,642 views
  • 0 comments
  • 11 respects

Room temperature sensor with display on Mobile

Project showcase by Kaustubh Agarwal

  • 23,926 views
  • 8 comments
  • 54 respects

Electromagnetic Field Detector - Arduino Uno

Project showcase by justin1445

  • 15,928 views
  • 7 comments
  • 20 respects
Add projectSign up / Login