این روزها صحبت از اینترنت اشیا در میان دوستداران تکنولوژی و کامپیوتر بسیار گرم است. طبق پیشبینیها در طی سالهای پیشرو میلیاردها "چیز" متصل به اینترنت خواهیم داشت و این یعنی جابجایی تریلیاردها پول در این حوزه. در این پست خواهید آموخت که چگونه میتوان فقط با صرف چند ساعت در یک نیمروز، به خانوادهی توسعهدهندگان اینترنت اشیا بپیوندید و با کمترین هزینه وسیلهای را از راه دور و با اینترنت کنترل نمایید.
در این پست قصد ندارم به مسایل فنی و پیچیده و اصطلاحاتی که در میان ما کامپیوتریها رواج دارد بپردازم، پس با خیال راحت میتوانید این مطلب را ادامه دهید :).
برای اتصال به اینترنت اشیا، تکنولوژیهای متفاوتی وجود دارد. یکی از سادهترین آنها استفاده از تکنولوژی وایفای و شبکههای مبتنی بر IPv4 میباشد. دلیل این سهولت، آماده بودن بسیاری از بسترها و ابزارهایی است که پیش از این برای این تکنولوژی در دسترس بوده و احتمالا هر روزه توسط ما استفاده میشوند. پس بدیهی است که در این پست از همین تکنولوژی استفاده خواهیم کرد.
۱- موتور وای-فای را روشن کنید.
در این پست، برای اتصال به اینترنت، از NodeMCU که بر پایهی ماژول ESP8266 طراحی شده است، استفاده کردهام. پیش از خواندن ادامهی مطلب لازم است یک آشنایی ابتدایی با این ماژول داشته باشید. پس اگر تا به حال با آن کار نکردهاید، ابتدا این مطلب را مطالعه بفرمایید: در سه سوت به وای فای متصل شویم
۲- دیگران کارها را برای ما انجام دادهاند. استفاده کنید!
برای اتصال به اینترنت و ارسال دستور به "چیز"ی که در حال توسعهی آن هستید، دو راه دارید. اول آنکه یک آیپی معنبر و اختصاصی (IP Valid) تهیه نمایید و به طور مستقیم از هر کجای دنیا به آن متصل شوید. راه دوم آن است که یک سرور به عنوان رابط در شبکهی اینترنت ایجاد نمایید. راه حل اول ساده اما پر هزینه است و من چون علاقهای به خرج کردن پولهایم ندارم، از آن میگذرم! و اما راه حل دوم.
توسعهی یک سرور برای اینترنت اشیا، کار سادهای نیست. اما خوشبختانه با فراگیر شدن بحث اینترنت اشیا، سرویسهایی رایگان هم توسط علاقهمندان این حوزه توسعه یافته است. یکی از این سرویسها، aREST نام دارد. آنگونه که به نظر میرسد، در پشت صحنه، این سرویس از پروتکل MQTT (توسعه داده شده برای اینترنت اشیا) استفاده میکند. در جلوی صحنه نیز (اینترفیس) از روش RESTful استفاده شده است. از مزایای این روش آن است که به راحتی میتوان از بسترهای موجود نظیر مرورگرهای وب برای ارسال دستور و مشاهدهی دادهها استفاده کرد. بدین ترتیب نیاز به توسعهی برنامهی جدیدی نباشد.
۳- صدا، نور، تصویر، حرکت.
الف- آمادهسازی محیط توسعه
خوب حالا همه چیز آماده است تا "چیز" را به اینترنت وصل کنیم. محیط توسعهی Arduino برای NodeMCU را باز کنید. (به بند ۱ مراجعه کنید).

به مسیر Skecth/Include Library/Manager Libraries بروید. در آنجا عبارت aREST را جست و جو نمایید و دو کتابخانهی مربوط به آن را نصب نمایید.
همچنین کتابخانهی PubSubClient را نیز مشابه روش قبلی نصب نمایید.
ب- دریافت کدهای اجرایی
در محیط آردوینو، از مسیر File/Examples/aREST، پروژهی ESP32_cloud را انتخاب نمایید یا همین سورس کد را از اینجا دریافت کنید.

خوب، یک سری مشکل در این سورس کد وجود دارد که باید آنها را اصلاح کنید! تغییر WiFi.h به ESP8266WiFi.h و اضافه کردن کدهای مربوط به خودتان. نسخهی اصلاحشدهای که من برای تست از آن استفاده کرده ام را میتوانید از همینجا مشاهده نمایید.
در این مثال من یک LED متصل به پین D2 (از NodeMCU که برابر با پین IO4 از ESP8266 میباشد) را روشن و خاموش خواهم کرد. پیش از ادامه حتما توجه داشته باشید که لازم است موارد زیر را بنابر کار خودتان تنظیم نمایید.
هر دیوایس متصل به سرور، باید یک آیدی یکتا داشته باشد. این آیدی را خودتان به دلخواه بسازید (به امید اینکه فرد دیگری در حال استفاده از آن نباشد) و به جای your-unique-id در کد جایگذاری نمایید.
همچنین تنظیمات مربوط به اتصال شبکهی وای فای خودتان را هم تصحیح نمایید.
ج- سختافزار را آماده کنید.
در این مثال من یک LED را خاموش و روشن خواهم کرد. در این شکل اتصال برد و LED را میتوانید مشاهده نمایید.

حالا برنامه را به روی برد پروگرام نمایید. چنانچه همه چیز درست پیش رفته باشد، برد به سرور وصل شده و همه چیز آمادهی گام نهایی خواهد بود.
د- از آن سر دنیا خاموش و روشن کنید.
مرورگر دلخواهتان را باز کنید (امیدوارم IE نباشد :))، و عبارت زیر را در محل آدرس وارد نمایید. پارامتر یک برای روشن شدن و پارامتر صفر برای خاموش نمودن LED به کار میآید. توجه داشته باشید که حتما از آیدی یکتای خودتان که در کد وارد کردهاید استفاده نمایید. به عنوان مثال من از آیدی nooby استفاده کردهام.
برای خاموش کردن آدرس زیر را وارد کنید: (جایگزینی nooby با آیدی خودتان فراموش نشود)
برای روشن کردن آدرس زیر را وارد کنید: (جایگزینی nooby با آیدی خودتان فراموش نشود)
این هم ویدیویی از تست هر آنچه گفته شد.