با ESP32 خود صحبت کرده و آنرا با Google Assistant کنترل کنید

فهرست مطالب

مقدمه

بسیار پیش آمده که در اتاق خود نشسته‌اید و قصد دارید تجهیزات برقی منزل مانند لامپ ها، فن و …. را روشن و خاموش و یا کنترل کنید اما حوصله این کار را ندارید و یا اینکه می‌خواهید قبل از رسیدن به منزل کولر اتاق خود را روشن کنید تا در زمان رسیدن شما به منزل هوای اتاق مطبوع باشد.

با توجه به توضیحات بالا اگر می‌خواهید وسایل برقی منزل و اتاق خود را از طریق تلفن همراه و با صحبت کردن با آن کنترل کنید، مطالعه این آموزش می‌تواند برایتان مفید باشد.

برنامه‌ای به نام Google-Assistant در تلفن های همراه وجود دارد که شما از طریق آن می‌توانید با گوشی خود صحبت کرده و فرامین صوتی مدنظر خود را به آن ارسال کنید. حال فرض کنید گوشی شما از طریق فضای اینترنت به یک میکروکنترلر مثل ESP و یا Arduino متصل شود، در این صورت شما قادر خواهید بود با میکروکنترلر خود صحبت کرده و فرامین صوتی خود را جهت کنترل تجهیزات مختلف به آن ارسال کنید. میکروکنترلر را نیز می‌توانید از طریق رله به تجهیزات مدنظر مانند لامپها، فن، کولر و …. متصل کنید تا بتوانید از طریق تلفن همراه خود همه‌ی تجهیزات منزل خود را از راه دور کنترل کنید.

آنچه در این آموزش یاد می‌گیرید

همانطور که بیان شد، هدف از این آموزش این است که شما بتوانید از راه دور و با فرامین صوتی تجهیزات خود را کنترل کنید. اما برای ایجاد این ارتباط نمی‌توانید Google-Assistant را مستقیم به میکروکنترلر خود ارتباط دهید. ما در این آموزش از ESP32 به عنوان میکروکنترلر استفاده می‌کنیم. یکی از مزیت‌های مهم آن دارا بودن wifi می‌باشد.

برای ایجاد ارتباط بین Google-Assistant و  ESP32 بایستی از دو واسط استفاده کنیم. یک واسط برای ارتباط با Google-Assistant و دیگری برای ESP32 به کار برده می‌شود. از بستر IFTTT برای ارتباط با Google-Assistant استفاده می‌کنیم. IFTTT هم نمیتوان به صورت مسقیم به ESP32 متصل کرد. به همین دلیل رابط دیگری به نام Adafruit-IO  برای ایجاد ارتباط بین IFTTT و ESP32 استفاده می‌شود.

در این آموزش ابتدا در سایت Adafruit-IO ثبت نام کرده و یک بلوک جهت کنترل یک عدد LED می‌سازیم. سپس از طریق نرم‌افزار Arduino IDE، برنامه ای جهت ارتباط با Adafruit-IO بر روی ESP32 آپلود می‌کنیم. سپس ESP32 را از طریق یک رله به LED متصل میکنیم و قصدمان این است که روشن و خاموش شدن LED را از راه دور و از طریق فرامین صوتی کنترل کنیم.
در ادامه نیز یک اکانت در سایت IFTTT می‌سازیم و ارتباط آن را با Google Assistant و از طرف دیگر با Adafruit-IO تنظیم می‌کنیم.
در آخر هم با فرامین صوتی که خودمان تنظیم کردیم، LED را روشن و خاموش می‌کنیم. این آموزش را می‌توان برای  میکروکنترلرهای دیگر و با تجهیزات دیگری مثل فن، لامپ و …. تکرار کرد.

Adafruit-IO چیست؟

Adafruit-IO یک فضای ابری است که شما می‌توانید از طریق اینترنت به آن متصل شوید. می‌توانید از طریق آن به میکروکنترلری مانند ESP32 متصل شوید و پایه های میکروکنترلر را توسط آن کنترل کنید و با میکروکنترلر در یک فضای ابری اینترنتی تبادل اطلاعات داشته باشید.

