واکیتاکی، SA818 و رادیو VHF/UHF یعنی چه؟ (برای مبتدی)
واکیتاکی (Walkie-Talkie) یک رادیو دوطرفه دستی است که بدون اینترنت و بدون سیمکارت ارتباط صوتی برقرار میکند. رادیوهای آماده بازار (مثل Baofeng UV-5R) در باندهای VHF (136-174MHz) و UHF (400-480MHz) کار میکنند. ساخت یک واکیتاکی DIY تجربه بینظیری در درک رادیو ارتباطی است.
SA818 یک ماژول رادیویی یکپارچه ارزانقیمت است که توسط یک UART ساده با آردوینو کنترل میشود. شما فرکانس، توان خروجی، CTCSS (کد تون برای جلوگیری از مزاحمت)، و حالت PTT را از طریق دستورات AT تنظیم میکنید. خروجی آن مستقیماً به آنتن و میکروفون/اسپیکر وصل میشود.
PTT (Push-To-Talk) یعنی وقتی دکمه را نگه میدارید فرستنده روشن میشود و صحبت میکنید؛ وقتی رها میکنید فقط میشنوید. این استاندارد همه رادیوهای دوطرفه است.
محصولی که میسازید
یک واکیتاکی DIY با قابلیت برنامهریزی فرکانس، برد ۲ تا ۵ کیلومتر در فضای باز.
- زمان ساخت: ۳ تا ۵ ساعت
- هزینه: ۸۰۰ هزار تا ۱.۵ میلیون تومان
- برد: ۲-۵km فضای باز با آنتن مناسب
⚠ استفاده از رادیوهای VHF/UHF در ایران نیاز به مجوز دارد. این پروژه صرفاً برای آموزش و باندهای فریبند مجاز است.
قطعات لازم (BOM)
| قطعه | مدل | نقش |
|---|---|---|
| ماژول رادیو | SA818 VHF یا SA818 UHF | فرستنده/گیرنده |
| میکروکنترلر | Arduino Nano | کنترل SA818 با AT |
| میکروفون | میکروفون الکترت ۳.۵mm | ورودی صدا |
| اسپیکر | 8Ω 0.5W | خروجی صدا |
| آنتن | SMA Whip 144/430MHz | آنتن رادیو |
| دکمه PTT | Momentary Push Button | کنترل ارسال |
| باتری | 3.7V LiPo 2000mAh | تغذیه |
اتصالات SA818 به Arduino
| پین SA818 | وصل به |
|---|---|
| VCC | 3.7V باتری LiPo (مستقیم) |
| GND | GND مشترک |
| RXD | Arduino D3 (SoftSerial TX) + مقسم ولتاژ |
| TXD | Arduino D2 (SoftSerial RX) |
| PTT | Arduino D8 (LOW = ارسال) |
| MIC+ | میکروفون الکترت + 4.7k به VCC |
| SPK+ | اسپیکر 8Ω |
کد برنامهریزی SA818
#include <SoftwareSerial.h>
SoftwareSerial sa818(2, 3); // RX, TX
const int PTT_PIN = 8;
const int BTN_PIN = 7;
void programSA818() {
// تنظیم: Group=0, TX Freq=144.500MHz, RX Freq=144.500MHz
// CTCSS TX=0000 (بدون تون), CTCSS RX=0000, SQ=4, Bandwidth=0 (Wide 25kHz)
sa818.println("AT+DMOSETGROUP=0,144.5000,144.5000,0000,4,0000");
delay(500);
while (sa818.available()) Serial.print((char)sa818.read());
// تنظیم صدا Volume=5
sa818.println("AT+DMOSETVOLUME=5");
delay(500);
Serial.println("SA818 programmed!");
}
void setup() {
Serial.begin(9600);
sa818.begin(9600);
pinMode(PTT_PIN, OUTPUT);
pinMode(BTN_PIN, INPUT_PULLUP);
digitalWrite(PTT_PIN, HIGH); // RX mode
delay(1000);
programSA818();
}
void loop() {
if (digitalRead(BTN_PIN) == LOW) {
// PTT فشرده شد — حالت ارسال
digitalWrite(PTT_PIN, LOW);
Serial.println("Transmitting...");
while (digitalRead(BTN_PIN) == LOW) delay(10);
// PTT رها شد — برگشت به دریافت
digitalWrite(PTT_PIN, HIGH);
Serial.println("Receiving...");
delay(100);
}
}
چکلیست تست
| تست | نتیجه |
|---|---|
| دستور AT پاسخ «+DMOSETGROUP:0» میدهد؟ | بله — تنظیم موفق |
| با SDR یا Baofeng روی همان فرکانس صدا شنیده میشود؟ | بله |
| برد در فضای باز ۵۰۰ متر دست کم کار میکند؟ | بله با آنتن whip |