۰%

دنیای الکترونیک و ارتباطات بی‌سیم، یکی از هیجان‌انگیزترین و پرچالش‌ترین حوزه‌های فناوری است. هر روزه شاهد ظهور فناوری‌های جدیدی هستیم که زندگی ما را تحت تأثیر قرار می‌دهند. از گوشی‌های هوشمند و اینترنت اشیا گرفته تا سیستم‌های امنیتی و پهپادها، همه و همه به نوعی به ارتباطات بی‌سیم وابسته هستند.

این کتاب با هدف آشنا کردن شما با یکی از جذاب‌ترین بخش‌های این دنیا، یعنی پروژه N3XUS، نوشته شده است. این پروژه، یک فرصت عالی برای یادگیری عمیق مفاهیم RF، میکروکنترلرها، و برنامه‌نویسی است.

انگیزه من از نوشتن این کتاب، اشتراک‌گذاری دانشی است که در طول سال‌ها کسب کرده‌ام. من معتقدم که بهترین راه برای یادگیری، انجام پروژه‌های عملی است. این کتاب، شما را قدم‌به‌قدم از ایده تا پیاده‌سازی یک پروژه کامل همراهی می‌کند.

هدف این کتاب

هدف این کتاب، آموزش مفاهیم کلیدی الکترونیک و برنامه‌نویسی از طریق یک پروژه عملی و جذاب است. شما پس از خواندن این کتاب، قادر خواهید بود یک دستگاه قدرتمند بسازید، با مفاهیم RF آشنا شوید و مهارت‌های برنامه‌نویسی خود را تقویت کنید.

این کتاب به چهار فاز اصلی تقسیم شده است که هر کدام به تدریج شما را با مفاهیم جدید آشنا می‌کند. در فاز اول، با اصول اولیه سخت‌افزار و نرم‌افزار آشنا می‌شوید. در فاز دوم، قابلیت‌های تعاملی را اضافه می‌کنید. در فاز سوم، ماژول CC1101 را اضافه می‌کنید و در فاز چهارم، پروژه را به یک دستگاه شبکه‌ای قابل کنترل از راه دور تبدیل می‌کنید.

امیدوارم این کتاب، شروعی برای سفر شما در دنیای جذاب الکترونیک و ارتباطات بی‌سیم باشد.

N3XUS یک پروژه منبع‌باز برای تست امنیت شبکه‌های بی‌سیم در باند ۲.۴ گیگاهرتز و زیر ۱ گیگاهرتز است. این پروژه بر پایه برد ESP32، سه ماژول رادیویی NRF24L01+ PA+LNA، یک ماژول CC1101 و یک نمایشگر TFT ساخته شده و قابلیت‌های متنوعی را در اختیار کاربر قرار می‌دهد.

ویژگی‌های کلیدی پروژه N3XUS عبارتند از:

  • ۱۲ حالت عملیاتی: Omniscient، Shadow، Spectrum Analyzer، Device Finder، Annihilator، Sniper، Blackout، Zombie، Mirage، Chameleon، Puppet و Omega.
  • استفاده همزمان از سه ماژول NRF24 برای پوشش گسترده‌تر و قدرت بیشتر در باند ۲.۴ گیگاهرتز.
  • ماژول CC1101 برای پوشش فرکانس‌های زیر ۱ گیگاهرتز (۴۳۳، ۸۶۸، ۹۱۵ مگاهرتز).
  • پنل وب: کنترل کامل دستگاه از طریق مرورگر.
  • نمایشگر TFT 1.69 اینچی: نمایش وضعیت، مود فعال و اطلاعات لحظه‌ای.
  • ۵ LED رنگی: بازخورد بصری برای حالت‌های مختلف.
  • ۳ دکمه فشاری: کنترل دستی بدون نیاز به کامپیوتر.
  • ذخیره‌سازی روی SD Card: لاگ‌گیری و ذخیره تنظیمات.
مزیت کلیدی

برخلاف پروژه‌های ساده، N3XUS با ترکیب سه ماژول NRF24 و یک CC1101، یک ابزار کامل برای تحلیل و تست امنیت در هر دو باند ۲.۴ گیگاهرتز و زیر ۱ گیگاهرتز است.

تذکر قانونی و اخلاقی

این پروژه صرفاً برای اهداف آموزشی و آشنایی با مفاهیم فنی طراحی شده است. هرگونه استفاده غیرمجاز، ایجاد مزاحمت یا تداخل در شبکه‌های مخابراتی، ممنوع و پیگرد قانونی دارد. مسئولیت هرگونه سوءاستفاده بر عهده خود کاربر است.

جنگ الکترونیک یا Electronic Warfare (EW)، به مجموعه اقداماتی گفته می‌شود که از طیف الکترومغناطیسی برای شناسایی، حمله و حفاظت در میدان نبرد استفاده می‌کنند. این مفهوم از زمان اختراع رادیو و رادار، به یکی از ارکان اصلی جنگ‌های مدرن تبدیل شده است.

تاریخچه جنگ الکترونیک را می‌توان به سه دوره اصلی تقسیم کرد:

  • دوره اول (جنگ جهانی اول و دوم): استفاده از رادیو برای ارتباطات و اولین تلاش‌ها برای اختلال در سیگنال‌های دشمن. در جنگ جهانی دوم، نیروهای متفقین از سیستم‌های پیشرفته‌ای مانند Window (پرتاب نوارهای آلومینیومی برای فریب رادار) استفاده کردند.
  • دوره دوم (جنگ سرد): توسعه سیستم‌های راداری پیشرفته، موشک‌های هدایت‌شونده و جنگنده‌های رادارگریز. در این دوره، جنگ الکترونیک به یک حوزه تخصصی و استراتژیک تبدیل شد.
  • دوره سوم (امروز): با ظهور فناوری‌های دیجیتال، SDR (رادیو نرم‌افزاری) و اینترنت اشیا، جنگ الکترونیک وارد فاز جدیدی شده است. امروزه، دستگاه‌های کوچک و کم‌هزینه مانند ESP32 و NRF24، امکان پیاده‌سازی مفاهیم جنگ الکترونیک را در مقیاس آزمایشگاهی و آموزشی فراهم کرده‌اند.