با Adafruit-IO چه کارهایی می‌توان انجام داد؟

  • نمایش آنلاین اطلاعات
  • ایجاد پروژه هایی که نیاز به اتصال به اینترنت دارید
  • اتصال پروژه‌تان به دیگر تجهیزات متصل به اینترنت
  • اتصال پروژه ها به سرویس‌های وب

Google-Assistant چیست؟

Google Assistant یک دستیار هوش مصنوعی توسعه یافته توسط گوگل است که عمدتا در دستگاه های سیار و هوشمند در دسترس می باشد. برخلاف ورژن قبلی، Google Assistant فعلی می تواند در مکالمات دو طرفه شرکت کند. این ابزار بهتر از هر ابزار دیگری کلمات شما را شناسایی می کند و به سرعت به فرمان های شما پاسخ می دهد.

کاربران به صورت صدای طبیعی با Google Assistant ارتباط برقرار می کنند، هرچند که این ابزار صفحه کلید را نیز پشتیبانی می کند. مانند همان ماهیت Google Now، ابزار Assistant می تواند در اینترنت جستجو کند، رویدادها را زمانبندی کند، تنظیمات سخت افزاری دستگاه کاربر را تغییر دهد و اطلاعاتی را از اکانت گوگل کاربر به وی نمایش دهد. همچنین گوگل اعلام کرده است که Assistant توانایی تشخیص اجسام از طریق دوربین و جمع‌آوری اطلاعات راجع به آنها را نیز دارد، همچنین از خرید و ارسال پول و شناسایی آهنگ ها نیز پشتیبانی می کند.

IFTTT چیست؟

نام IFTTT خلاصه عبارت “if this, then that.” می‌باشد. IFTTT یک پلتفرم نرم‌افزاری است که در آن اپلیکیشن‌ها، تجهیزات و سرویس‌های مختلف برای ایجاد یک یا چند اتوماسیون با هم مرتبط می‌شوند. در واقع می‌توان گفت که IFTTT مانند یک واسط ارتباطی بین آنها عمل می‌کند.

این اتوماسیون از طریق Applet ها انجام می‌شود. به صورتی که چندین برنامه جهت اجرای کارهای خودکار به هم متصل می‌گردند. شما از طریق سایت IFTTT.com می‌توانید این Applet ها را فعال و یا غیر فعال سازید. در ضمن می‌توانید Applet های خودتان را بسازید و از Applet های متنوع موجود در سایت بهره ببرید.

در ادامه آموزش نحوه کار با سایت IFTTT و ایجاد یک Applet جدید را فرا می‌گیرید.

لوازمی که به آن احتیاج دارید

جهت ادامه آموزش به قطعات و لوازم زیر نیاز دارید:

سخت افزار های موردنیاز

ماژول وای فای و بلوتوث دو هسته ای ESP32S-WROOM × 1
برد بورد 400 حفره ای 5.5cm*8.5cm × 1
ماژول رله 5 ولت چهار کاناله × 1
ال ای دی 5 میلی متری قرمز × 1
مقاومت 330 اهم × 1
سیم جامپر نری به نری 10 سانتی متری × 1
سیم جامپر مادگی به مادگی 20 سانتی متری × 1
سیم جامپر نری به مادگی 20 سانتی متری × 1

نرم‌افزارهای موردنیاز

آردوینوIDE

گام اول: ایجاد ارتباط بین ESP32 و Adafruit

همانطور که گفته شد برای ارتباط ESP32 با IFTTT بایستی از بستری مانند Adufruit IO استفاده شود. در این مرحله ESP32 را به Adafruit IO متصل کرده تا مقدمه ارتباط ESP32 با فضای اینترنت برقرار شود.

کد برنامه برای اتصال ESP به Adafruit IO

قبل از هرکاری بایستی برنامه موردنظر را نوشته و سپس تعدادی از متغیرهای مربوط را در گام‌های بعدی تنظیم کنیم.
از بخش Sketch گزینه Include Library  را انتخاب کرده و سپس برای نصب کتابخانه مدنظر، بر روی Manage Libraries کلیلک کنید. در ادامه با سرچ کتابخانه Adafruit MQTT ، آن را مانند تصویر زیر نصب کنید.

در ادامه برنامه زیر از سایت Github پیوست شده است. آن را کپی کرده در نرم‌افزار Arduino IDE خود Paste کنید:

