Project by John61730; Arduino Tide Gauge

John61730 just shared a new project: "Arduino Tide Gauge"

I used an Arduino and a US-100 ultrasonic sensor to make an extremely low-cost tide gauge.
This project measures the tide by sensing the distance to water using a US-100 ultrasonic sensor. The device has a 3D printed base and uses a peanut butter jar to create a waterproof housing. The 3D printed base fits atop a PVC tube which acts as a stilling well to dampen wave effects. Timestamped data is logged to a microSD card while the instantaneous results are displayed on an optional screen or blinked on an LED. The aim of the design was to make an extremely cheap tide gauge so that multiple units could be made which would essentially be disposable.

Read more

Thanks for sharing John!

What is the end goal for this project? You mentioned that you would want to make many of them, is there some aggregate data that you are trying to capture or is it just for ease of measuring?

This project looks very interesting, particularly how you have designed your own waterproof housing.

Unfortunately I cannot download your STL files - they do not seem to be on the server.

Can someone please check that the included link is still working?

Kind Regards,


Hi Robert,

Yes it looks like there is an issue with the file hosting.
Here is a tinkerCAD link to get you going until they get the issue fixed.


1 Like

Hi Everyone,

Sorry for the late reply on this one, we only just noticed the broken link. I have just pulled the .stl file version of your housing design from Tinkercad and reuploaded it as a zip file that can be found in the attachments section of the project!

John, if there are any updates that need to be made to this one just let us know!

1 Like

Hi Charlees,

Perhaps some of it has been dropped off.

Here is the initial libraries bit, let me know if you think there is any more missing.

// User setup variables

int scheduleFreq = 20; // logging freq in seconds

#define avgSamples 70 // number of distance sample measured

#define edgeSamples 10 // number of samples discarded at upper and lower range

#define minRge 300 // minimum distance

#define maxRge 2000 // maximum range

#define debugPlot 0 // debug plot mode

String ver = “1.0.0”; // version number (5 char max)



// Date and time functions (DS1307 I2C RTC)

#include <Wire.h>

#include <RTClib.h>

// SD Card Functions

#include <SdFat.h>

SdFat SD;

// Powersaving functions

#include <LowPower.h>

// us100 functions

#include <SoftwareSerial.h>

// lcd

#include <avr/pgmspace.h>

#include <SPI.h>

Kind Regards



I’m sorry John. I initially copied from the sketch in the window but when I downloaded from the link it was all there.