پروژه N3XUS، یک گام کوچک در جهت درک مفاهیم جنگ الکترونیک مدرن است. با استفاده از این پروژه، شما می‌توانید با تکنیک‌های شناسایی سیگنال، اختلال و فریب آشنا شوید.

قلاب فکری

آیا می‌دانستید که اولین نمونه‌های عملی اختلال رادیویی (Jamming) در طول جنگ جهانی دوم، توسط نیروهای آلمانی برای مختل کردن ارتباطات متفقین استفاده می‌شد؟ امروزه، با یک برد ESP32 و چند ماژول ساده، می‌توانید همان مفاهیم را در خانه شبیه‌سازی کنید!

امروزه، جنگ الکترونیک به سه حوزه اصلی تقسیم می‌شود:

  • حمله الکترونیکی (EA): شامل اقداماتی مانند Jamming، Deception و Destruction.
  • پشتیبانی الکترونیکی (ES): شامل شناسایی، رهگیری و تحلیل سیگنال‌های دشمن.
  • حفاظت الکترونیکی (EP): شامل اقدامات دفاعی مانند پنهان‌سازی، رمزگذاری و مقاوم‌سازی.

پروژه N3XUS عمدتاً بر حوزه‌های حمله الکترونیکی (EA) و پشتیبانی الکترونیکی (ES) متمرکز است.

پیش از هر اقدامی، لازم است با هر قطعه و ویژگی‌های فنی آن آشنا شوید. در این بخش، قطعات کلیدی پروژه N3XUS را به طور کامل معرفی می‌کنیم.

برد ESP32-WROOM-32 (۳۸ پین)

  • نقش: پردازنده مرکزی و هسته اصلی پروژه.
  • پردازنده: دو هسته Tensilica Xtensa LX6 با فرکانس ۲۴۰ مگاهرتز.
  • حافظه: فلش ۴ مگابایت، رم ۵۲۰ کیلوبایت.
  • ولتاژ کاری: ۳.۳ ولت.
  • چیپ USB-to-Serial: CP2102 یا CH340.
  • قابلیت‌های ارتباطی: وای‌فای ۲.۴ گیگاهرتز، بلوتوث ۴.۲.
  • مدل مناسب: ۳۸ پین (مدل‌های ۳۰ پین محدودیت دارند).

ماژول NRF24L01+ PA+LNA

  • نقش: فرستنده و گیرنده سیگنال‌های رادیویی در باند ۲.۴ گیگاهرتز.
  • کانال‌ها: ۱۲۶ کانال قابل تنظیم.
  • PA+LNA: تقویت‌کننده توان (برد بیشتر) و تقویت‌کننده کم‌نویز.
  • برد مؤثر: تا ۱۰۰ متر در فضای باز.
  • ولتاژ و جریان: ۳.۳ ولت و ۱۵۰ میلی‌آمپر.
  • پروتکل ارتباطی: SPI.
  • تعداد مورد نیاز: ۳ عدد (برای استفاده همزمان).

ماژول CC1101

  • نقش: فرستنده و گیرنده سیگنال‌های زیر ۱ گیگاهرتز.
  • فرکانس‌ها: ۳۰۰-۳۴۸، ۳۸۷-۴۶۴، ۷۷۹-۹۲۸ مگاهرتز.
  • قابلیت‌ها: پشتیبانی از مدولاسیون‌های مختلف (ASK، FSK، GFSK، MSK).
  • ولتاژ و جریان: ۳.۳ ولت و ۵۰ میلی‌آمپر.
  • پروتکل ارتباطی: SPI.

نمایشگر TFT 1.69 اینچی (ST7789)

  • نقش: نمایش وضعیت، اطلاعات و منوها.
  • رزولوشن: ۲۴۰x۲۸۰ پیکسل.
  • درایور: ST7789.
  • پروتکل: SPI (پین‌های SCK، MOSI، CS، DC، RST).
نکته حیاتی تغذیه

مجموع جریان مصرفی سه ماژول NRF24 به حدود ۴۵۰ میلی‌آمپر می‌رسد و با اضافه شدن CC1101 و TFT، کل جریان به حدود ۶۰۰-۷۰۰ میلی‌آمپر می‌رسد. حتماً از یک منبع تغذیه جداگانه (رگولاتور AMS1117) برای تغذیه ماژول‌ها استفاده کنید. تغذیه از پین ۳.۳ ولت ESP32 باعث ناپایداری می‌شود.

همچنین، برای هر ماژول NRF24، یک خازن ۱۰-۱۰۰ میکروفاراد بین VCC و GND (نزدیک به خود ماژول) نصب کنید تا از نوسانات ولتاژ جلوگیری شود.

خرید قطعات، یکی از حساسترین مراحل است. با رعایت نکات زیر، از اشتباهات رایج و خرید قطعات تقلبی جلوگیری کنید.