/*
  Made on 6 July 2021
  By Amirmohammad Shojaei
  
Home
based on “ajaynikam2410” Example */ //for esp32 use <wifi.h>, for esp8266 use <esp8266wifi.h> // this code is for esp32 for using esp8266 you just need to change <wifi.h> into <esp8266wifi.h> and also change the relay pin #include <WiFi.h> #include "Adafruit_MQTT.h" #include "Adafruit_MQTT_Client.h" /************************* Pin Definition *********************************/ //Relays for switching appliances #define Relay1 12 #define Relay2 13 #define Relay3 14 #define Relay4 27 #define buzzer 26 //buzzer to know the status of MQTT connections and can be used for any other purpose according to your project need. /************************* WiFi Access Point *********************************/ #define WLAN_SSID "wLAN_SSID" #define WLAN_PASS "wLAN_PASS" /************************* Adafruit.io Setup *********************************/ #define AIO_SERVER "io.adafruit.com" #define AIO_SERVERPORT 1883 // use 8883 for SSL #define AIO_USERNAME "AIO_USERUSERNAME" #define AIO_KEY "AIO_KEY" /************ Global State (you don't need to change this!) ******************/ // Create an ESP8266 WiFiClient class to connect to the MQTT server. WiFiClient client; // or... use WiFiFlientSecure for SSL //WiFiClientSecure client; // Setup the MQTT client class by passing in the WiFi client and MQTT server and login details. Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY); /****************************** Feeds ***************************************/ // Notice MQTT paths for AIO follow the form: <username>/feeds/<feedname> Adafruit_MQTT_Publish Light = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/light"); // Setup a feed called 'onoff' for subscribing to changes. Adafruit_MQTT_Subscribe Light1 = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/led"); Adafruit_MQTT_Subscribe Fan1 = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/relay2"); Adafruit_MQTT_Subscribe Light2 = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/relay3"); Adafruit_MQTT_Subscribe Fan2 = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/relay4"); /*************************** Sketch Code ************************************/ // Bug workaround for Arduino 1.6.6, it seems to need a function declaration // for some reason (only affects ESP8266, likely an arduino-builder bug). void MQTT_connect(); void setup() { Serial.begin(115200); delay(10); pinMode(Relay1, OUTPUT); pinMode(Relay2, OUTPUT); pinMode(Relay3, OUTPUT); pinMode(Relay4, OUTPUT); Serial.println(F("Adafruit MQTT demo")); // Connect to WiFi access point. Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(WLAN_SSID); WiFi.begin(WLAN_SSID, WLAN_PASS); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); // Setup MQTT subscription for onoff feed. mqtt.subscribe(&Light1); mqtt.subscribe(&Fan1); mqtt.subscribe(&Light2); mqtt.subscribe(&Fan2); } void loop() { // Ensure the connection to the MQTT server is alive (this will make the first // connection and automatically reconnect when disconnected). See the MQTT_connect // function definition further below. MQTT_connect(); // this is our 'wait for incoming subscription packets' busy subloop // try to spend your time here Adafruit_MQTT_Subscribe *subscription; while ((subscription = mqtt.readSubscription(20000))) { if (subscription == &Light1) { Serial.print(F("Got: ")); Serial.println((char *)Light1.lastread); int Light1_State = atoi((char *)Light1.lastread); digitalWrite(Relay1, Light1_State); } if (subscription == &Light2) { Serial.print(F("Got: ")); Serial.println((char *)Light2.lastread); int Light2_State = atoi((char *)Light2.lastread); digitalWrite(Relay2, Light2_State); } if (subscription == &Fan1) { Serial.print(F("Got: ")); Serial.println((char *)Fan1.lastread); int Fan1_State = atoi((char *)Fan1.lastread); digitalWrite(Relay3, Fan1_State); } if (subscription == &Fan2) { Serial.print(F("Got: ")); Serial.println((char *)Fan2.lastread); int Fan2_State = atoi((char *)Fan2.lastread); digitalWrite(Relay4, Fan2_State); } } // ping the server to keep the mqtt connection alive // NOT required if you are publishing once every KEEPALIVE seconds /* if(! mqtt.ping()) { mqtt.disconnect(); } */ } // Function to connect and reconnect as necessary to the MQTT server. // Should be called in the loop function and it will take care if connecting. void MQTT_connect() { int8_t ret; // Stop if already connected. if (mqtt.connected()) { return; } Serial.print("Connecting to MQTT... "); uint8_t retries = 3; digitalWrite(buzzer, HIGH); delay(200); digitalWrite(buzzer, LOW); delay(200); digitalWrite(buzzer, HIGH); delay(200); digitalWrite(buzzer, LOW); delay(200); while ((ret = mqtt.connect()) != 0) { // connect will return 0 for connected Serial.println(mqtt.connectErrorString(ret)); Serial.println("Retrying MQTT connection in 5 seconds..."); mqtt.disconnect(); delay(5000); // wait 5 seconds retries--; if (retries == 0) { // basically die and wait for WDT to reset me while (1); } } Serial.println("MQTT Connected!"); digitalWrite(buzzer, HIGH); delay(2000); digitalWrite(buzzer, LOW); }

