top of page

RC boat For A Mini Ocean Research

Overview

In Part 1 we connected the motor, ESC, servo, and receiver to build a functioning RC boat. Now it’s time to make it smart. In this post we’ll add an Arduino‑based payload that gathers useful environmental data such as temperature, salinity, pH, turbidity, and even GPS location—turning your hobby craft into a compact autonomous ocean monitor.


ree

1️⃣ Core Components

Component

Example Part

Purpose

Microcontroller

Arduino Uno / Nano / ESP32

Reads sensors & logs data

SD Card Module

MicroSD breakout

Stores sensor readings

Voltage Regulator

5 V buck converter

Steps down battery voltage for Arduino

GPS Module

NEO‑6M or UBlox M8N

Records coordinates

DS18B20 (Waterproof)

One Wire probe

Measures water temperature

EC Sensor

Gravity EC / TDS Kit

Estimates salinity

pH Sensor

Analog pH Board + probe

Acidity/base level

Turbidity Sensor

SEN0189 or similar

Water clarity / sediment

Optional: DO Sensor

Gravity DO probe

Dissolved oxygen content

2️⃣ Wiring the System

Use the boat’s main Li‑Po battery as the single power source. A buck converter provides a clean 5 V output for the electronics.


[Lipo Battery]
   ├─> ESC → Motor
   ├─> ESC (BEC) → Receiver → Servo (rudder)
   └─> Buck Converter (5 V) → Arduino + Sensors
           ├─> Temp Sensor (DS18B20)
           ├─> EC / TDS Sensor
           ├─> pH Sensor
           ├─> GPS Module
           ├─> Turbidity Sensor
           └─> SD Card Module
  

Keep the grounds common between ESC and Arduino, and isolate motor noise using capacitors or ferrite beads. Mount sensors away from the prop wash for cleaner readings.

3️⃣ Sample Arduino Sketch

Start simple—just collect temperature data before adding more sensors:


// Example: Read water temperature from DS18B20
#include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

void setup() {
  Serial.begin(9600);
  sensors.begin();
}

void loop() {
  sensors.requestTemperatures();
  float tempC = sensors.getTempCByIndex(0);
  Serial.print("Water Temp: ");
  Serial.print(tempC);
  Serial.println(" °C");
  delay(2000);
}
  

Once verified, integrate additional sensors one by one. Each reading can be appended to a CSV file on the SD card: timestamp, lat, lon, temp, pH, EC, turbidity.

4️⃣ Logging Data

  • Use millis() to timestamp values at regular intervals.

  • Include GPS coordinates in every record to map readings later.

  • Protect your SD card module with silicone or a printed housing.

  • Optionally send live data via ESP32 Wi‑Fi / LoRa to a shore station.

5️⃣ What to Do with the Data

After the mission, remove the SD card and import the CSV into Excel, Python, or QGIS. Plot temperature and salinity vs location, or generate color heatmaps of the surveyed area. These datasets are extremely useful for:

  • Recording small‑scale ocean temperature gradients

  • Monitoring pH shifts near coastal runoff

  • Identifying zones of high turbidity after storms

  • Tracking pollution or freshwater mixing events

6️⃣ Tips for Field Use

  • Waterproof all electronics with conformal coating or epoxy cases.

  • Use corrosion‑resistant connectors (stainless or gold‑plated pins).

  • Keep sensor cables short to reduce noise pickup.

  • Balance the boat — payload weight should stay centered and low.

  • Log battery voltage so you know when to return to shore safely.

7️⃣ Expanding the Mission

With your Arduino payload complete, you can upgrade to autonomy by adding a compass + IMU (e.g., MPU6050) or waypoint navigation using an ESP32 or Pi. From there, you’ll have built a true Uncrewed Surface Vehicle (USV) capable of repeated environmental surveys.

Comments


bottom of page