راهنمای خرید ESP32

  • حتماً مدل ۳۸ پین را انتخاب کنید. مدل‌های ۳۰ پین یا کمتر، برای این پروژه مناسب نیستند.
  • روی برد عبارت ESP32-WROOM-32 حک شده باشد.
  • قیمت مناسب در بازار ایران: ۱۵۰ تا ۳۰۰ هزار تومان.
  • کابل Micro-USB که با برد استفاده می‌کنید، حتماً قابلیت انتقال داده داشته باشد.
  • به رنگ برد و کیفیت لحیم‌کاری پایه‌ها دقت کنید.

راهنمای خرید NRF24

  • عبارت PA+LNA روی ماژول حک شده باشد و آنتن خارجی داشته باشد.
  • حتماً ۳ عدد تهیه کنید.
  • به کیفیت آنتن و کانکتور آن دقت کنید.
  • قیمت مناسب: ۸۰ تا ۱۵۰ هزار تومان (هر عدد).

راهنمای خرید CC1101

  • ماژول دارای آنتن خارجی باشد.
  • برند معتبر: ELECHOUSE یا SmartRF.
  • قیمت مناسب: ۸۰ تا ۱۵۰ هزار تومان.

راهنمای خرید سایر قطعات

  • TFT 1.69 اینچی: با درایور ST7789 و پین‌های CS، DC، RST.
  • OLED 0.96 اینچی (اختیاری): برای نمایشگر دوم.
  • خازن‌ها: ۳ عدد خازن ۱۰-۱۰۰µF (برای هر ماژول NRF24 یک عدد).
  • دکمه‌ها: ۳ عدد تاکت سویچ ۴ پایه.
  • LEDها: ۵ عدد LED رنگی (سبز، قرمز، زرد، آبی، سفید) با مقاومت‌های ۲۲۰Ω.
  • رگولاتور: AMS1117 3.3V با هیت‌سینک.
  • ماژول SD Card Reader: با رابط SPI.
اشتباه رایج

حتماً مدل PA+LNA را تهیه کنید. مدل معمولی (بدون PA+LNA) برد بسیار کمی دارد و برای این پروژه قابل استفاده نیست.

قبل از شروع هر گونه کار عملی، باید محیط کار خود را آماده کنید. این شامل فضای فیزیکی، ابزارهای مورد نیاز و همچنین آماده‌سازی ذهنی برای یادگیری است.

ابزارهای مورد نیاز

  • هویه (آهن لحیم‌کاری): برای لحیم‌کاری قطعات روی برد نهایی.
  • سیم‌های جامپر: برای اتصالات موقت روی بردبورد.
  • بردبورد (بورد بدون لحیم): برای تست و مونتاژ اولیه مدار.
  • مولتی‌متر: برای اندازه‌گیری ولتاژ و تست اتصالات.
  • کابل USB با قابلیت انتقال داده: برای اتصال ESP32 به کامپیوتر.
  • موچین و انبردست: برای جاگذاری قطعات کوچک.
  • ذوب قلع و سیم لحیم: برای لحیم‌کاری دائمی.
  • فلوکس (خمیر لحیم): برای بهبود کیفیت لحیم‌کاری.
نکته ایمنی

هنگام کار با هویه، حتماً از عینک ایمنی و تهویه مناسب استفاده کنید. محل کار خود را تمیز و مرتب نگه دارید تا از اتصال کوتاه و آسیب به قطعات جلوگیری شود.

همچنین، از یک زیرانداز مناسب برای لحیم‌کاری استفاده کنید تا از آسیب دیدن میز کار جلوگیری شود. در صورت امکان، یک پایه هویه نیز تهیه کنید.

Arduino IDE محیط اصلی برنامه‌نویسی و آپلود کد روی میکروکنترلرهاست. در این بخش، قدم‌به‌قدم نصب و راه‌اندازی آن را مرور می‌کنیم.

مراحل نصب

  1. به وب‌سایت رسمی آردوینو (www.arduino.cc) مراجعه کنید.
  2. آخرین نسخه پایدار را برای سیستم‌عامل خود دانلود کنید.
  3. در حین نصب، گزینه Install USB drivers را فعال کنید.
  4. پس از اتمام نصب، کامپیوتر را ریستارت کنید.

نصب درایور USB-to-Serial

بردهای ESP32 معمولاً از یکی از دو تراشه CP2102 یا CH340 برای ارتباط سریال استفاده می‌کنند. درایور مناسب را نصب کنید:

  • CP2102: از وب‌سایت Silicon Labs.
  • CH340: از وب‌سایت WCH.
تست شناسایی برد

ESP32 را با کابل USB به کامپیوتر وصل کنید. در Device Manager، یک پورت COM جدید با نام "Silicon Labs CP210x" یا "USB Serial Port" ظاهر می‌شود. اگر پورت را نمی‌بینید، کابل USB را عوض کنید.

پس از نصب Arduino IDE، باید آن را برای کار با بردهای ESP32 پیکربندی کنید.

۱. اضافه کردن آدرس مدیر برد

آدرس زیر را در File → Preferences → Additional Boards Manager URLs وارد کنید:

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

۲. نصب پکیج ESP32

از منوی Tools → Board → Boards Manager، عبارت ESP32 را جستجو کرده و پکیج "esp32 by Espressif Systems" را نصب کنید.

۳. انتخاب برد و تنظیم پارامترها

  • Board: ESP32 Dev Module
  • Flash Size: 4MB
  • Upload Speed: 115200
  • CPU Frequency: 240MHz
  • Partition Scheme: Default
تست با مثال Blink

از منوی File → Examples → 01.Basics → Blink یک کد نمونه باز کنید و روی دکمه آپلود کلیک کنید. اگر LED داخلی روی برد ESP32 چشمک زد، یعنی همه چیز به درستی پیکربندی شده است.