در اصل برنامه بالا برای کنترل 4 تجهیز مختلف توسط رله نوشته شده است. اما ما در این آموزش تنها برای کنترل یک تجهیز (روشن و خاموش کردن یک عدد LED) از آن استفاده می‌کنیم.

نکته

4 قسمت برنامه بایستی توسط خودتان تکمیل شود. این موارد برای هر کاربر مقادیر متفاوتی می‌باشد. برای تکمیل کردن آن ها بایستی ابتدا عبارات درون “X” را پاک کرده و مقادیر مدنظر خودتان را جایگزین آن نمائید.

این 4 مورد به شرح زیر می‌باشند:

  • WLAN_SSID: نام اینترنت Wifi هست که قصد دارید ESP32 به آن متصل گردد.
  • WLAN_PASS: رمز Wifi است که ESP32 به آن وصل می‌شود.
  • AIO_USERNAME: این کد از طریق Adafruit IO قابل دسترسی است.
  • AIO_KEY: این کد نیز از طریق Adafruit IO امکان دسترسی دارد.

ثبت نام و ایجاد پروژه در Adafruit IO

مرحله نخست

ابتدا وارد سایت io.adafruit.com شده و در سایت ثبت نام کرده و یک اکانت برای خود بسازید.

مرحله دوم

سپس وارد اکانت خود شده و برای ایجاد پروژه جدید بر روی + New Dashboard کلیک کرده و سپس با انتخاب عنوان، پروژه جدید خود را ایجاد کنید.

مرحله سوم

حال از طریق منوی سمت راست و بخش Create New Block می‌توانید یک بلوک جدید اضافه کنید. در این قسمت بلوک Toggle را انتخاب کرده و سپس نام آن را انتخاب یک نام برای آن تعیین کرده و دکمه Create را بزنید. ما اسم آن را LED می‌گذاریم.
با انجام این کار، روی آیکون مربوطه کلیک کرده و بلوک آن را ایجاد کنید. 

مرحله چهارم

حال می‌توانید از قسمت My Key مقدار Username را کپی کرده و به جای “AIO_USERNAME” قرار دهید. همین کار را برای Active Key کرده و مقدار آن را به جای “AIO_KEY” کپی کنید.

مرحله پنجم

بر روی Edit Layout کیک کرده و از قسمت تنظیمات بلوک Block Info را بزنید. بایستی قسمت آخر API URL یعنی /feeds/led در قسمتی از کد برنامه عینا کپی شود.

فیلم انجام مراحل در سایت Adafruit IO

نحوه انجام مراحل بالا را می‌توانید از طریق فیلم زیر به صورت خلاصه و دقیق مشاهده کنید:

آپلود کد بر روی ESP32

دو پارامتر “AIO_USERNAME” و “AIO_KEY” را در قسمت قبل به دست آوردیم. پارامتر “WLAN_SSID” و  “WLAN_PASS” هم که نام و رمز wifi می‌باشند و آنها را جای‌گذاری می‌کنیم.

بعد از اینکه چهار پارامتر مدنظر را تغییر دادیم، می‌توانیم برنامه را بر روی ESP آپلود کنیم.

نکته

