High-Power IoT Boat Innovation: Cloud Control with Arduino Nano 33 IoT
This project is designed to demonstrate the capabilities of the **Arduino Nano 33 IoT** in connecting to the **Arduino Cloud IoT** ecosystem, focusing on creating an Aquatic Maker project. This presents a challenging task for engineers and embedded system developers, as it requires interdisciplinary knowledge including buoyancy, motion dynamics, and most importantly, the prevention of water ingress into electronic systems (Water Tightness).

In the video below, you will see the boat's performance test as it navigates, controlled via a Dashboard created on Arduino Cloud IoT by Eliezer Neto. We tested basic movement logic such as rotating on axis, moving forward, and turning right.
One engineering problem encountered during testing was "uneven forward movement," caused by RPM mismatch between the two motors, leading the boat to veer off course. If you face this issue, there are two solutions: 1) a **Software solution** by adding a PID (Proportional-Integral-Derivative) algorithm to compensate for RPM, or 2) a **Hardware solution** by using a Voltage Limiter or adjusting the Trimpot on the motor driver to equalize the voltage.
Backup Control System (Offline Control System)
In addition to the IoT system, the circuit diagram also includes a grey box with push buttons connected to the Analog port of the Arduino Nano 33 IoT. This part is designed as an Offline control system via a tethered connection for those who want to study the basic logic or use it in areas without WiFi signals. I have prepared separate Source Code for this Offline mode.

In-depth Look at the Propulsion System's Logic
The core of this project lies in the `engine()` function, which uses **Differential Steering** (similar to a tank) to control two motors, allowing the boat to change direction quickly:
- Forward: Both propellers must rotate in the direction that pushes thrust backward simultaneously.
- Turning on Axis: One motor rotates clockwise (CW), and the other rotates counter-clockwise (CCW).
- Technical Advice: The motor shafts should be extended to ensure the propellers are 100% submerged in water. This will increase propulsion and reduce cavitation, allowing the boat to move at full efficiency.

Software Logic and Hardware Analysis
From the analysis of the Code used, we have divided the functionality into the following main modules:
- Siren System: Uses the `siren()` function, which calculates values using a Sine Wave (
sin()function) to create a smooth and consistent audio frequency via a Buzzer on pin 11, giving the feel of a real rescue boat siren. - Visual Indicators: The `flashes()` function controls red and blue LEDs to alternate every 1,000 milliseconds, using a Non-blocking technique with `millis()` to avoid interfering with the propulsion logic.
- Servo Control: The `Servo.h` library is used to control accessories (e.g., laser or camera mount) on pin 9, adding versatility to the boat.
In the initial assembly phase, I chose to use a **Protoboard** to facilitate easy adjustment of component placement. This is because **Center of Gravity (CG)** is crucial when building a boat. If the battery or controller is slightly tilted to one side, the boat will lose balance and either sink or veer off course.

If you have questions about the code or waterproofing techniques, feel free to ask in the comments below, or follow my additional work on Instagram: @profsandromesquita.