برای پروژه N3XUS، کتابخانه‌های زیر باید نصب شوند:

کتابخانه‌های اصلی

  • TFT_eSPI (برای TFT): توسط Bodmer – برای راه‌اندازی نمایشگر ST7789.
  • RF24 (برای NRF24): توسط TMRh20 – برای ارتباط با ماژول‌های NRF24.
  • ELECHOUSE_CC1101 (برای CC1101): توسط ELECHOUSE – برای راه‌اندازی ماژول CC1101.
  • SD (داخلی) – برای کار با کارت SD.
  • SPI (داخلی) – برای ارتباط SPI.
  • WiFi (داخلی) – برای اتصال به شبکه.
  • WebServer (داخلی) – برای راه‌اندازی وب‌سرور.

نصب از Library Manager

از منوی Sketch → Include Library → Manage Libraries... بروید و کتابخانه‌های زیر را جستجو و نصب کنید:

  • TFT_eSPI – توسط Bodmer
  • RF24 – توسط TMRh20
  • ELECHOUSE_CC1101 – توسط ELECHOUSE
تنظیمات TFT_eSPI

پس از نصب TFT_eSPI، فایل User_Setup.h را در مسیر libraries/TFT_eSPI ویرایش کنید و تنظیمات زیر را فعال کنید:

  • #define ST7789_DRIVER
  • #define TFT_WIDTH 240
  • #define TFT_HEIGHT 280
  • #define TFT_CS 2
  • #define TFT_DC 16
  • #define TFT_RST 5
  • #define TFT_SCLK 18
  • #define TFT_MOSI 23

اتصال صحیح قطعات، پایه و اساس هر پروژه الکترونیکی است. در این بخش، نقشه اتصال ESP32 به سه ماژول NRF24 را ارائه می‌دهیم.

اتصالات مشترک (SPI Bus)

پایه ESP32پایه NRF24توضیح
۳.۳ ولت (منبع جداگانه)VCCتغذیه مثبت (از رگولاتور جداگانه)
GNDGNDزمین مشترک
GPIO 18SCKخط کلاک SPI (مشترک)
GPIO 19MISOMaster In Slave Out (مشترک)
GPIO 23MOSIMaster Out Slave In (مشترک)

پایه‌های اختصاصی (CE و CSN)

ماژولCE (به ESP32)CSN (به ESP32)نقش
NRF1 (Assassin)GPIO 25GPIO 26حمله و ارسال داده
NRF2 (Watcher)GPIO 32GPIO 33شنود و دریافت داده
NRF3 (Ghost)GPIO 22GPIO 21اسکن و عملیات مخفی
خازن — ضروری

یک خازن ۱۰ تا ۱۰۰ میکروفاراد بین VCC و GND هر ماژول NRF24 (نزدیک به خود ماژول) نصب کنید. پایه بلندتر (مثبت) به VCC و پایه کوتاه‌تر (منفی) به GND وصل می‌شود.

پس از اتمام اتصالات، یک بار دیگر همه چیز را با جدول بالا مقایسه کنید تا از صحت سیم‌بندی مطمئن شوید.

پس از اتصال قطعات، نوبت به تست سلامت مدار می‌رسد. از مثال GettingStarted کتابخانه RF24 استفاده کنید.

باز کردن مثال

از منوی File → Examples → RF24 → GettingStarted را انتخاب کنید.

تنظیم پین‌ها

پین‌های CE و CSN را مطابق با اتصالات خود در کد تنظیم کنید. برای NRF1 (Assassin):

// تنظیم پین‌ها برای NRF1 #define CE_PIN 25 #define CSN_PIN 26

تست هر سه ماژول

برای تست هر سه ماژول، کد زیر را آپلود کنید:

#include <SPI.h> #include <RF24.h> #define CE1 25 #define CSN1 26 #define CE2 32 #define CSN2 33 #define CE3 22 #define CSN3 21 RF24 radio1(CE1, CSN1); RF24 radio2(CE2, CSN2); RF24 radio3(CE3, CSN3); void setup() { Serial.begin(115200); Serial.println("Testing NRF24 modules..."); if (radio1.begin()) Serial.println("NRF1 (Assassin) OK"); else Serial.println("NRF1 FAILED"); if (radio2.begin()) Serial.println("NRF2 (Watcher) OK"); else Serial.println("NRF2 FAILED"); if (radio3.begin()) Serial.println("NRF3 (Ghost) OK"); else Serial.println("NRF3 FAILED"); } void loop() {}

اگر پیام "OK" را برای هر سه ماژول مشاهده کردید، همه چیز به درستی کار می‌کند.

رایج‌ترین مشکلات فاز اول و راه‌حل‌های آنها:

مشکلراه‌حل
NRF24 شناسایی نمی‌شود خازن ۱۰-۱۰۰µF بین VCC و GND نصب شده است؟ تغذیه ۳.۳ ولت را با مولتی‌متر اندازه بگیرید. پایه‌های CE و CSN را با جدول اتصالات مقایسه کنید.
در Serial Monitor خطای کامپایل می‌آید کتابخانه RF24 را نصب کرده‌اید؟ برد ESP32 Dev Module را انتخاب کنید.
خروجی Serial Monitor خالی است نرخ باد را روی ۱۱۵۲۰۰ تنظیم کنید. دکمه EN را روی ESP32 فشار دهید تا برد ریست شود.
برد به طور مداوم ریست می‌شود تغذیه را تقویت کنید (از آداپتور ۲ آمپر استفاده کنید). یک خازن بزرگ‌تر (۱۰۰۰µF) به ورودی برق اضافه کنید.
نکته مهم

