پروژه Mockتستیک: پیادهسازی کلاینت سبک Meshtastic روی بردهای ESP32 و آردوینو — Mocktastic: A Meshtastic Node on Arduino
خلاصه
پروژه Mocktastic یک فریمورک آموزشی و تجربی به زبان C++ برای بردهای ESP32 است که امکان رمزگشایی، ساخت و ارسال بستههای پروتکل Meshtastic را بدون نیاز به فریمور رسمی فراهم میکند. این ابزار برای توسعهدهندگان علاقهمند به شبکههای مش مبتنی بر LoRa و اینترنت اشیاء کاربرد دارد.
معرفی پروژه Mocktastic
پروژه Mocktastic که توسط Vapmuz توسعه داده شده، یک پیادهسازی سفارشی و سبک از پروتکل محبوب Meshtastic است که بهطور اختصاصی برای محیط Arduino IDE و بردهای ESP32 (بهویژه مدل LilyGO T3 v1.6.1 مجهز به تراشه LoRa از خانواده SX1276) طراحی شده است.
این پروژه یک انشعاب (Fork) از فریمور اصلی Meshtastic نیست، بلکه یک پیادهسازی مستقل، آموزشی و تجربی به زبان C++ محسوب میشود. هدف اصلی این پروژه نشان دادن نحوه ساخت، رمزگذاری و رمزگشایی بستههای Meshtastic از صفر است و حتی یک نمونه کارکردی برای سنسورهای محیطی نیز به همراه دارد.
جزئیات فنی و معماری
معماری این پروژه بهگونهای طراحی شده است که منطق مربوط به پروتکل و ابزارهای کمکی از اثرات سختافزاری جدا باشد. این جداسازی به توسعهدهندگان اجازه میدهد کدهای مستقل از پلتفرم را روی ماشین توسعه خود تست کنند. پشته نرمافزاری این پروژه از کتابخانههای سبک زیر بهره میبرد:
- Nano-Protobuf: برای انکودینگ سبک پروتکل بافرها (Protobuf) در حافظههای محدود سختافزاری.
- mbedTLS: برای انجام عملیات رمزنگاری (شامل AES و X25519) در بخش تستهای میزبان (Host-side).
- Doctest: فریمورک سبک تست واحد C++ برای اجرای تستهای خودکار.
این فریمورک در زمان کامپایل به دو حالت مختلف قابل تنظیم است:
- حالت DECODER: یک پوسته (Shell) تعاملی مبتنی بر پورت سریال در اختیار شما قرار میدهد تا بتوانید پیامهای متنی را روی کانالهای پیکربندیشده دریافت، رمزگشایی و ارسال کنید.
- حالت SENSOR: برد را به یک سنسور دما و رطوبت DHT22 تبدیل میکند که میتواند اندازهگیریها را ارسال کرده و به دستورات خاصی مانند
/dhtدر کانال خصوصی پاسخ دهد.
نحوه راهاندازی و استفاده
برای ساختن یک نود با استفاده از این مخزن، به یک برد ESP32 همراه با ماژول LoRa نیاز دارید. نقشه پینها برای برد مرجع (LilyGO T3 V1.6.1) در کد منبع مشخص شده است.
برای کامپایل و اجرای تستها روی ماشین توسعه، کافی است به دایرکتوری مربوطه رفته و دستور زیر را اجرا کنید:
cd meshtastic_decoder
make test
پس از نصب کتابخانههای مورد نیاز در Arduino IDE (مانند کتابخانه LoRa اثر Sandeep Mistry و کتابخانههای سنسور DHT از Adafruit)، باید فایل keys.h را با اطلاعات کانالهای عمومی و خصوصی و همچنین کلیدهای عمومی و خصوصی نود خود پیکربندی کنید. کلیدهایی که معمولاً در قالب Base64 توسط Meshtastic ارائه میشوند باید پیش از قرار گرفتن در کد به رشتههای هگزادسیمال تبدیل شوند.
پس از بارگذاری کد روی برد، از طریق سریال مانیتور با نرخ باود 115200 میتوانید با نود خود تعامل داشته باشید و از دستوراتی مانند /pub برای ارسال پیام عمومی یا /rssi برای بررسی کیفیت سیگنال استفاده کنید.
چرا این پروژه در هکرنیوز مطرح شد؟
این مخزن اخیراً مورد توجه کاربران هکرنیوز قرار گرفته است؛ چرا که پروتکلهای ارتباطی برد به برد و شبکههای مش غیرمتمرکز (Mesh Networks) مانند Meshtastic که روی فرکانسهای رادیویی غیرمجاز (ISM bands) کار میکنند، جذابیت بالایی برای مهندسان حوزه سختافزار و اینترنت اشیاء دارند. در بحثهای مطرحشده در هکرنیوز، سادگی کد و تمرکز آن روی تراشههای پرکاربرد ESP32 به عنوان نقاط قوت اصلی برای یادگیری ساختار داخلی این پروتکلها شناخته شدهاند.
در یک نگاه
- زبان اصلی: C و C++
- سختافزار هدف: بردهای ESP32 و ماژولهای رادیویی LoRa (مانند LilyGO T3 V1.6.1)
- مجوز (License): MIT
- وابستگیهای کلیدی: Nano-Protobuf و mbedTLS
- حالتهای کاری: پوسته سریال (DECODER) و سنسور محیطی (SENSOR)
این مطلب بهصورت کاملاً خودکار و با هوش مصنوعی از مقالهٔ اصلی و بحث هکرنیوز تهیه شده و ممکن است خطا داشته باشد. حقوق مطلب اصلی متعلق به نویسندهٔ آن است. قوانین و گزارش مشکل