هنگام آپلود دکمه بوت را نگه دارید تا برنامه به درستی بر روی ESP32 آپلود شود.

دقت داشته باشید که مانند عکس زیر ESP32 را به عنوان برد قرار دهید و در ادامه نیز پورت مخصوص آن را انتخاب کنید.

پس از اینکه برنامه به صورت کامل Upload شد، سریال مانیتور نرم‌افزار را باز کرده و baudrate آن را بر روی 115200 قرار دهید. اگر برنامه به درستی انجام شود، شما بایستی در خروجی پیغام “MQTT Connected!” را مشاهده کنید. این بدین معناست که ارتباط بین ESP32 و Adafruit IO به درستی برقرار شده است.

گام دوم: سیم‌بندی

پس از آپلود برنامه، ESP32 را به رله و LED متصل کرده و سیم‌بندی مدار را به صورت زیر تکمیل می‌کنیم:

گام سوم: برقراری ارتباط IFTTT با Google Assistant و Adafruit IO

ابتدا وارد سایت ifttt.com شوید و ثبت نام کنید و یک اکانت برای خود بسازید.

سپس بر روی کلمه Create کلیک کنید. در این بخش با دو گزینه This و That روبه‌رو می‌شوید. This به معنای ارتباط با ورودی است و That نیز ifttt را به خروجی متصل می‌کند. در این آموزش Google Assistant به عنوان ورودی  و Adafruit IO به عنوان خروجی با Ifttt در ارتباط هستند.

به زبان ساده‌تر بستر ifttt میان Google Assistant و  Adafruit IO ارتباط برقرار کرده و مانند یک رابط بین آن دو عمل می‌کند.

برقراری ارتباط با Google Assistant

جهت برقراری ارتباط با Google Assistant مراحل زیر را طی کنید:

گام اول

پس از انتخاب گزینه This، عبارت Google Assistant را سرچ کرده و آن را باز کنید.

گام دوم

در ادامه عبارت Say a simple phrase را برگزینید.

گام سوم

سپس عبارتی که می‌خواهید به صورت صوت بیان کنید را به سه شکل مختلف بنویسد. همچنین جوابی که می‌خواهید در ازای آن از Googla Assistant بشنوید را وارد کنید. در آخر نیز زبان مورد نظرتان را انتخاب کرده و Create trigger را بزنید.

برای مثال برای روشن کردن LED عبارت های زیر را وارد می‌کنیم:

نکته

گاهی اوقات بایستی برای ادامه کار ایمیل خود را تایید کنید.
البته سعی کنید همه‌ی اکانت های خود را با یک ایمیل بسازید تا مشکلی در مسیر راه‌اندازی به وجود نیاید.

برقراری ارتباط با Adafruit IO

برای ایجاد این ارتباط مراحل زیر را طی کنید:

گام اول

بر روی That بزنید و در ادامه با سرچ کلمه Adafruit آن را انتخاب کنید.

گام دوم

عبارت Send data to Adafruit IO را برگزینید و سپس نام بلوک ساخته شده را انتخاب کرده و مقداری که می‌‌خواهید زمان روشن شدن بر روی آن ذخیره شود را وارد کنید:

نکته

دقت کنید که اگر ماژول رله شما Active Low باشد، برای روشن شدن باید مقدار 0 بر روی پایه ذخیره شود.
اگر هم رله Active High باشد، برای روشن شدن باید مقدار 1  بر روی پایه ذخیره شود.

در این آموزش از رله Active Low استفاده شده، بنابراین در زمان روشن شدن بایستی مقدار 0 بر روی ماژول ذخیره شود.

در آخر نیز Continue را زده و با فشردن Finish مراحل را به اتمام برسانید.

همین مراحل بالا را برای خاموش شدن LED نیز تکرار کنید. با این تفاوت که در بخش اول به جای عبارت on از کلمه Off استفاده کنید و در بخش دوم هم به جای مقدار 0 مقدار 1 را قرار دهید.

دو بلوک جدید ساخته شده در قسمت My Applets قابل مشاهده می‌باشند.

نکته

در استفاده free از سایت ifttt شما قادر به ساخت تنها سه عدد  Applet جدید هستید.

فیلم انجام مراحل در سایت IFTTT