اگر با وجود بررسی همه موارد، مشکل همچنان پابرجا بود، احتمالاً ماژول NRF24 شما معیوب است. سعی کنید یک ماژول دیگر را تست کنید.

TFT به عنوان نمایشگر اصلی پروژه عمل می‌کند و اطلاعاتی مانند وضعیت، کانال فعال، منوها و پیام‌های سیستمی را به کاربر نشان می‌دهد.

نقشه اتصال TFT (ST7789)

پایه TFTپایه ESP32توضیح
VCC۳.۳ ولتتغذیه مثبت
GNDGNDزمین
BLK۳.۳ ولتروشنایی (Backlight)
SCLGPIO 18SCK (از SPI مشترک)
SDAGPIO 23MOSI (از SPI مشترک)
CSGPIO 2Chip Select
DCGPIO 4Data/Command
RESGPIO 5Reset

کد تست TFT

#include <TFT_eSPI.h> TFT_eSPI tft = TFT_eSPI(); void setup() { tft.init(); tft.setRotation(4); tft.fillScreen(TFT_BLACK); tft.setTextColor(TFT_WHITE, TFT_BLACK); tft.setTextSize(3); tft.setCursor(30, 60); tft.println("N3XUS"); } void loop() {}
نکته

اگر TFT کار نکرد، تنظیمات فایل User_Setup.h کتابخانه TFT_eSPI را بررسی کنید. مطمئن شوید که ST7789_DRIVER فعال است.

دکمه‌ها به کاربر امکان می‌دهند تا بدون نیاز به کامپیوتر یا پنل وب، دستگاه را کنترل کند. سه دکمه برای منو، انتخاب و بازگشت تعبیه شده است.

نقشه اتصال دکمه‌ها

دکمهپایه ESP32وظیفه
SW1 (Menu)GPIO 33ورود به منو / بازگشت
SW2 (Up/Select)GPIO 32حرکت به بالا / انتخاب
SW3 (Down/Back)GPIO 4حرکت به پایین / بازگشت

کد تست دکمه‌ها

#define SW1 33 #define SW2 32 #define SW3 4 void setup() { Serial.begin(115200); pinMode(SW1, INPUT_PULLUP); pinMode(SW2, INPUT_PULLUP); pinMode(SW3, INPUT_PULLUP); } void loop() { if (digitalRead(SW1) == LOW) Serial.println("SW1 pressed"); if (digitalRead(SW2) == LOW) Serial.println("SW2 pressed"); if (digitalRead(SW3) == LOW) Serial.println("SW3 pressed"); delay(200); }

پس از آپلود، با فشار دادن هر دکمه، پیام مربوطه در Serial Monitor نمایش داده می‌شود.

پنج LED رنگی برای نمایش وضعیت سیستم، هشدارها و حالت‌های مختلف تعبیه شده است.

نقشه اتصال LEDها

LEDرنگپایه ESP32وظیفه
LED1سبز 🟢GPIO 12سیستم فعال و سالم
LED2قرمز 🔴GPIO 13هشدار / حمله فعال
LED3زرد 🟡GPIO 27اسکن در حال انجام
LED4آبی 🔵GPIO 34ارتباط با SD Card
LED5سفید ⚪GPIO 15حالت آماده‌باش

پایه کاتد (منفی) هر LED را با یک مقاومت ۲۲۰Ω به GND وصل کنید. پایه آند (مثبت) را به پین ESP32 متصل کنید.

کد تست LEDها

int leds[] = {12, 13, 27, 34, 15}; int ledCount = 5; void setup() { for (int i = 0; i < ledCount; i++) { pinMode(leds[i], OUTPUT); } } void loop() { for (int i = 0; i < ledCount; i++) { digitalWrite(leds[i], HIGH); delay(200); digitalWrite(leds[i], LOW); delay(100); } }

پس از آپلود، LEDها به صورت متوالی روشن و خاموش می‌شوند.

کد اصلی N3XUS تمام قطعات را یکپارچه می‌کند: سه ماژول NRF24، TFT، LEDها و دکمه‌ها.

ساختار کد اصلی

  • تنظیمات اولیه: تعریف پین‌ها، اشیاء و متغیرها.
  • توابع نمایش: نمایش منوها و اطلاعات روی TFT.
  • توابع NRF: اسکن، حمله و ارسال داده.
  • مدیریت LEDها: وضعیت‌دهی بر اساس حالت سیستم.
  • مدیریت دکمه‌ها: پردازش ورودی‌های کاربر.
  • حلقه اصلی (loop): اجرای عملیات‌ها و به‌روزرسانی نمایشگر.
کد کامل N3XUS

کد کامل پروژه N3XUS شامل بیش از ۴۰۰ خط است و در مخزن گیت‌هاب پروژه موجود است. برای مشاهده و دانلود کد کامل، به آدرس زیر مراجعه کنید:

github.com/here-is-leo/N3XUS

کد اصلی N3XUS از ۱۲ حالت عملیاتی پشتیبانی می‌کند و قابلیت‌های زیر را دارد:

  • اسکن کامل: اسکن ۱۲۵ کانال در باند ۲.۴ گیگاهرتز.
  • حمله هدفمند: ارسال پکت به یک کانال خاص.
  • حمله گسترده: حمله همزمان به همه کانال‌ها.
  • پارازیت: اختلال کامل در فرکانس‌ها.
  • تزریق پکت: ارسال پکت‌های جعلی به شبکه.

