ماژول فرستنده و گیرنده RF
RF 433 مگاهرتز
(فرستنده و گیرنده بیسیم)
معرفی ماژول RF 433 مگاهرتز
ماژول RF 433 مگاهرتز یک سیستم ارتباط بیسیم کممصرف و مقرونبهصرفه برای انتقال دادهها در پروژههای الکترونیکی و اینترنت اشیاء (IoT) است. این ماژول در باند ISM (Industrial, Scientific, Medical) فعالیت میکند و نیازی به مجوز ندارد.
انواع ماژولهای RF 433 مگاهرتز
۱. ماژول فرستنده (Transmitter – TX)
- مدل معروف: FS1000A، XY-FST
- توان خروجی: تا ۱ وات (قابل تنظیم)
- برد مؤثر: ۱۰۰-۵۰۰ متر در فضای باز
- ولتاژ کاری: ۳-۱۲ ولت DC
۲. ماژول گیرنده (Receiver – RX)
- مدل معروف: XY-MK-5V، MX-RM-5V
- حساسیت: تا -۱۰۵ dBm
- پهنای باند: ۲ MHz
- ولتاژ کاری: ۵ ولت DC
۳. ماژول ترانس سیور (Transceiver)
- مدل معروف: HC-12، SI4463
- قابلیت: ارسال و دریافت دوطرفه
- رابط: سریال UART
- برد: تا ۱ کیلومتر
مشخصات فنی جامع
مشخصات الکتریکی:
- فرکانس مرکزی: ۴۳۳٫۹۲ MHz (قابل تنظیم ±۲۰۰KHz)
- مدولاسیون: ASK/OOK (Amplitude Shift Keying)
- نرخ داده: ۱-۱۰ kbps (در مدلهای پایه)
- ولتاژ کاری: ۳٫۳V تا ۱۲V (بسته به مدل)
- جریان مصرف:
- حالت خواب: < ۱μA
- حالت دریافت: ۵-۱۰ mA
- حالت ارسال: ۲۰-۱۰۰ mA
- توان خروجی: ۱۰ dBm تا ۳۰ dBm (۱۰mW تا ۱W)
مشخصات فیزیکی:
- ابعاد ماژول:
- TX: ۱۹ × ۱۹ × ۸mm
- RX: ۳۰ × ۱۴ × ۷mm
- آنتن:
- داخلی: حلقهای (Loop)
- خارجی: کانکتور SMA/UFL
- طول آنتن بهینه: λ/۴ ≈ ۱۷٫۳ سانتیمتر
- پینهای ارتباطی:
- TX: VCC, GND, DATA
- RX: VCC, GND, DATA, ANT
مشخصات محیطی:
- دمای کاری: -۴۰°C تا +۸۵°C
- رطوبت مجاز: ۱۰٪ تا ۹۰٪ غیر متراکم
- مقاومت لرزش: تا ۵G
- طول عمر: > ۱۰۰۰۰ ساعت
مشخصات RF:
- پهنای باند: ۱٫۷۴ MHz (-۳dB)
- حساسیت گیرنده: -۱۰۳ dBm (در ۲٫۴ kbps)
- انتخابپذیری همکانال: > ۴۰ dB
- ردیابی خودکار فرکانس (AFC): در مدلهای پیشرفته
- کنترل خودکار توان (ATC): در مدلهای پیشرفته
پروتکلهای ارتباطی پشتیبانی شده
۱. پروتکل ساده (Raw Data)
// ارسال داده خام
void sendRawData(const byte* data, int length) {
digitalWrite(TX_ENABLE, HIGH);
for(int i = 0; i < length; i++) {
sendByte(data[i]);
}
digitalWrite(TX_ENABLE, LOW);
}
۲. پروتکل VirtualWire (شبیهسازی سیم)
#include <VirtualWire.h>
void setup() {
vw_setup(2000); // نرخ ۲۰۰۰ bps
vw_set_tx_pin(TX_PIN);
vw_set_rx_pin(RX_PIN);
}
void sendData(const char* message) {
vw_send((uint8_t*)message, strlen(message));
vw_wait_tx();
}
۳. پروتکل RCSwitch (برای ریموتها)
#include <RCSwitch.h>
RCSwitch mySwitch = RCSwitch();
void setup() {
mySwitch.enableTransmit(TX_PIN);
mySwitch.setProtocol(1); // پروتکل ۱
mySwitch.setPulseLength(350); // طول پالس ۳۵۰ میکروثانیه
}
void sendRemoteCode(unsigned long code) {
mySwitch.send(code, 24); // ارسال ۲۴ بیتی
}
۴. پروتکل LoRa (در مدلهای پیشرفته)
#include <LoRa.h>
void setup() {
LoRa.setFrequency(433E6); // 433 MHz
LoRa.setSpreadingFactor(7); // SF7
LoRa.setSignalBandwidth(125E3); // 125 kHz
}
void sendLoRaPacket(String message) {
LoRa.beginPacket();
LoRa.print(message);
LoRa.endPacket();
}
کاربردهای صنعتی و تجاری
۱. سیستمهای امنیتی و نظارتی
- سیستمهای دزدگیر اماکن
- حسگرهای درب و پنجره بیسیم
- دوربینهای نظارتی بیسیم
- سیستمهای اعلان حریق
۲. خانه هوشمند (Home Automation)
- کنترل روشنایی بیسیم
- کنترل پرده و سایبان
- ترموستات هوشمند
- سیستم آبیاری خودکار
۳. صنعت و اتوماسیون
- مانیتورینگ پارامترهای محیطی
- کنترل ماشینآلات از راه دور
- سیستمهای تلهمتری صنعتی
- جمعآوری داده از سنسورها
۴. کشاورزی هوشمند
- مانیتورینگ رطوبت خاک
- کنترل سیستم آبیاری
- نظارت بر دمای گلخانه
- ردیابی دام و طیور
۵. سیستمهای اندازهگیری
- قرائت کنتورهای آب، برق، گاز
- ایستگاههای هواشناسی
- مانیتورینگ سطح مخازن
- سیستمهای دیتالاگر بیسیم
۶. کنترل از راه دور
- ریموت کنترل دروازه
- کنترل رباتهای متحرک
- سیستمهای RC (کنترل رادیویی)
- کنترل تجهیزات پزشکی
طراحی سیستم ارتباطی پیشرفته
۱. طراحی آنتن بهینه
// محاسبه طول آنتن برای 433MHz
float calculateAntennaLength() {
float speedOfLight = 299792458; // m/s
float frequency = 433.92e6; // Hz
float wavelength = speedOfLight / frequency;
float quarterWave = wavelength / 4;
return quarterWave * 0.96; // ضریب سرعت در مس
}
// طول بهینه: 16.3 cm برای سیم مسی
۲. کدینگ Manchester برای کاهش خطا
class ManchesterEncoder {
public:
static byte encode(byte data) {
byte encoded = 0;
for(int i = 0; i < 8; i++) {
if(data & (1 << i)) {
// 1 → 10
encoded |= (1 << (i*2));
} else {
// 0 → 01
encoded |= (1 << (i*2 + 1));
}
}
return encoded;
}
static byte decode(byte encoded) {
byte decoded = 0;
for(int i = 0; i < 4; i++) {
int bit1 = (encoded >> (i*2)) & 1;
int bit2 = (encoded >> (i*2 + 1)) & 1;
if(bit1 == 1 && bit2 == 0) {
decoded |= (1 << i);
}
}
return decoded;
}
};
۳. الگوریتم CRC برای تشخیص خطا
class CRC8 {
private:
static const byte CRC_POLY = 0x07;
public:
static byte calculate(const byte* data, int length) {
byte crc = 0;
for(int i = 0; i < length; i++) {
crc ^= data[i];
for(int j = 0; j < 8; j++) {
if(crc & 0x80) {
crc = (crc << 1) ^ CRC_POLY;
} else {
crc <<= 1;
}
}
}
return crc;
}
};
۴. پروتکل ارتباطی مبتنی بر پکت
struct RF_Packet {
byte preamble[2]; // 0xAA, 0x55 برای همگامسازی
byte destination; // آدرس مقصد
byte source; // آدرس مبدأ
byte packetID; // شماره پکت
byte length; // طول داده
byte data[32]; // دادههای اصلی
byte checksum; // CRC برای بررسی سلامت
byte postamble[2]; // 0x55, 0xAA برای پایان
};
class RF_Protocol {
private:
byte nextPacketID = 0;
public:
bool sendPacket(byte dest, byte* data, byte len) {
RF_Packet packet;
packet.preamble[0] = 0xAA;
packet.preamble[1] = 0x55;
packet.destination = dest;
packet.source = MY_ADDRESS;
packet.packetID = nextPacketID++;
packet.length = len;
memcpy(packet.data, data, len);
packet.checksum = CRC8::calculate(data, len);
packet.postamble[0] = 0x55;
packet.postamble[1] = 0xAA;
return transmit((byte*)&packet, sizeof(packet));
}
};
بهینهسازی برد و مصرف انرژی
۱. کنترل توان خروجی پویا
class PowerManager {
private:
int currentPowerLevel = 10; // dBm
public:
void adjustPower(int rssi) {
if(rssi > -60) {
// سیگنال قوی است، توان را کاهش بده
currentPowerLevel = max(0, currentPowerLevel – 5);
} else if(rssi < -80) {
// سیگنال ضعیف است، توان را افزایش بده
currentPowerLevel = min(30, currentPowerLevel + 5);
}
setTransmitPower(currentPowerLevel);
}
};
۲. الگوریتم خواب عمیق
class SleepScheduler {
private:
unsigned long sleepInterval = 10000; // 10 ثانیه
unsigned long activeTime = 1000; // 1 ثانیه فعالیت
public:
void schedule() {
while(true) {
// حالت فعال
listenForWakeSignal(activeTime);
// اگر دادهای برای ارسال داریم
if(hasDataToSend()) {
sendQueuedData();
}
// خواب عمیق
enterDeepSleep(sleepInterval);
}
}
};
۳. تکنیک Frequency Hopping
class FrequencyHopping {
private:
const float channels[8] = {
433.05e6, 433.25e6, 433.45e6, 433.65e6,
433.85e6, 434.05e6, 434.25e6, 434.45e6
};
int currentChannel = 0;
public:
void hop() {
currentChannel = (currentChannel + 1) % 8;
setFrequency(channels[currentChannel]);
}
void synchronize(byte syncByte) {
// همگامسازی کانال بر اساس بایت همگامسازی
currentChannel = syncByte % 8;
setFrequency(channels[currentChannel]);
}
};
سیستمهای پیشرفته مبتنی بر RF 433MHz
۱. شبکهسازی مش (Mesh Networking)
class MeshNode {
private:
byte nodeID;
byte routingTable[16];
public:
void forwardPacket(RF_Packet packet) {
if(packet.destination == nodeID) {
// پکت برای این نود است
processPacket(packet);
} else {
// مسیریابی و ارسال به نود بعدی
byte nextHop = routingTable[packet.destination];
if(nextHop != 0xFF) {
packet.source = nodeID;
sendToNode(nextHop, packet);
}
}
}
void updateRoutingTable() {
// بهروزرسانی جدول مسیریابی با الگوریتم OLSR
}
};
۲. سیستم تلهمتری چندکاناله
class TelemetrySystem {
private:
struct SensorData {
float temperature;
float humidity;
float pressure;
int batteryLevel;
unsigned long timestamp;
};
public:
void sendTelemetry(byte sensorID, SensorData data) {
byte buffer[sizeof(SensorData) + 1];
buffer[0] = sensorID;
memcpy(&buffer[1], &data, sizeof(SensorData));
// ارسال با تکرار برای اطمینان
for(int i = 0; i < 3; i++) {
sendPacket(GATEWAY_ADDRESS, buffer, sizeof(buffer));
delay(100);
}
}
};
۳. سیستم ردیابی GPS + RF
class TrackingSystem {
private:
struct GPS_Data {
float latitude;
float longitude;
float altitude;
float speed;
byte satelliteCount;
};
public:
void sendPosition(GPS_Data gps) {
// فشردهسازی دادههای GPS
byte compressed[12];
compressGPSData(gps, compressed);
// ارسال موقعیت
sendPacket(CONTROL_CENTER, compressed, 12);
// ذخیره در حافظه داخلی در صورت عدم دریافت ACK
if(!waitForAck(5000)) {
storeInMemory(compressed);
}
}
};
راهنمای عیبیابی حرفهای
۱. اندازهگیری کیفیت سیگنال
class SignalAnalyzer {
public:
float measureRSSI() {
// اندازهگیری قدرت سیگنال دریافتی
int rssiRaw = analogRead(RSSI_PIN);
float voltage = rssiRaw * (3.3 / 1024.0);
float rssiDBm = (voltage – 0.9) * 30;
return rssiDBm;
}
float measureSNR() {
// محاسبه نسبت سیگنال به نویز
float signalPower = measureRSSI();
float noiseFloor = -105; // dBm برای 433MHz
return signalPower – noiseFloor;
}
byte measureBER() {
// اندازهگیری نرخ خطای بیت
int totalBits = 1000;
int errorBits = 0;
for(int i = 0; i < totalBits; i++) {
byte sent = random(256);
byte received = sendAndReceive(sent);
errorBits += countBitErrors(sent, received);
}
return (errorBits * 100) / (totalBits * 8);
}
};
۲. بهینهسازی آنتن
class AntennaOptimizer {
public:
void findResonantFrequency() {
// جستجوی فرکانس رزونانس آنتن
float bestFreq = 433.92;
float bestSWR = 100;
for(float freq = 430; freq <= 440; freq += 0.1) {
setFrequency(freq * 1e6);
float swr = measureSWR();
if(swr < bestSWR) {
bestSWR = swr;
bestFreq = freq;
}
}
setFrequency(bestFreq * 1e6);
}
float measureSWR() {
// اندازهگیری نسبت موج ایستاده
float forwardPower = measureForwardPower();
float reflectedPower = measureReflectedPower();
if(reflectedPower == 0) return 1.0;
float reflectionCoefficient = sqrt(reflectedPower / forwardPower);
return (1 + reflectionCoefficient) / (1 – reflectionCoefficient);
}
};
ملاحظات امنیتی و قانونی
۱. رمزنگاری دادهها
class RF_Encryptor {
private:
byte encryptionKey[16];
public:
void encryptData(byte* data, byte length) {
// پیادهسازی AES-128
aes128_encrypt(data, encryptionKey, length);
}
void decryptData(byte* data, byte length) {
aes128_decrypt(data, encryptionKey, length);
}
};
۲. احراز هویت گرهها
class AuthenticationSystem {
private:
byte networkKey[32];
public:
bool authenticateNode(byte nodeID, byte* challenge) {
byte response[32];
generateResponse(nodeID, challenge, response);
byte expected[32];
calculateExpectedResponse(nodeID, challenge, expected);
return memcmp(response, expected, 32) == 0;
}
};
۳. رعایت مقررات FCC/ETSI
- حداکثر توان: ۱۰ dBm (۱۰mW) در اروپا
- چرخه کاری: حداکثر ۱۰٪ در برخی باندها
- پهنای باند: محدودیتهای مشخص برای هر منطقه
- گواهیها: CE, FCC, RoHS برای محصولات نهایی
سیستمهای تجاری موجود در بازار
۱. ماژولهای ارزانقیمت (Entry Level)
- FS1000A + XY-MK-5V: مناسب برای پروژههای آموزشی
- برد: تا ۱۰۰ متر
- کاربرد: کنترل ساده، ریموت دروازه
۲. ماژولهای متوسط (Mid-Range)
- HC-12: ترانس سیور سریال
- برد: تا ۱ کیلومتر
- کاربرد: ارتباط داده، تلهمتری
۳. ماژولهای حرفهای (Professional)
- SI4463/SI4432: قابلیتهای پیشرفته
- برد: تا ۳ کیلومتر
- کاربرد: صنعتی، پزشکی، نظامی
۴. ماژولهای LoRa (طول برد)
- SX1278/SX1276: تکنولوژی LoRa
- برد: تا ۱۰ کیلومتر
- کاربرد: اینترنت اشیاء، کشاورزی هوشمند
خدمات حرفهای:
- طراحی آنتن اختصاصی
- برنامهنویسی پروتکل سفارشی
- بهینهسازی برد ارتباطی
- مشاوره فنی پروژه
آزمایشهای کنترل کیفیت:
- تست حساسیت گیرنده
- تست توان خروجی فرستنده
- تست پایداری فرکانس
- تست عملکرد در دمای مختلف
خرید و قیمتگذاری
عوامل مؤثر بر قیمت:
- حساسیت گیرنده: هرچه بالاتر، قیمت بیشتر
- توان فرستنده: هرچه بیشتر، قیمت بیشتر
- پایداری فرکانس: دقت کریستال
- قابلیتهای اضافه: AES، Sleep Mode، AFC
بستههای پیشنهادی:
- استارتر کیت: ۱ فرستنده + ۱ گیرنده + آنتن
- توسعهدهنده پک: ۳ فرستنده + ۳ گیرنده + کتابچه
- صنعتی پک: ۱۰ فرستنده + ۱۰ گیرنده + آنتنهای حرفهای
تخفیفهای ویژه:
- خرید عمده (بالای ۵۰ عدد)
- پروژههای دانشگاهی و تحقیقاتی
- مشتریان دائمی
- پرداخت نقدی
جمعبندی
ماژول RF 433 مگاهرتز یک راهحل ارتباطی قدرتمند، مقرونبهصرفه و انعطافپذیر برای طیف وسیعی از کاربردها است. از پروژههای ساده دانشآموزی تا سیستمهای صنعتی پیچیده، این ماژولها با قابلیت تنظیم توان، فرکانس و پروتکلهای مختلف، پاسخگوی نیازهای متنوع هستند.
با توجه به گستردگی باند ISM 433MHz و عدم نیاز به مجوز، این تکنولوژی همچنان یکی از محبوبترین انتخابها برای ارتباطات بیسیم کوتاه و متوسط برد میباشد.









ترانزیستورها
خازنها
دیودها
رگولاتورها
مقاومتها
کریستال و اسیلاتور
مدارات مجتمع
ابزارها
تجهیزات
تجهیزات لحیمکاری
مولتیمتر و ابزار اندازهگیری
منبع تغذیه و باتری
تستر