نحوه انجام مراحل بالا را می‌توانید از طریق فیلم زیر به صورت خلاصه و دقیق مشاهده کنید:

گام آخر: ارسال پیام صوتی توسط Google Assistant

در این مرحله اینترنت گوشی خود را روشن نموده و Google Assistant را باز کنید. پیام هایی که در سایت ifttt وارد کرده اید را بیان کنید تا تغییرات وضعیت LED را مشاهده کنید. فیلم زیر نشان دهنده روشن و خاموش شدن LED توسط فرامین صوتی می‌باشد:

یک گام جلوتر

پس از انجام کامل این آموزش، موضوعات و طرح های زیر را می‌توانید به عنوان گام بعدی انجام دهید:

  • استفاده از بردهای دیگر مانند Node-MCU ESP8266
  • کنترل آنالوگ میزان نور LED توسط Google-Assistant
  • کنترل همزمان 4 تجهیز مختلف توسط Google-assistant
  • ارائه راهکاری جدید برای ارتباط Google Assistant با میکروکنترلر
  • جایگزین کردن برنامه Blynk با Adafruit-IO

از این مطلب خوشتان آمد؟

آخرین مطالت و آموزش ها را در ایمیلتان دریافت کنید:

مطالب بیشتر

Comments (32)

  • پیام Reply

    سلام من متوجه نشدم چطوری الان به گوگل دستوری که میخوام اجرا کنه رو تعریف کنم

    دسامبر 23, 2020 at 9:46 ب.ظ
    • مهران ملکی Reply

      سلام
      به طور خلاصه، کد مربوط به esp برای دریافت اطلاعات از google assistant و ارسال برای Arduino بوده و کد بعدی مربوط به Arduino برای دریافت اطلاعات و فرمان از google assistant از طریق esp است. در این مرحله Arduino فرمان از google assistant را دریافت کرده و با توجه به کدی که خود شما برای آن نوشته اید، بررسی می نماید که این فرمان به چه معناست. در واقع باید تعریف دستور و رمزگذاری توسط خودتان انجام شود. مثلا کاراکتر A را به عنوان دستوری برای روشن کردن یک led توسط Arduino در نظر می گیرید. در ادامه با فرستاده شدن یک پیام از طریق google assistant، برد Arduino با دریافت و بررسی اینکه پیام دریافت شده کاراکتر A هست یا خیر، تصمیم به روشن کردن یا نکردن led می گیرد.

      دسامبر 27, 2020 at 10:52 ق.ظ
  • امیررضا Reply

    سلام
    در مورد سرور و اون فایلی که که گذاشتین توضیح میدید
    باید به چه سروری وصل شد و قسمت url چی باید وارد کنیم
    باید سرور بسازیم برای این کار لطفن توضیح بدید در جهل و نادانی رهایی یابیم
    ممنون

    مارس 29, 2021 at 3:17 ق.ظ
    • مهران ملکی Reply

      سلام.
      مقاله نوشته شده دارای ایراداتی بود که اکنون اصلاح شده. میتونید از آموزش جدید استفاده کنید.

      سپتامبر 13, 2021 at 4:35 ب.ظ
  • میلاد Reply

    ممنون بابت آموزش. ولی میشد از nodemcu استفاده کرد و بجای دوتا کد، یه کد واسش نوشت که مستقیم دستور رو بگیره و اجرا کنه.این وسط دیگه نیاز به برد آردوینو نبود.

    آوریل 23, 2021 at 1:47 ب.ظ
    • مهران ملکی Reply

      سلام
      بله میشد این کار رو هم کرد، اما هدف در این آموزش به طور کلی این بوده که پایه‌های برد آردوینو از طریق گرفتن فرمان از google assistant کنترل بشن و برای این منظور از یک ماژول esp8266 استفاده شده.

      آوریل 24, 2021 at 8:45 ق.ظ
  • Reply

    سلام می شود این کار را با برد بلوتوث هم کرد ؟

    می 12, 2021 at 11:36 ب.ظ
    • مهران ملکی Reply

      سلام. بله به راحتی میشه این کار رو انجام داد. میتونید از آموزش زیر برای استفاده از ماژول‌های بلوتوث و برنامه‌نویسی برای اون‌ها کمک بگیرید:
      “https://thecaferobot.com/learn/tutorial-getting-started-with-hc05-bluetooth-module-arduino/”

      می 17, 2021 at 8:54 ق.ظ
    • یاشار Reply

      میشه لطفا اموزشش رو با rainmaker بزارید اموزش فارسی نیست و اینکه نسازی به سایت واسط نیست اپ اندروید داره من با چنتا اموزش انگلیسی رفتم همه چی اوکی هست فقط تو خروجی سریال اون qrcode نشون نمیده

      فوریه 4, 2024 at 11:11 ب.ظ
  • میلاد Reply

    سلام و عرض ادب، من دقیقا همین آموزش رو اجرا کردم ولی متاسفانه Connecting to MQTT… Connection failed
    رو میده. بنظرتون ایراد از کجاست

    جولای 11, 2022 at 7:35 ب.ظ
    • مهران ملکی Reply

      سلام.
      مطمئن شید که اطلاعات مربوط به MQTT در خط 49 به درستی وارد کردید. امکانش هست که مشکل از اون قسمت باشه.

      جولای 15, 2022 at 10:38 ب.ظ
  • محمد Reply

    سلام و عرض خسته نباشید
    مگر در این پروژه از برد آردوینو هم استفاده شده؟
    و اینکه اگه esp32 را به وای فای منزل متصل کنم میتونم از راه دور با وصل کردن نت موبایل رله هارو کنترل کنم آیا؟

    اکتبر 25, 2022 at 7:59 ب.ظ
    • مهران ملکی Reply

      سلام.
      خیر از برد آردوینو استفاده نشده. از برد ESP32 استفاده شده و برای برنامه‌نویسی اون از نرم‌افزار Arduino IDE استفاده شده.
      و اینکه بله. میتونید از راه دور رله‌هارو کنترل کنید.

      اکتبر 28, 2022 at 4:58 ب.ظ
  • محمد Reply

    سلام وقت بخیر ببخشید در مرحله ifttt بنده سرچ میکنم و Google assistant v2 میاد میزنم روش و گزینه ای به نام Say a simple phrase وجود ندارد فقط دو تا گزینه داره یکیش مرحله داره که اتصال نرم افزار Google home
    به ifttt هست
    لطفاً راهنمایی کنید تا پروژه رو درست کنم

    ژانویه 13, 2023 at 6:45 ب.ظ
  • مهدی Reply

    سلام برای خاموش و روشن کردن چند تا وسیله باید کجا ها کد رو عوض کنیم و توی اون سایت ها باید چه کار هایی انجام بشه اگر بتونید راهنماییم کنید ممنونتون میشم.اگر هم سورس کد آماده این کار رو برای فروش دارید معرفی کنید ممنونتون میشم.🌹

    ژوئن 14, 2023 at 1:06 ق.ظ
    • محمد دمیرچی Reply

      با سلام
      تمامی مراحل به صورت کامل در آموزش ذکر شده است

      ژوئن 14, 2023 at 11:59 ق.ظ
  • مهدی Reply

    سلام این خطا رو برای من میزنه چه کار کنم؟؟
    Compilation error: WiFi.h: No such file or directory

    ژوئن 18, 2023 at 7:18 ب.ظ
    • محمد دمیرچی Reply

      با سلام
      لایبراری esp را بر روی نرم افزار آردوینو نصب کرده اید؟؟
      از این آموزش میتوانید اقدام به نصب کنید.
      آموزش نصب برد ESP32 به روی Arduino IDE (ویندوز، لینوکس، مک OS)

      ژوئن 19, 2023 at 10:28 ق.ظ
      • مهدی Reply

        سلام من درایورش رو نصب کردم ولی همچنان اون خطا هستش

        ژوئن 19, 2023 at 6:59 ب.ظ
      • مهدی Reply

        حتا برنامه آردوینو به آخرین نسخه هم بروز هستش

        ژوئن 19, 2023 at 7:00 ب.ظ
  • مهدی Reply

    سلام من درایورش رو نصب کردم ولی همچنان اون خطا هستش

    ژوئن 19, 2023 at 6:59 ب.ظ
  • متین Reply

    سلام ببخشید توان ورودی و خروجی مدار چقدر هستش مثلا میتونم برای خاموش و روشن کردن مایکروفر ازش استفاده کنم

    آگوست 1, 2023 at 3:04 ب.ظ
    • محمد دمیرچی Reply

      با سلام
      این ماژول از خود توانی برای تامین برق ندارد.
      بسته به رله و قطعاتی که برای کنترل کردن سایر وسایل استفاده میکنید می توانید توان کنترل دستگاه را زیاد کنید.
      حال اینکه به چه صورت میخواهید به ماکروفر وصل کنید بسته شرایط شما امکان دارد نیازی به توان نداشته باشید یا نیاز باشد از رله یا ترانزیستور های توان بالا استفاده کنید.

      آگوست 2, 2023 at 10:50 ق.ظ
  • Mahdi Reply

    سلام
    من این پروژه رو انجام دادم اما یه مشکلی دارم، توی ifttt جدیداً فقط میشه دوتا applet ساخت که خب یکی برای خاموش کردن و یکی برای روشن کردن چراغ استفاده میشه و فقط یک پین رو میتونم کنترل کنم. نرم‌افزاری مشابه ifttt نداریم که بشه بیشتر از دو دستور نوشت؟؟ توی اینترنت زیاد گشتم نرم‌افزار هایی مثل zapier هستن ولی متاسفانه اکثراً به Google assistant وصل نمیشن ، شما پیشنهادی دارید؟

    آگوست 14, 2023 at 12:28 ق.ظ
    • محمد دمیرچی Reply

      با سلام
      یک نسخه نیز adafruit ساخته است و مثل انیکه هنوز فیلتر نشده است
      لینک io adafruit

      آگوست 14, 2023 at 1:16 ب.ظ
  • امین Reply

    با سلام.
    متاسفانه هر کاری میکنم به مودم متصل نمیشم
    اسم مودم و رمز زو هم به درستی وارد کردم

    آگوست 19, 2023 at 3:15 ب.ظ
  • امین Reply

    برای من سایت ifttt.com فیلتره یعنی اگه بدون فیلتر شکن وارد بشم میگه ip شما در بلاک لیست قرار گرفته

    آگوست 19, 2023 at 3:32 ب.ظ
  • مهدی Reply

    سلام و عرض ادب
    آیا برد دیگه ای هست که بتونه رمز و یوزر وای فای رو جداگونه و بدون برنامه نویسی وارد کرد؟ چون اینجوری باشه اگه بخوایم رمز رو عوض کنیم یا اسم رو عوض کنیم هر دفه باید برنامه نویسی بشه

    اکتبر 5, 2023 at 2:48 ق.ظ
    • محمد دمیرچی Reply

      با سلام
      این مورد به برنامه نویسی شما بر میگردد.
      شما می توانید user و pass را بر روی eeprom یا sdcard ریخته و در زمان اجرا از آنجا مقدار را بخواند و به wifi مورد نظر وصل بشود. برای سری ESP32 پیشنهاد میکنم از کتابخانه SPIFFS استفاده کنید که از حافظه داخلی میکرو استفاده میکند و بسیار ساده می باشد.
      برای تغییر این مقدار نیز می توانید از پنل web یا کد های دستور توی سریال مانیتور که خودتان ایجاد میکنید استفاده کنید یا به صورت مستقیم از طریق سیستم فایل های مورد نظر را آپلود کنید

      اکتبر 7, 2023 at 9:28 ق.ظ
  • Ali Reply

    سلام و عرض ادب
    تشکر بابت سایت خوبتون
    یه سوال داشتم آیا بجای گوگل میشه از سیری استفاده کرد؟
    و یه سوال دیگه بجای ماژول رله چهار خروجی میشه از این ماژول های تک رله ساده استفاده کرد؟

    اکتبر 31, 2023 at 1:15 ق.ظ
    • محمد دمیرچی Reply

      با سلام
      در مورد نوع رله ، بله می توانید از هر مدلی که دوست دارید استفاده کنید.
      در مورد استفاده از سیری باید بررسی کنید که سیری نیز API مربوط به ارتباط با ESP را دارد یا خیر.
      به عنوان مثال این کتابخانه نوشته است siri را ساپورت میکند، باید بررسی کنید

      اکتبر 31, 2023 at 8:41 ق.ظ

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.