ماژول CC1101 یک تراشه فرستنده/گیرنده RF کم‌مصرف است که برای کار در فرکانس‌های زیر ۱ گیگاهرتز طراحی شده است. این ماژول به پروژه N3XUS امکان می‌دهد تا علاوه بر باند ۲.۴ گیگاهرتز، در باندهای ۴۳۳، ۸۶۸ و ۹۱۵ مگاهرتز نیز فعالیت کند.

مشخصات فنی CC1101

  • محدوده فرکانسی: ۳۰۰-۳۴۸، ۳۸۷-۴۶۴، ۷۷۹-۹۲۸ مگاهرتز.
  • مدولاسیون: 2-FSK، GFSK، MSK، OOK.
  • نرخ داده: ۰.۶ تا ۵۰۰ کیلوبیت بر ثانیه.
  • توان خروجی: تا ۱۰ دسی‌بل (با PA+LNA).
  • حساسیت: -۱۱۴ دسی‌بل (در نرخ داده ۱.۲ کیلوبیت بر ثانیه).
  • جریان مصرفی: ۵۰ میلی‌آمپر در حالت ارسال.
کاربردهای CC1101

این ماژول در پروژه‌های مختلفی مانند ریموت کنترل، سیستم‌های امنیتی، پهپادها، و دستگاه‌های IoT استفاده می‌شود. در پروژه N3XUS، برای اسکن و اختلال در فرکانس‌های زیر ۱ گیگاهرتز کاربرد دارد.

اتصال CC1101 به ESP32 از طریق پروتکل SPI انجام می‌شود.

نقشه اتصال CC1101

پایه CC1101پایه ESP32توضیح
VCC۳.۳ ولتتغذیه مثبت
GNDGNDزمین
SCKGPIO 18SCK (از SPI مشترک)
MOSIGPIO 23MOSI (از SPI مشترک)
MISOGPIO 19MISO (از SPI مشترک)
CSGPIO 16Chip Select
GDO0GPIO 17وقفه/داده (اختیاری)
نکته مهم

پایه CS (Chip Select) CC1101 باید به GPIO 16 متصل شود. این پایه با پایه DC TFT (GPIO 4) متفاوت است. دقت کنید که اتصالات اشتباه نشوند.

پس از اتمام اتصالات، می‌توانید با استفاده از کتابخانه ELECHOUSE_CC1101، ماژول را تست کنید.

پس از اتصال قطعات، نوبت به تست سلامت CC1101 می‌رسد.

کد تست CC1101

#include <ELECHOUSE_CC1101.h> #define CC_CS 16 void setup() { Serial.begin(115200); Serial.println("Testing CC1101..."); ELECHOUSE_cc1101.setSpiPin(18, 19, 23, CC_CS); if (ELECHOUSE_cc1101.Init()) { Serial.println("CC1101 OK"); } else { Serial.println("CC1101 FAILED"); } } void loop() {}

اگر پیام "CC1101 OK" را مشاهده کردید، ماژول به درستی کار می‌کند. در غیر این صورت، اتصالات را بررسی کنید.

تنظیم فرکانس

برای تنظیم فرکانس CC1101، از تابع ELECHOUSE_cc1101.setMHZ(433.92) استفاده کنید. فرکانس‌های پشتیبانی‌شده: ۴۳۳.۹۲، ۸۶۸.۰ و ۹۱۵.۰ مگاهرتز.

پنل وب N3XUS امکان کنترل کامل دستگاه را از طریق مرورگر فراهم می‌کند. این پنل با استفاده از کتابخانه WebServer ساخته شده است.

ویژگی‌های پنل وب

  • نمایش وضعیت: نشان دادن ONLINE/OFFLINE با رنگ‌های سبز و قرمز.
  • نمایش حالت فعلی: نمایش نام حالت انتخاب‌شده.
  • دکمه‌های کنترل: فعال/غیرفعال، اجرای حالت، حمله مستقیم.
  • منوی انتخاب حالت: انتخاب یکی از ۱۲ حالت عملیاتی.
  • آمار: نمایش تعداد پکت‌ها، شبکه‌ها و آپ‌تایم.
  • نتیجه عملیات: نمایش آخرین نتیجه اجرا شده.
  • به‌روزرسانی خودکار: وضعیت هر ۲ ثانیه به‌روز می‌شود.

دسترسی به پنل وب

  1. پس از آپلود کد نهایی، دستگاه یک شبکه وای‌فای با نام N3XUS و رمز 12345678 ایجاد می‌کند.
  2. با گوشی یا لپ‌تاپ به این شبکه متصل شوید.
  3. مرورگر را باز کرده و آدرس http://192.168.4.1 را وارد کنید.
  4. پنل وب N3XUS باز می‌شود.
طراحی واکنش‌گرا

پنل وب برای نمایش روی موبایل، تبلت و دسکتاپ بهینه‌سازی شده است.

ماژول SD Card Reader امکان ذخیره‌سازی لاگ‌ها و تنظیمات پروژه را فراهم می‌کند.

نقشه اتصال SD Card

پایه SD Cardپایه ESP32توضیح
VCC۳.۳ ولتتغذیه مثبت
GNDGNDزمین
SCKGPIO 18SCK (از SPI مشترک)
MOSIGPIO 23MOSI (از SPI مشترک)
MISOGPIO 19MISO (از SPI مشترک)
CSGPIO 14Chip Select

کد تست SD Card

#include <SD.h> #define SD_CS 14 void setup() { Serial.begin(115200); if (SD.begin(SD_CS)) { Serial.println("SD Card OK"); } else { Serial.println("SD Card FAILED"); } }
فرمت SD Card

کارت SD باید با فرمت FAT32 فرمت شده باشد. ظرفیت حداکثر ۳۲ گیگابایت.

