منصوبے کے بارے میں
AlteriomPainlessMesh، ESP8266 اور ESP32 ڈیوائسز پر خود منظم میش نیٹ ورکس بنانے کے لیے painlessMesh لائبریری کا ایک فورک ہے۔ یہ اصل ایڈہاک نیٹ ورکنگ ماڈل کو برقرار رکھتا ہے — کوئی مرکزی کنٹرولر یا راؤٹر درکار نہیں، نوڈس 32-بٹ چپ IDs سے شناخت ہوتے ہیں، JSON پر مبنی پیغام رسانی، نوڈس کے درمیان ٹائم سنک — اور IoT ڈیپلائمنٹس کے لیے بنائے گئے ساختی پیکیجز شامل کرتا ہے۔
بنیادی میش رویہ:
- حقیقی ایڈہاک نیٹ ورکنگ: ایک یا ایک سے زیادہ نوڈس کا کوئی بھی مجموعہ خود بخود میش میں منظم ہو جاتا ہے؛ سائز بنیادی طور پر کنکشن بفرز کے لیے دستیاب ہیپ سے محدود ہوتا ہے۔
- JSON پیغام رسانی پڑھنے کی اہلیت اور ویب/جاوا اسکرپٹ فرنٹ اینڈز کے ساتھ آسان انضمام کے لیے؛ README میں کچھ کارکردگی کی قیمت نوٹ کی گئی ہے اور یہ کہ بائنری پیغام رسانی ممکنہ شراکت ہوگی۔
- نیٹ ورکنگ تاخیر کی وجوہات کی بنا پر Arduino WiFi لائبریریوں کے بجائے مقامی ESP32/ESP8266 SDK لائبریریوں کا استعمال کرتی ہے۔
- IP نیٹ ورکنگ نہیں: پیغامات براڈکاسٹ یا مخصوص nodeId پر بھیجے جاتے ہیں۔
- دستاویزی احتیاطی تدابیر: delay() سے پرہیز کریں (TaskScheduler استعمال کریں)، WiFi ایونٹ سبسکرپشن تنازعات سے بچیں، پیغام کی شرحیں قدامت پسند رکھیں، اور زیادہ ٹریفک کے تحت ممکنہ پیغام ضائع ہونے کی توقع کریں۔
Alteriom توسیعات:
فورک IoT انضمام کے لیے mqtt-schema (v0.7.2/v0.7.3) کے مطابق سیریلائزیشن اور JSON کنورژن کے ساتھ ٹائپ شدہ پیکیجز شامل کرتا ہے:
- SensorPackage (200): درجہ حرارت، نمی، دباؤ، بیٹری، سینسر ID، ٹائم اسٹیمپ۔
- StatusPackage (202): اسٹیٹس فلیگز، اپ ٹائم، مفت میموری، WiFi طاقت، فرم ویئر ورژن۔
- CommandPackage (400): JSON پیرامیٹرز اور منفرد IDs کے ساتھ ہدف بنائے گئے کمانڈز۔
- MetricsPackage (204): CPU، میموری ہیلتھ، نیٹ ورک تھرو پٹ، پیکٹ کے اعداد و شمار، لیٹنسی، RSSI۔
- HealthCheckPackage (605): ہیلتھ اسکورنگ، مسئلہ فلیگز، میموری لیک رجحان تجزیہ، پیشن گوئی کی دیکھ بھال، کریش/ریبوٹ ٹریکنگ۔
- MeshNodeListPackage (600), MeshTopologyPackage (601), MeshAlertPackage (602), MeshBridgePackage (603), EnhancedStatusPackage (604): نوڈ انوینٹری، لنک کوالٹی کے ساتھ ٹوپولوجی گراف، الرٹس، پروٹوکول برجنگ، اور تفصیلی میش اعداد و شمار۔
- برج فیل اوور پیکیجز (610-614): برج اسٹیٹس، الیکشن، ٹیک اوور، کوآرڈینیشن، اور NTP ٹائم سنک۔
آپریشنل خصوصیات:
- براڈکاسٹ OTA تقسیم: README کے مطابق 50+ نوڈ میشز کے لیے تقریباً 98% نیٹ ورک ٹریفک میں کمی اور 100+ نوڈس تک متوازی اپ ڈیٹس، ایک پیرامیٹر سے فعال ہوتی ہیں۔
- MQTT اسٹیٹس برج: میش اسٹیٹس/ٹوپولوجی کو مانیٹرنگ اسٹیکس جیسے Grafana، InfluxDB اور Prometheus کے لیے شائع کرتا ہے، قابل ترتیب وقفوں کے ساتھ۔
- خودکار برج فیل اوور: RSSI پر مبنی الیکشن (برابری اپ ٹائم، مفت میموری، نوڈ ID سے توڑی جاتی ہے)، کھوئے ہوئے برج کا پتہ لگانے کے لیے ہارٹ بیٹ پر مبنی طریقہ، ٹیک اوور کے بعد چینل کی پیروی، تقسیم شدہ اتفاق رائے، اور ایک وقت میں ایک الیکشن، رول تبدیلیوں کے درمیان 60 سیکنڈ کی ہولڈ، اور تنہا امیدوار کے لیے کم از کم RSSI کے ذریعے سپلٹ برین کی روک تھام۔
- ملٹی برج کوآرڈینیشن: ایک سے زیادہ بیک وقت برجز ترجیحی سطحوں (1-10)، کرداروں (پرائمری/سیکنڈری/اسٹینڈ بائی)، پیر ڈسکوری، اور لوڈ بیلنسنگ حکمت عملیوں کے ساتھ۔
- آف لائن موڈ کے لیے میسج کیو: ترجیح پر مبنی قطار (CRITICAL/HIGH/NORMAL/LOW) جس میں اخراج کے اصول ہیں جو اہم پیغامات کی حفاظت کرتے ہیں، خودکار آن لائن/آف لائن پتہ لگانا، اور آٹو فلش۔
- مشترکہ گیٹ وے موڈ: تمام نوڈس ایک ہی راؤٹر سے جڑتے ہیں اور انٹرنیٹ تک ریلے کر سکتے ہیں، گیٹ وے الیکشن، ڈی ڈپلیکیشن، اور ڈیلیوری تصدیق کے ساتھ۔
ہارڈویئر توثیق:
README میں کہا گیا ہے کہ فیل اوور، روٹنگ، چینل فالونگ اور اسٹیشن اسکین میں 2.0 تبدیلیاں ESP32، ESP32-C3، ESP32-C5، ESP32-C6، ESP32-S3 اور ESP8266 کو ایک حقیقی راؤٹر کے ساتھ ملاتے ہوئے ہارڈویئر-ان-دی-لوپ رگ پر توثیق کی گئی تھیں، جس میں مکمل سوٹ کے تین مسلسل کلین رنز کا ریلیز گیٹ تھا۔
ESP8266 صلاحیت نوٹ:
README ESP8266 کو چھوٹے میشوں یا لیف نوڈ کے طور پر موزوں قرار دیتا ہے، سات نوڈ میش میں اندرونی نوڈ کے طور پر کام کرتے ہوئے 10-13 KB مفت ہیپ رپورٹ کرتا ہے، اور نوٹ کرتا ہے کہ اس سطح پر ایک واحد 8 KB پیکیج یا ایک OTA حصہ مختص کرنے میں ناکام ہو سکتا ہے۔ یہ ESP8266 کو maxconn = 0 یا 1 کے ساتھ لیف کے طور پر ترتیب دینے کا مشورہ دیتا ہے، اور overCapacity() اور apChildren() معاونین کے ساتھ ساتھ وقفہ وقفہ سے کم میموری چیک فراہم کرتا ہے۔
انسٹالیشن اور انحصار:
Arduino Library Manager میں بطور "Alteriom PainlessMesh"، PlatformIO میں بطور sparck75/AlteriomPainlessMesh (README نوٹ کرتا ہے کہ alteriom/ مالک کی انٹری 1.10.0 پر رکتی ہے)، اور npm پر @alteriom/painlessmesh کے طور پر دستیاب ہے۔ انحصار میں ArduinoJson، TaskScheduler، اور AsyncTCP (ESP32) یا ESPAsyncTCP (ESP8266) شامل ہیں۔
ریپوزٹری میں موجود مثالیں ایک بنیادی سینسر نوڈ، خودکار چینل کی نشاندہی کے ساتھ برج ٹو انٹرنیٹ، برج فیل اوور، مشترکہ گیٹ وے، MQTT برج، اور ساختی پیکیجز استعمال کرنے والے Alteriom سینسر نوڈ کا احاطہ کرتی ہیں۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.