E32-433T30D چیست و چرا متفاوت است؟ (مبتدی)
ماژول E32-433T30D یکی از ارزانترین ماژولهای LoRa با توان خروجی ۳۰dBm (1 وات!) است — در مقایسه با LoRa معمولی که ۱۴-۲۰dBm است، این به معنای برد ۱۰ برابر بیشتر است. قیمت: حدود ۱۵ دلار.
مزیت بزرگ این ماژول استفاده از UART ساده است — بدون SPI، بدون کتابخانه پیچیده. فقط TX/RX را به آردوینو وصل کنید و سریال بفرستید! ماژول خودش رمزنگاری و پروتکل LoRa را مدیریت میکند. دو پین M0/M1 حالتهای مختلف (Normal/Config/WOR/Sleep) را انتخاب میکنند.
در این پروژه عملی، تلهمتری زنده UGV (ولتاژ، سرعت، موقعیت GPS) از فاصله تا ۵ کیلومتر در فضای باز ارسال میشود.
محصولی که میسازید
لینک تلهمتری UGV با E32-433T30D — ارسال داده هر ۵ ثانیه از فاصله تا ۱۰km.
- هزینه: ۲ × ۱۵ دلار = ۳۰ دلار
- برد: تا ۱۰km در فضای باز (با آنتن Yagi)
- مصرف TX: ۱W (نیاز به تغذیه 3.3V/1A)
سیمبندی E32-433T30D
E32-433T30D → Arduino
VCC → 3.3V ⚠ مهم: 3.3V نه 5V
GND → GND
TX → D2 (SoftwareSerial RX)
RX → D3 (SoftwareSerial TX) از طریق مقسم ولتاژ!
M0 → D4
M1 → D5
AUX → D6 (برای بررسی IDLE)
// مقسم ولتاژ برای RX:
// Arduino D3 (5V) → R1=10kΩ → Node → R2=20kΩ → GND
// Node → E32 RX (3.3V max)
// حالتهای M0/M1:
// LOW/LOW = Normal (TX/RX)
// HIGH/LOW = WakeUp
// LOW/HIGH = Power Saving
// HIGH/HIGH = Config Mode
کد TX روی UGV
#include <SoftwareSerial.h>
SoftwareSerial e32(2, 3); // RX, TX
const int M0=4, M1=5, AUX=6;
void setNormalMode() { digitalWrite(M0,LOW); digitalWrite(M1,LOW); delay(100); }
void setup() {
Serial.begin(115200);
e32.begin(9600);
pinMode(M0,OUTPUT); pinMode(M1,OUTPUT); pinMode(AUX,INPUT);
setNormalMode();
while(digitalRead(AUX) == LOW) delay(10); // منتظر آماده شدن
}
void loop() {
float battV = analogRead(A0) * (3.3/1023.0) * 4.0; // LiPo 4S
int speed = 120; // مقدار واقعی از encoder
String pkt = "V:" + String(battV,2) + ",S:" + String(speed) + ",T:" + String(millis()/1000);
e32.println(pkt);
Serial.println("Sent: " + pkt);
delay(5000);
}
کد RX روی GCS (لپتاپ)
#include <SoftwareSerial.h>
SoftwareSerial e32(2, 3);
const int M0=4, M1=5;
void setup() {
Serial.begin(115200);
e32.begin(9600);
pinMode(M0,OUTPUT); pinMode(M1,OUTPUT);
digitalWrite(M0,LOW); digitalWrite(M1,LOW);
Serial.println("GCS Ready...");
}
void loop() {
if(e32.available()) {
String line = e32.readStringUntil('\n');
Serial.println("[UGV] " + line);
// پارس ولتاژ:
int vi = line.indexOf("V:");
if(vi>=0) { float v = line.substring(vi+2,line.indexOf(',',vi)).toFloat();
if(v < 14.4) Serial.println("⚠ باتری پایین!"); }
}
}
چکلیست تست
| تست | نتیجه |
|---|---|
| AUX بعد از راهاندازی HIGH میشود؟ | بله — ماژول آماده |
| در ۱۰۰ متر داده دریافت میشود؟ | بله |
| ماژول در دست (۳ متر) گرم نمیشود؟ | نه — ۱W نیاز به دور نگه داشتن |
| Config Mode کار میکند؟ | eByte E32 Config Tool |