پس از آپلود کد نهایی، دستگاه به عنوان یک اکسس پوینت (AP) عمل می‌کند و یک شبکه وای‌فای ایجاد می‌کند.

تنظیمات شبکه

  • SSID: N3XUS
  • رمز عبور: 12345678
  • آدرس IP: 192.168.4.1

مراحل اتصال

  1. دستگاه را روشن کنید.
  2. با گوشی یا لپ‌تاپ، به شبکه N3XUS با رمز 12345678 متصل شوید.
  3. مرورگر را باز کرده و آدرس http://192.168.4.1 را وارد کنید.
  4. صفحه کنترل N3XUS باز می‌شود.
نکته مهم

این شبکه محلی است و به اینترنت متصل نیست. فقط دستگاه‌هایی که به این شبکه متصل هستند، می‌توانند دستگاه را کنترل کنند.

N3XUS شامل ۱۲ حالت عملیاتی در ۴ دسته کلی است:

📡 دسته اول: اسکن و شناسایی (Reconnaissance)

#نام حالتتوضیح
۱Omniscientاسکن کامل همه کانال‌های ۲.۴GHz و زیر ۱GHz
۲Shadowاسکن مخفی (بدون ارسال هیچ سیگنالی)
۳Spectrum Analyzerنمایش گرافیکی قدرت سیگنال در فرکانس‌ها
۴Device Finderجستجوی دستگاه‌های خاص (دوربین، پهپاد)

⚔️ دسته دوم: حمله (Attack)

#نام حالتتوضیح
۵Annihilatorحمله به همه شبکه‌های اطراف
۶Sniperحمله به یک دستگاه خاص (Targeted Attack)
۷Blackoutپارازیت گسترده روی همه کانال‌ها
۸Zombieتزریق پکت‌های جعلی به شبکه

🎭 دسته سوم: فریب (Deception)

#نام حالتتوضیح
۹Mirageایجاد شبکه‌های جعلی (Rogue AP)
۱۰Chameleonتغییر هویت (Spoofing)
۱۱Puppetکنترل دستگاه‌های قربانی

🛡️ دسته چهارم: ترکیبی

#نام حالتتوضیح
۱۲Omegaترکیب همه حالت‌ها به صورت هوشمند

مشکلات پیشرفته‌تر و راه‌حل‌های آنها:

مشکلراه‌حل
TFT سفید است درایور ST7789 را در User_Setup.h فعال کنید. پین‌های CS، DC و RST را بررسی کنید.
NRF پیدا نمی‌شود خازن ۱۰µF نزدیک VCC نصب کنید. تغذیه ۳.۳ ولت را با مولتی‌متر اندازه بگیرید.
CC1101 کار نمی‌کند پایه CS را به GPIO 16 وصل کنید. کتابخانه ELECHOUSE_CC1101 را نصب کنید.
SD Card خوانده نمی‌شود کارت SD را با فرمت FAT32 فرمت کنید. ظرفیت کارت حداکثر ۳۲GB باشد.
پنل وب باز نمی‌شود به شبکه N3XUS متصل شوید و آدرس 192.168.4.1 را وارد کنید. فایروال را موقتاً غیرفعال کنید.
دکمه‌ها کار نمی‌کنند از INPUT_PULLUP استفاده کنید. اتصالات GPIO به GND را بررسی کنید.
برد به طور مداوم ریست می‌شود تغذیه را تقویت کنید (آداپتور ۲ آمپر). خازن ۱۰۰۰µF به ورودی برق اضافه کنید.

در بازار امروز، ابزارهای متنوعی برای تست و تحلیل سیگنال‌های رادیویی وجود دارد. در این بخش، پروژه N3XUS را با سه ابزار محبوب مقایسه می‌کنیم.

ویژگیN3XUSFlipper ZeroHackRFRTL-SDR
قیمت~۵۰$~۲۰۰$~۴۰۰$~۳۰$
باند فرکانسی۲.۴GHz + Sub-1GHzSub-1GHz + RFID۱MHz-6GHz۲۴MHz-1.7GHz
قابلیت ارسال✅ (محدود)
پنل وب
قابلیت شخصی‌سازی✅ کامل🟡 محدود✅ کامل✅ کامل
مناسب برای مبتدیان🟡 متوسط
جایگاه پروژه N3XUS

N3XUS با هزینه‌ای حدود ۵۰ دلار، یک ابزار تخصصی برای باندهای ۲.۴ گیگاهرتز و زیر ۱ گیگاهرتز است که هم قدرت ارسال بالایی دارد، هم کنترل از راه‌دور، هم کاملاً آموزشی است و هم کد آن قابل شخصی‌سازی است. این ترکیب، آن را به گزینه‌ای ایده‌آل برای یادگیری عمیق و پروژه‌های شخصی تبدیل می‌کند.

سوال ۱: آیا می‌توانم از ماژول NRF24 معمولی استفاده کنم؟

خیر، مدل معمولی (بدون PA+LNA) برد بسیار کمی دارد و برای این پروژه قابل استفاده نیست.

سوال ۲: چرا TFT من کار نمی‌کند؟

سه علت شایع دارد: ۱) تنظیمات درایور ST7789 در User_Setup.h فعال نیست. ۲) اتصالات CS، DC و RST اشتباه است. ۳) تغذیه TFT پایدار نیست.

سوال ۳: چرا پنل وب باز نمی‌شود؟

به شبکه N3XUS متصل شوید و آدرس 192.168.4.1 را وارد کنید. فایروال را موقتاً غیرفعال کنید. مطمئن شوید که کد وب سرور به درستی آپلود شده است.

سوال ۴: فریم‌ور روی ESP32 آپلود نمی‌شود؟

