ROV و زیردریایی کنترلشده یعنی چه؟ (برای مبتدی)
ROV (Remotely Operated Vehicle) یک وسیله زیرآبی کنترلشده است. از بازرسی پلها و بنادر تا پژوهشهای دریایی، ROV کاربردهای وسیعی دارد. ساخت یک ROV کوچک با قطعات ارزانقیمت یکی از لذتبخشترین پروژههای DIY است.
در این پروژه از ESP32 برای کنترل و ارتباط WiFi استفاده میشود. ROV از طریق یک Tether (کابل نازک waterproof) که داده و برق را منتقل میکند کنترل میشود — چون سیگنال WiFi در آب تضعیف میشود. دو پمپ آب کوچک برای حرکت رو به جلو/عقب و دو سرووی ضدآب برای فرمان چپ/راست استفاده میشود. یک دوربین ESP32-CAM داخل بدنه ضدآب تصویر زنده به کامپیوتر میفرستد.
محصولی که میسازید
یک ROV کوچک که تا ۵ متر عمق شنا میکند و تصویر زنده از زیرآب میفرستد.
- زمان ساخت: ۸ تا ۱۲ ساعت
- هزینه: ۱.۵ تا ۳ میلیون تومان
- عمق: تا ۵ متر
قطعات لازم (BOM)
| قطعه | نقش |
|---|---|
| لوله PVC ۱۱۰mm قطر | بدنه اصلی ضدآب |
| ESP32-CAM | کنترل + تصویر |
| پمپ آب ۵V Mini DC × ۲ | پروپالشن |
| سرووموتور Waterproof SG90 × ۲ | فرمان |
| درایور موتور L298N Mini | کنترل پمپها |
| باتری LiPo 7.4V 2S (داخل بدنه) | تغذیه |
| Tether: کابل LAN ۵ متر | ارتباط داده |
| درب اکریلیک + O-Ring + سیلیکون | آببندی |
کد ESP32 کنترل ROV (WiFi Web Server)
#include <WiFi.h>
#include <WebServer.h>
const char* ssid = "ROV_AP";
const char* password = "12345678";
WebServer server(80);
const int PUMP_L_FWD=5, PUMP_L_BWD=4;
const int PUMP_R_FWD=18, PUMP_R_BWD=19;
void handleCommand() {
String cmd = server.arg("cmd");
if (cmd == "fwd") {
digitalWrite(PUMP_L_FWD,1); digitalWrite(PUMP_R_FWD,1);
digitalWrite(PUMP_L_BWD,0); digitalWrite(PUMP_R_BWD,0);
} else if (cmd == "bwd") {
digitalWrite(PUMP_L_FWD,0); digitalWrite(PUMP_R_FWD,0);
digitalWrite(PUMP_L_BWD,1); digitalWrite(PUMP_R_BWD,1);
} else if (cmd == "left") {
digitalWrite(PUMP_L_FWD,0); digitalWrite(PUMP_R_FWD,1);
} else if (cmd == "right") {
digitalWrite(PUMP_L_FWD,1); digitalWrite(PUMP_R_FWD,0);
} else {
for (int p : {PUMP_L_FWD,PUMP_L_BWD,PUMP_R_FWD,PUMP_R_BWD}) digitalWrite(p,0);
}
server.send(200, "text/plain", "OK");
}
void setup() {
for (int p : {PUMP_L_FWD,PUMP_L_BWD,PUMP_R_FWD,PUMP_R_BWD}) pinMode(p, OUTPUT);
WiFi.softAP(ssid, password);
server.on("/cmd", handleCommand);
server.begin();
}
void loop() { server.handleClient(); }
چکلیست ضدآبکاری
| نقطه آببندی | روش |
|---|---|
| دربهای دو طرف لوله | O-Ring + سیلیکون RTV |
| ورودی سیم Tether | Cable Gland ضدآب IP68 |
| شفت پمپ و سرو | Epoxy marine + سیلیکون |
| تست نشتی ۱۰ دقیقه در ۵۰cm آب | قبل از برقدار کردن |