سلام خدمت همه شما مایکروالکامی ها. در مطالب قبلی از سری آموزش های ماژول ESP8266 به معرفی mDNS کاربرد آن بررسی شد. در این مطلب روشی را در جهت کنترل وسایل برقی با استفاده از ماژول ESP8266 از طریق سیستم عامل iOS و دستیار صوتی اپل یا همان سیری (Siri) دوست داشتنی مطرح خواهم کرد. پس با من تا انتهای مطلب همراه باشید. همچنین شما میتویند سایر مطالب من رو از این لینک و این لینک مطالعه و بررسی کنید.
بررسی سناریو کنترل وسایل برقی با ESP8266
در سناریو مورد نظر و مطرح شده این آموزش قرار است با استفاده از دیوایس ها و دستگاه هایی که از سیستم عامل اپل یعنی iOS و مشتقات آن پشتیبانی میکنند وسایل برقی خانه، محل کار و… را بصورت محلی (لوکال) کنترل کنیم. برای این کار قطعا به یکی از دیوایس ها مذکور و یکسری قطعات که در بخش های بعدی آمده و همچنین یک مودم نیاز خواهیم داشت. البته با تغییراتی میتوان بدون نیاز به مودم نیز این آموزش را پیش برد.
روند کلی کار
روش کار بسیار ساده است. با فراخوانی دستیار صوتی اپل (Siri) یعنی استفاده از دستور “Hey Siri” فرمان اصلی خود، که آن را تعریف خواهیم کرد را گفته و عملیات مورد نظر انجام خواهد پذیرفت. البته در آخرین نسخه از iOS قابلیت استفاده آفلاین از Siri نیز وجود دارد. این دسترسی گسترده نیست و محدودیت هایی دارد. شایان ذکر است بجای استفاده از کانکت کردن ESP8266 به مودم که در این مطلب از آن استفاده شده است میتوان ماژول رو بصورت اکسس پوینت تعریف کرد و به آن متصل شد. و بقیه ماجرا نیز مشابه خواهد بود.
قطعات مورد نیاز
سورس کد کنترل وسایل برقی با ESP8266
کد هایی که در ادامه آمده است را در نرم افزار Arduino IDE وارد کرده و با استفاده از این آموزش، برروی ESP2866 خود پروگرام کنید. با استفاده از جایگزین کردن SSID و Password مودم خود در برنامه زیر، ماژول را به مودم متصل خواهید کرد. همچنین از آموزش قبلی که نحوه اختصاص IP به ماژول بیان شد نیزIP ماژول تغییر نکرده و براحتی میتوانید از آن استفاده نمایید.
#include <ESP8266WiFi.h> #include <ESP8266mDNS.h> #include <ESPAsyncWebServer.h> const char* ssid = "SSID"; const char* password = "Password; AsyncWebServer server(80); IPAddress local_IP(192, 168, 1, 184); IPAddress gateway(192, 168, 1, 1); IPAddress subnet(255, 255, 0, 0); void notFound(AsyncWebServerRequest *request) { request->send(404, "text/plain", "Page Not found"); } void setup(void) { pinMode(2, OUTPUT); Serial.begin(115200); if (!WiFi.config(local_IP, gateway, subnet)) { Serial.println("STA Failed to configure"); } Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected."); Serial.println("IP address: "); Serial.println(WiFi.localIP()); server.on("/", [](AsyncWebServerRequest * request) { String message = "Welcom to LED controller panel with iOS"; request->send(200, "text/plain", message); }); server.on("/led1on", HTTP_GET, [](AsyncWebServerRequest * request) { String message = "LED1 is turned ON"; digitalWrite(2, LOW); Serial.println("LED1 is turned ON"); request->send(200, "text/plain", message); }); server.on("/led1off", HTTP_GET, [](AsyncWebServerRequest * request) { String message = "LED1 is turned OFF"; digitalWrite(2, HIGH); Serial.println("LED1 is turned OFF"); request->send(200, "text/plain", message); }); server.onNotFound(notFound); server.begin(); } void loop(void) { }
اپلیکیشن Shotcut در iOS و معرفی سناریو
نرم افزار Shortcut یکی از اپلیکیشن های رسمی کمپانی اپل بوده و دارای عملکرد و کاربرد های فراوانی میباشد. در این قسمت باید یکسری Shortcut را تعریف نماییم. با فراخوانی هر یک از آنها یا کلیک کردن برروی آنها عملیات مد نظر انجام خواهد شد. در حقیقت با کلیک یا فراخوانی هر یک از آنها یک لینک مشخص در مرورگر باز خواهد شد که نتیجه آن قطع و وصل یک وسیله برقی در سمت گیرنده خواهد بود.
نحوه اضافه کردن شورتکات در اپلیکیشن
پس از آپلود کد های بخش قبلی روی ESP2866، به همان شبکه ای که ماژول متصل شده است وصل شوید. مرورگر Safari را باز کرده و آدرس زیر را وارد نمایید. در این حالت شاهد خواهید بود LED متصل به پایه ماژول روشن خواهد شد. در صورت وارد کردن آدرس دوم، LED خاموش خواهد شد.
192.168.1.184/led1on **** 192.168.1.184/led1off
بعد از طی کردن این مرحله اپلیکیشن Shortcut را باز کرده، وارد تب Gallery شوید. با اسکرول کردن شاهد آیکن سافاری و URL اخیر یعنی همین آدرس های بالا خواهید بود. روی (+) آن کلیک کنید. در پنجره باز شده دستور صوتی مد نظر خود جهت فراخوانی این شورتکات در سیری را وارد نمایید و تمام. حال با فراخوانی سیری توسط دستور Hey Siri و سپس گفتن جمله مشخص شده مرحله قبل، LED متصل شده به ماژول روشن/خاموش خواهد شد.
مشاهده عملی
مزیت آموزش مطرح شده
در آموزش مورد بحث در این مطلب با استفاده از آموزش های قبلی، IP لوکال ماژول بصورت ثابت تنظیم شد. با این کار دیگر نیاز به تغییر آدرس در تنظیمات اپلیکیشن نیست. در آموزش های مطرح در اینترنت این مشکل مرتفع نشده است اما در مطلب پیش رو اینگونه نیست و مشکل برطرف شده است.
نتیجه گیری
در این مطلب نحوه استفاده از اپلیکیشن شورتکات اپل و چگونگی کنترل وسایل برقی از طریق آن از طریق سیستم عامل iOS و همچنین دستیار صوتی اپل (Siri) مطرح شد. در این آموزش با استفاده از تنظیم آی پی ثابت از تغییر IP لوکال ماژول جلوگیری شد.
امیدوارم از این آموزش کمال بهره را برده باشید. در صورت داشتن هرگونه نظر یا سوال درباره این آموزش اون رو در انتهای همین صفحه در قسمت دیدگاه ها قرار بدید. در کوتاه ترین زمان ممکن به اون ها پاسخ خواهم داد. اگر این مطلب براتون مفید بود، اون رو حتما به اشتراک بگذارید. همینطور میتونید این آموزش را پس از اجرای عملی توی اینستاگرام با هشتگ microelecom# به اشتراک بگذارید و پیج مایکروالکام (microelecom@) رو هم منشن کنید.
سلام میخواستم بدون با کدویژن هم میشود
سلام،
اگر بشه میتونید اینطور عمل کنید که ESP به میکرو وصل بشه و برنامه اصلی رو برای میکرو بنویسید. مطمئن نیستم ولی بعید میدونم بشه اینکارو کرد!!
باید راهی پیدا کنید که بشه لوکال وب سرور را با کدویژن بنویسید و با ESP پیاده سازی کنید.
چون قاعدتا لوکال وب سرور تا جایی که میدونم فقط باید روی خود ESP8266 اجرا بشه و خود ماژول پروگرام بشه.