دکمه BOOT را نگه دارید، EN را بزنید و رها کنید، سپس BOOT را رها کنید. پورت COM صحیح را انتخاب کنید. کابل USB را عوض کنید.

سوال ۵: آیا می‌توان از این پروژه برای اهداف غیرآموزشی استفاده کرد؟

خیر. این پروژه صرفاً برای اهداف آموزشی و تست امنیتی در محیط‌های کنترل‌شده طراحی شده است. استفاده غیرمجاز جرم محسوب می‌شود.

سوال ۶: تفاوت بین ۱۲ حالت چیست؟

هر یک از ۱۲ حالت برای یک هدف خاص طراحی شده است. حالت‌های Reconnaissance برای شناسایی، Attack برای حمله، Deception برای فریب و Omega برای ترکیب همه حالت‌ها کاربرد دارند.

پس از تکمیل پروژه N3XUS، می‌توانید پروژه‌های زیر را دنبال کنید:

سطح مبتدی

  • کنترل LED با ESP32 از طریق وب: یک وب‌سرور ساده روی ESP32 راه‌اندازی کنید.
  • ساخت فرستنده دما و رطوبت بی‌سیم: با ESP32 و NRF24 داده‌ها را ارسال کنید.
  • راه‌اندازی OLED با ESP32: اطلاعات ساده را روی OLED نمایش دهید.

سطح متوسط

  • سیستم هشداردهنده بی‌سیم: با سنسورهای PIR و NRF24 یک سیستم امنیتی بسازید.
  • کنترل رباتیک با ESP32 و NRF24: یک ربات را از راه دور کنترل کنید.
  • ذخیره‌سازی داده‌ها روی SD Card: داده‌های سنسورها را ذخیره کنید.

سطح پیشرفته

  • طراحی شبکه مش (Mesh Network): چندین ESP32 را به صورت مش به هم متصل کنید.
  • پیاده‌سازی پروتکل MQTT: داده‌ها را به یک سرور مرکزی ارسال کنید.
  • ساخت اسپکتروم آنالایزر کامل: با استفاده از CC1101 و NRF24.
مسیر پیشنهادی

پیشنهاد می‌کنم به ترتیب مبتدی → متوسط → پیشرفته پیش بروید. هر پروژه، دانش جدیدی به شما اضافه می‌کند.

سلام! من لیو (Leo) هستم، یک توسعه‌دهنده بک‌اند با بیش از ۴ سال سابقه کار حرفه‌ای. تخصص اصلی من در حوزه‌های امنیت سایبری و امنیت شبکه است و این پروژه را به دلیل ارتباط نزدیک آن با مفاهیم شبکه و امنیت، طراحی و اجرا کرده‌ام.

هدف من از نوشتن این کتاب، کمک به علاقه‌مندان حوزه امنیت و شبکه است تا با یک پروژه عملی، درک بهتری از آسیب‌پذیری‌های شبکه‌های بی‌سیم پیدا کنند و بتوانند راه‌های مقابله با آنها را بیاموزند.

راه‌های ارتباط با من

"امنیت یک محصول نیست، بلکه یک فرآیند است." — بروس شنایر

از اینکه این کتاب را تا انتها همراهی کردید، صمیمانه سپاسگزارم. امیدوارم که مطالب آن برای شما مفید بوده باشد و بتوانید از دانش کسب‌شده در پروژه‌های آینده خود استفاده کنید.

اگر این کتاب برای شما مفید بود، لطفاً آن را با دوستان خود به اشتراک بگذارید. همچنین، از شما دعوت می‌کنم که در پروژه‌های آینده من مشارکت کنید.

حمایت از تولید محتوا

اگر از محتوای من
لذت می‌برید

با یک قهوه ☕ از من حمایت کنید تا
بتوانم محتوای باکیفیت‌تری تولید کنم.

دعوت به همکاری

اگر ایده‌ای برای همکاری دارید یا می‌خواهید در پروژه‌های آینده من مشارکت کنید، خوشحال می‌شوم که با شما آشنا شوم. از طریق راه‌های ارتباطی که در صفحه «درباره من» آمده است، با من تماس بگیرید.

تبریک! شما یک پروژه جامع و پیشرفته را از صفر تا صد تکمیل کردید. در این مسیر، با مفاهیم کلیدی الکترونیک، برنامه‌نویسی و شبکه آشنا شدید و یک دستگاه کاربردی ساختید.

مرور دستاوردها

  • پروتکل‌های ارتباطی: کار با SPI را به صورت عملی تجربه کردید.
  • سخت‌افزار: با قطعات مختلف (ESP32، NRF24، CC1101، TFT) و نحوه تغذیه و سیم‌بندی آنها آشنا شدید.
  • نرم‌افزار: با Arduino IDE، نصب کتابخانه‌ها و آپلود فریم‌ور مسلط شدید.
  • شبکه: یک وب‌سرور راه‌اندازی کرده و دستگاه را از طریق وای‌فای کنترل کردید.
  • ۱۲ حالت عملیاتی: با انواع مختلف اسکن، حمله و فریب آشنا شدید.

منابع تکمیلی

تأکید بر نکات اخلاقی

دانش و ابزاری که به دست آورده‌اید، قدرتمند است. از آن فقط برای اهداف آموزشی، تست امنیتی در محیط‌های مجاز و توسعه پروژه‌های قانونی استفاده کنید. هرگونه کاربرد مخرب یا غیرمجاز، مسئولیت قانونی و اخلاقی دارد.

موفق و پیروز باشید

N3XUS v2.0 — سفر شما در دنیای جنگ الکترونیک آغاز شده است.