
استاندارد خانه هوشمند Matter روزبهروز فراگیرتر میشود و بخش بزرگی از جدیدترین گجتهای بازار بر پایه Thread کار میکنند؛ یک شبکه مش (Mesh) کممصرف که در کنار وایفای شما قرار میگیرد، نه روی آن. مشکل اینجاست که بیشتر آموزشهای موجود درباره ESP32 هنوز بر پایه تراشههایی نوشته شدهاند که اصلاً قادر به پیوستن به این شبکه نیستند؛ بنبستی کامل برای کسانی که میخواهند گجت دستساز خود را در کنار دستگاههای تجاری Matter به کار بگیرند.
چرا بیشتر بردهای ESP32 نمیتوانند به شبکه Thread بپیوندند؟
Matter یک لایه زبانی است که تعریف میکند یک لامپ، پریز یا سنسور چیست و کنترلرهایی مانند هوم اسیستنت (Home Assistant) یا Apple Home چگونه با آن گفتوگو میکنند. این استاندارد روی وایفای، اترنت یا Thread اجرا میشود و بردهای ESP32 مدتهاست نسخه وایفای آن را پشتیبانی میکنند.
اما بخش دشوار ماجرا Thread است، چون به یک رادیو IEEE 802.15.4 نیاز دارد؛ همان خانواده رادیویی که زیگبی (Zigbee) از آن استفاده میکند. تراشههای کلاسیک ESP32، مدل S3 و مدل C3 چنین رادیویی ندارند. میتوان آنها را به دستگاه Matter تبدیل کرد، اما فقط از طریق وایفای.
این موضوع برای همان چیزهایی اهمیت دارد که کاربران واقعاً با بردهای ESP32 میسازند: سنسور درب، حسگر دما و دکمهها دقیقاً همان دستگاههای کوچک و باتریخوری هستند که Thread برای آنها طراحی شده است. اگر همه آنها را روی وایفای ببرید، هر کدام به یک کلاینت (Client) جدید تبدیل میشود که روتر شما باید مراقبش باشد و رادیویی مصرف میکند که بهطور معمول پرخورتر از نیاز این کار است.
سه رادیو روی یک برد ارزانقیمت
تراشه ESP32-C6 وایفای ۶ در باند ۲.۴ گیگاهرتز، بلوتوث ۵ کممصرف (Bluetooth 5 LE) و یک رادیو ۸۰۲.۱۵.۴ را روی یک تراشه واحد جای داده است. نسخه XIAO ساخت Seeed همین مجموعه را روی بردی به ابعاد ۲۱ در ۱۷.۸ میلیمتر، همراه با ۵۱۲ کیلوبایت حافظه SRAM، چهار مگابایت حافظه فلش (Flash)، درگاه USB-C و قابلیت شارژ باتری فشرده کرده است.
رادیو بلوتوث هم صرفاً یک قابلیت اضافه نیست. دستگاههای Matter از طریق بلوتوث کممصرف راهاندازی میشوند؛ یعنی گوشی شما به برد متصل میشود، اطلاعات شبکه را به آن میدهد و سپس کنار میرود. یک بیلد (Build) مبتنی بر Thread از بلوتوث فقط برای راهاندازی استفاده میکند و از آن پس روی Thread زندگی میکند.
یک نکته را پیش از هر نقشهکشی هوشمندانهای در نظر بگیرید: تراشه C6 قادر است Matter را روی وایفای یا Thread اجرا کند، اما نه هر دو بهطور همزمان. مستندات Matter آردوینو اسپرسیف صریحاً تأکید میکند که در هر بیلد باید یکی را انتخاب کنید؛ دو رادیو شبکه، هر بار یک وظیفه.
کتابخانه Matter اسپرسیف؛ از یک پروژه پیچیده به یک اسکچ ساده
مدتها اجرای Matter روی ESP32 به معنای راهاندازی چارچوب ESP-IDF و کیت توسعه نرمافزاری esp-matter SDK بود؛ درخواستی سنگین برای یک پروژه آخر هفته. اما حالا هسته آردوینو ESP32 یک کتابخانه Matter با انواع دستگاه آماده ارائه میکند که شامل لامپ، پریز، فن، ترموستات، پرده و بسیاری از سنسورها میشود.
این کتابخانه فرایند راهاندازی را هم مدیریت میکند. اسکچ یک لینک کد QR و یک کد جفتسازی (Pairing Code) را در مانیتور سریال چاپ میکند و شما آن را مانند هر گجت Matter آماده بازار اسکن میکنید. برای آزمایش، دو نمونه از مثالهای اسپرسیف در قالب یک دکمه هوشمند ترکیب شدهاند: دکمه BOOT روی برد XIAO ضربههای تک، دوگانه و سهگانه و همچنین نگهداشتن طولانی را گزارش میدهد و تنها یک خط کد به برد میگوید بهجای وایفای از Thread استفاده کند.
دو تنظیم در آردوینو IDE اختیاری نیستند:
- طرح پارتیشن (Partition Scheme) را روی گزینه Huge APP (3 MB No OTA / 1 MB SPIFFS) قرار دهید، چون پشته Matter حجیم است و بیلد Thread در این آزمایش به ۲.۶۶ مگابایت رسید.
- گزینه Erase All Flash Before Sketch Upload را فعال کنید تا دادههای شبکه یا جفتسازی باقیمانده از اسکچ قبلی، فرایند راهاندازی را خراب نکند.
تجربه اتصال XIAO C6 به شبکه Thread اپل و هوم اسیستنت
در این آزمایش، شبکه Thread کاملاً اپلی بود: یک Apple TV 4K و دو HomePod mini در نقش روتر مرزی (Border Router) و هوم اسیستنت که بهصورت ماشین مجازی روی سرور Proxmox اجرا میشد. نخستین آپلود بدون مشکل انجام شد، با این تفاوت که اسکچ خالی پیشفرض آردوینو IDE روی برد نوشته شده بود، نه اسکچ اصلی؛ نشانهاش حجم بسیار کم فریمور (Firmware) بود. پس پیش از زدن دکمه Upload، مطمئن شوید کدام زبانه (Tab) باز است.
پس از فلش شدن اسکچ درست، کد جفتسازی با اپلیکیشن Home Assistant Companion روی آیفون اسکن شد و گوشی اطلاعات Thread را از طریق بلوتوث به برد داد. مانیتور سریال گزارش داد که برد به شبکه Thread متصل و جفت شده است؛ اما همانجا ماند و منتظر کنترلری بود که هرگز ظاهر نشد.
لاگ سرویس Matter Server در هوم اسیستنت دلیل را روشن کرد: برد از گواهی آزمایشی (Test Certificate) اسپرسیف استفاده میکرد و هوم اسیستنت بهطور پیشفرض این گواهیها را رد میکند. محصولات تجاری Matter گواهی تولید (Production Certificate) دارند و بردهای سرگرمی نه؛ بنابراین هر دستگاه Matter دستساز به این دیوار میخورد.
راهحل تنها یک کلید است: به مسیر Settings → Apps → Matter Server → Configuration بروید، گزینه Enable test-net DCL usage را فعال و ذخیره کنید تا برنامه دوباره راهاندازی شود. این تنظیم بررسی اعتماد را برای همه دستگاههایی که Matter Server راهاندازی میکند سست میکند، پس آن را یک تنظیم مخصوص میز آزمایش در نظر بگیرید. پس از فلش مجدد و یک جفتسازی تازه، سمت هوم اسیستنت حدود پنج ثانیه طول کشید.
هر اشاره یک رویداد دکمهای درست است؛ اما دو بار
هوم اسیستنت برد را به یک دکمه با موجودیت رویداد (Event Entity) تبدیل کرد و هر اشاره با نوع اختصاصی خود ثبت شد: multi_press_1 برای ضربه تک، multi_press_2 برای ضربه دوگانه، multi_press_3 برای سهگانه و long_press برای نگهداشتن. ضربههای تک کمی با تأخیر میرسند، چون برد ۴۰۰ میلیثانیه صبر میکند تا ببیند آیا قصد شما ضربه دوگانه است یا نه.
تنها نکته عجیب این است که هوم اسیستنت هر اشاره را دو بار و با فاصله کسری از میلیثانیه ثبت میکند. لاگ سریال برد نشان میدهد که هر اشاره یک بار ارسال میشود، پس رویداد تکراری از سمت هوم اسیستنت میآید. یک اتوماسیون کلید، دو بار اجرا میشود و لامپ را دقیقاً در همان وضعیت اول رها میکند؛ بنابراین برای اتوماسیونهای دکمهای یک محافظ بگذارید:
- mode: single
- max_exceeded: silent
سپس انتهای اکشنهای اتوماسیون یک تأخیر ۵۰۰ میلیثانیهای اضافه کنید. رویداد تکراری زمانی میرسد که اجرای نخست هنوز ادامه دارد و هوم اسیستنت بیصدا آن را رها میکند.
به یک روتر مرزی نیاز دارید؛ و احتمالاً همین حالا یکی دارید
دستگاههای Thread از طریق یک روتر مرزی (Border Router) به بقیه شبکه شما میرسند؛ روتری که شبکه مش را به وایفای و اترنت پل میزند. بسیاری از هابهای خانه هوشمند همین کار را انجام میدهند. مستندات Thread هوم اسیستنت از HomePod mini، HomePod نسل دوم، Nest Hub نسل دوم، Nest Hub Max و Google TV Streamer در میان دیگران نام برده است.
Apple TV جایی است که کاربران گیر میکنند. مدل نسل دوم Apple TV 4K و مدل نسل سوم Wi-Fi + Ethernet روتر مرزی هستند، اما مدل نسل سوم فقط وایفای هیچ رادیو Thread ندارد. اگر تنها هاب اپل شما همین مدل باشد، تمام مراحل راهاندازی را طی میکنید و در انتها به شما گفته میشود که به روتر مرزی نیاز دارید.
هوم اسیستنت پیش از راهاندازی مبتنی بر گوشی، به اطلاعات شبکه Thread شما هم نیاز دارد. در اپلیکیشن Companion به مسیر Settings → Connectivity → Thread بروید و گزینه Send credentials to Home Assistant را انتخاب کنید.
چه زمانی C6 انتخاب مناسبی نیست؟
C6 نخستین برد مناسب برای Matter است، اما پاسخ همه نیازها نیست. در این موارد سراغ گزینه دیگری بروید:
- ESP32-S3: نمایشگرها، دوربینها و هر چیزی که به حافظه PSRAM نیاز دارد به اینجا تعلق دارد. نسخه XIAO ESP32-S3 هشت مگابایت PSRAM دارد، اما Matter را فقط روی وایفای اجرا میکند.
- ESP32-H2: اگر یک سنسور قرار است همیشه فقط روی Thread زندگی کند، H2 قابلیت Thread و بلوتوث را بدون وایفای ارائه میدهد؛ که البته یعنی در صورت بروز مشکل در روتر مرزی، گزینه جایگزین وایفای نخواهید داشت.
- ESP32-C5: تراشه جدیدتر، وایفای ۶ دو باندی را به Thread اضافه میکند و بردهای آن اکنون بهراحتی یافت میشوند. کتابخانه Matter اسپرسیف از Thread از طریق گزینهای در منوی Tools پشتیبانی میکند، اما بیشتر آموزشها و مثالها هنوز C6 را هدف میگیرند.
جمعبندی
ESP32-C6 ارزانترین راه ورود به Matter است؛ راهی که شما را در گوشه وایفای گرفتار نمیکند. ESP32 همیشه برد محبوب گجتهای دستساز خانه هوشمند بوده، اما بیشتر آنها فقط از طریق وایفای با یک هاب واحد حرف میزنند و مستقیماً به اکوسیستم Matter نمیپیوندند. C6 این مشکل را بدون نیاز به یادگیری چارچوبی جدید حل میکند: یک اسکچ، یک کد جفتسازی و یک کلید در هوم اسیستنت کافی بود تا برد به همان شبکه Thread گجتهای تجاری متصل شود.
دیوار گواهی و رویدادهای تکراری، لبههای ناهموار این مسیرند، اما هیچکدام پس از آگاهی از آنها بیش از پنج دقیقه وقت نمیگیرند. اگر همین حالا یک Apple TV، HomePod mini یا Nest Hub وظیفه روتر مرزی را انجام میدهد، برد XIAO ESP32-C6 آشکارترین انتخاب نخست است. گام بعدی ساخت یک سنسور باتریخوار است؛ چون آنجاست که طراحی کممصرف Thread واقعاً ارزش خود را نشان میدهد.