آردوینو آموزش آردوینو اینترنت اشیا IOT اینترنت اشیاء عملی پروژه های آردوینو

آموزش کنترل LED از طریق IP با برد کنترل اینترنت اشیاء Wemos D1 Mini

Wemos-d1-mini-LED-IOT-Digispark
نوشته شده توسط اروند طباطبایی

در پروژه اینترنت اشیاء IOT اطلاعات بر بستر اینترنت جابجا میشوند. در فاز صنعتی امنیت اطلاعاتی بسیار اهمیت پیدا میکنند. همچنین اطلاعات یا دیتا به صورت مستقیم و کد گذاری شده، به سرور ارسال میشود و سپس از سرور بر روی دیوایس‌های مختلف ارسال میشود. برای درک بهتر این شیوه عملکرد، اولین پروژه عملی اینترنت اشیاء IOT بر پایه ESP8266 را در این پست شروع می‌کنم. در این سری از آموزش‌ها فقط با برد Wemos Mini D1 بر پایه ESP8266 پروژه‌ها را مطرح و عملی میکنیم. در ادامه با مرجع تخصصی اینترنت اشیاء iOT دیجی اسپارک همراه باشید.

 

این آموزش اولین آموزش اینترنت اشیاء عملی با برد Wemos Mini D1 میباشد. این برد یکی از کوچکترین و مقرون به صرفه‌ترین برد MCU برای اینترنت اشیاء IOT به حساب می‌آید. امید است با حمایت شما کاربران آموزش‌های بیشتری با این برد را منتشر کنم.

 

ساختار برد کنترل Wemos Mini D1

برد D1 mini توسط کمپانی Wemos متولد شده است. البته پس از موفقیت و استقبال کاربران از برد D1 که هم ابعاد برد آردوینو Arduino Uno بود. برد کنترلی Wemos D1 Miniدارای یک پایه آنالوگ و یک رابط SPI و یک رابط I2CC می‌باشد. با توجه به سنسورها و ماژول‌های که با این برد ارتباط میگیرند، اتصالات را برقرار میکنیم. ابعاد این برد ۲۵ * ۳۵ میلی متر است. همچنین دارای انواع شیلد Shield از جمله دما، نمایشگر، باتری بک آپ، درایور موتور و… برای پروژه‌های مختلف اینترنت اشیاء IOT می‌باشد.

 

وسایل مورد نیاز:

برد کنترلی اینترنت اشیاء IOT Wemos Mini D1 بر پایه ESP8266

ال ای دی LED

 

اتصال به برد

ساده‌تر از این اتصال نداریم. پایه بلند ال ای دی قطب مثب و پایه کوتاه قطب منفی است. پایه کوتاه را به پین G روی برد Wemos D1 Mini و پایه بلند ال ای دی را به پین ۴ متصل کنید. همانند تصویر زیر

wemos led iot digispark Wemos led iot-digispark

قبل از اقدام به کامپایل کردن کدها توسط نرم افزار آردوینو Arduino IDE نیاز است که مخازن برد wemos Mini D1 را به IDE  اضافه کنید. چنانچه با مراحل این کار آشنا نیستید، از آموزش نصب و راه اندازی برد کنترل IOT اینترنت اشیاء Wemos D1 Mini استفاده کنید.

در این آموزش به سه کتابخانه ESP8266Wifi و ESP8266mDNS و WifiUdp نیاز است. که معمولا در مخازن پیشفرض آردوینو موجود است. اگر به هنگام کامپایل کردن، با ارور این کتابخانه‌ها مواجه شدید، از طریق ثبت نظر در انتهای همین پست، جهت بررسی اقدام کنید.

 

کدهای برنامه:

 

نکته بسیار مهم:

به هنگام کامپایل کردن کدهای آردوینو از منو بالا سمت راست سریال مانیتور Arduino IDE را باز کنید. در این حالت با تصویر زیر مواجه می‌شوید. ابتدا پیغام WiFi connected و سپس Server started را نمایش میدهد. بعد از این دو، پیغام Use this URL : http://192.168.0.110  را نمایش میدهد. که آی پی برد کنترل اینترنت اشیاء Wemos D1 mini میباشد. در عملیاتی که من انجام دادم، آی پی ۱۱۰ را به این ماژول اختصاص داد. که این برای برد شما متفاوت خواهد بود.

wemos led iot -arduino -digispark

 

پس از این کافیست آی پی برد wemos را که از سریال مانیتور دریافت کردید؛ در یک مرورگر وارد کنید. سپس یک محیط وب سرور ساده به شما نمایش داده میشود. در این صفحه میتوانید ال ای دی متصل شده را توسط آیکون On و Off روشن و خاموش کنید. همانند تصویر زیر

wemos led iot -arduino - digispark

چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد.

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

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

اروند طباطبایی

بنیانگذار دیجی اسپارک: اولین مرجع تخصصی امبدد سیستم به زبان فارسی / کارشناس سئو و تولید محتوا

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

تبادل نظر و رفع عیب با ثبت دیدگاه

۱۱۸ دیدگاه

  • سلام
    خیلى جالب بود، فقط من دارم الان این کارو میکنم ولى وقتى سریال مانیتور را باز میکنم، فقط یه سرى نقطه پشت سر هم میاره، میشه راهنمایى کنید؟

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

    • با سلام
      برای این منظور باید نوع برد را به برد مورد نظر تغییر دهید و در قسمت int ledPin = D4 پایه مورد نظر که ال ای دی را به آن وصل کرده‌اید تعریف کنید. به صورت تئوریک با این تنظیمات باید بتوانید ارتباط برقرار کنید. ولی اگر به مشکل خوردید از همین طریق تا حل مشکل ادامه دهید.

  • سلام
    برنامه اندرویدی اماده نداره؟
    که نخواد از طریق مرورگر خاموش روشن کنیش!
    اگه یک برنامه واسش پیداشه عالیه
    البته با blynk میشه ولی ی سری نقطه ضعف داره

  • سلام استاد طباطبایی
    ممنون از آموزشتون.آفرین
    در رابطه با وب پیج کنترلیش آیا میشه از صفحه گرافیکی با حجم بیشتری استفاده کرد؟
    تو این پروژه وب سرور نیاز هست؟اگر آره این نقشو کی بازی میکنه؟
    واینکه من از یک d1دیگری استفاده کردم,در کد نویسی مشکلی پیش نمیاد؟ابعاد و امکاناتش بیشتره مثلا پورت یو اس بی ,پاور,…ممنون میشم تا پایان این پروژه همراهیم کنید.اگر میشه یه کانال ارتباط مستقیم بهم بدید تاباهاتون در ارتباط باشم
    ممنون,پیروز و موفق باشید
    یاعلی

    • با سلام
      ضمن تشکر از توجه شما، در مورد وب پیج میتوان از نوع گرافیکی استفاده کرد. در این پروژه از وب سرور لوکال استفاده شده است. دقت بفرمایید که این مجموعه آموزش اینترنت اشیاء بر پایه برد Wemos تازه شروع شده و ادامه خواهد داشت. در ادامه آموزش‌های حرفه‌ای تر و مرتبط با درخواست شما کاربران منتشر خواهند شد.
      در مورد برد دیگر D1 باید هنگام کامپایل کردن نوع برد را با مدل انتخابی خودتان تطبیق دهید. همچنین اینکه پین‌های تعریف شده در کدها که یک پین آنالوک است. باید با پین مربوطه در برد شما تغییر کند. راه ارتباطی هم از همین طریق میتوانید اقدام کنید. که اگر کاربران دیگری به مشکل شما برخوردند، بتوانند از این مطالب استفاده کنند. همچنین برای آموزش بیشتر میتوانید به کانال دانشجو کیت در فرانش و یا در دوره‌های اینترنت اشیاء دانشجو کیت شرکت کنید.

  • مهندس طباطبایی سلام
    در رابطه به یک وب پیچ گرافیکی راهنماییم کنید که چه کنم
    به جای تکس میخام چند المان گرافیکی استفاده کنم.برای استپ موتور هم همچنین
    چون باید به برنامه اضافش کنم
    تغییرات کدش رو نمیدونم
    ممنون از راهنماییتون
    یاعلی

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

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

  • سلام
    چند سوال
    ایا میشه این برد رو با برد اردوینو راه اندازی کرد؟
    و اینکه اگر بخوایم یه لامپ ۲۲۰ ولت رو اینجور خاموش روشن کنیم باید چیکار کنیم؟

    • با سلام
      منظورتون از سوال اول اگر راه اندازی این پروژه با یک برد آردوینو میباشد، نیاز به کمی تغییرات در مدار است. و پیشنهاد میکنم اگر میخواهید پروژه اینترنت اشیاء را به صورت عملی کار کنید، برد Wemos D1 mini بهترین انتخاب است. در مورد سوال دوم هم کافیست‌ پین‌هایی که به ال ای دی متصل شده اند را به یک ماژول رله متصل کنید.

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

    • با سلام
      منظور شما از اتصال سیمی ماژول وای فای با برد اصلی چیست؟ لطفا دقیق تر توضیح دهید. این آموزش اتصال سیمی ندارد.

      • ببخشید کمی مبتدیم😅
        اون یکی سر USB Mini که به ماژول وای فای (در ویدیو هست) به چی وصله؟
        برای فعال سازی این قطعه به رزپری پای یا آرودینو نیاز هست یا اینکه خیر ( قطعه با کمک یه Power Supply به روتر متصل میشه.) ؟
        من میتونم این قطعه رو با رزپری پای و یا ماژول دیگه ای مثلا Relay ترکیب کنم ؟

        خیلی ممنون میشم پاسخ بدین😊

        • این پروژه را کافیست یکبار کامپایل کنید و مشخصات اتصال به وای فای را به آن بدهید، پس از آن کافیست به یک منبع تغذیه از جمله پاوربانک و یا باتری اتصال دهید. کابلی که در تصویر مشاهده میکنید، صرفا برای تغذیه برد به کار رفته است.
          برای فعال سازی فقط به یک سیستم عامل که توانایی راه اندازی IDE آردوینو را داشته باشد، نیاز است. که این کار را میتوانید از طریق برد رزبری پای و یا سیستم دسکتاپ و لپ تاپ و … انجام دهید.
          همچنین دقت داشته باشید که این برد برای تولید اطلاعات محیطی باید در مکان های مناسب نصب شود، برای آموزش تعریف پروژه اینترنت اشیا به کانال آموزش اینترنت اشیاء دانشجو کیت در فرانش مراجعه کنید.
          در مورد رله هم میتوانید ترکیب کنید، این یک برد mcu است و توانایی ترکیب با دیگر بردها و سنسورها را دارد.

  • سلام مهندس طباطبایی
    پروژه من یک پروژه دانشجویی هستش با وقت کم
    اگر امکانش هست راهنماییم کنید.
    نمیشه باهاتون تماس گرفت؟

  • Build options changed, rebuilding all
    Sketch uses 236412 bytes (22%) of program storage space. Maximum is 1044464 bytes.
    Global variables use 32552 bytes (39%) of dynamic memory, leaving 49368 bytes for local variables. Maximum is 81920 bytes.
    Uploading 240560 bytes from to flash at 0x00000000
    error: failed sending 1070 bytes
    .error: failed sending 1044 bytes
    .error: failed sending 1040 bytes
    .error: failed sending 1040 bytes
    .error: failed sending 1071 bytes
    .error: failed sending 1070 bytes
    .error: failed sending 1067 bytes
    .error: failed sending 1086 bytes
    .error: failed sending 1073 bytes
    .error: failed sending 1058 bytes
    .error: failed sending 1061 bytes
    .error: failed sending 1057 bytes
    .error: failed sending 1045 bytes
    .error: failed sending 1054 bytes
    .error: failed sending 1065 bytes
    .error: failed sending 1082 bytes
    .error: failed sending 1057 bytes
    .error: failed sending 1062 bytes
    .error: failed sending 1063 bytes
    .error: failed sending 1055 bytes
    .error: failed sending 1055 bytes
    .error: failed sending 1063 bytes
    .error: failed sending 1073 bytes
    .error: failed sending 1071 bytes
    .error: failed sending 1084 bytes
    .error: failed sending 1071 bytes
    .error: failed sending 1070 bytes
    .error: failed sending 1073 bytes
    .error: failed sending 1062 bytes
    .error: failed sending 1064 bytes
    .error: failed sending 1064 bytes
    .error: failed sending 1041 bytes
    .error: failed sending 1056 bytes
    .error: failed sending 1114 bytes
    .error: failed sending 1098 bytes
    .error: failed sending 1112 bytes
    .error: failed sending 1080 bytes
    .error: failed sending 1070 bytes
    .error: failed sending 1071 bytes
    .error: failed sending 1083 bytes
    .error: failed sending 1081 bytes
    .error: failed sending 1070 bytes
    .error: failed sending 1057 bytes
    .error: failed sending 1070 bytes
    warning: espcomm_send_command: didn’t receive command response
    warning: espcomm_send_command(FLASH_DOWNLOAD_DATA) failed
    warning: espcomm_send_command: wrong direction/command: 0x01 0x03, expected 0x01 0x04
    error: espcomm_upload_mem failed
    error: espcomm_upload_mem failed
    سلام بنده خواستم برنامه را بریزم که با ارور بالا برخوردم چکار کنم؟؟؟؟
    با تشکر

    • با سلام
      ضمن تشکر از توجه شما، این ارور مربوط به عدم شناخت برد توسط سیستم است و یا کابل اتصالی مشکل دارد.

  • سلام مهندس در رابطه با نوشتن یک اپ برای همین کنترل باید چکار کنم؟سورس های کنترلی داخل همین کدهای شماست,یا اینکه باید در اپ نویسی هم اورده شن؟
    باچندتا ماژول بیشتر
    ممنون و تشکر

    • با سلام
      ضمن تشکر از توجه شما، برای اپ نویسی چندین روش هست. البته هم کدهای کنترلی باید در این برنامه قرار گیرند و هم در اپ به صورت API در مورد آموزش اپ نویسی فعلا برنامه ای نداریم.

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

    • با سلام
      پاسخ سوال شما دقیقا همین آموزش است. این آموزش مدیریت یک برد را در وب سرویس لوکال آموزش میدهد. طبق آموزش پیش بروید و هرجایی به مشکل برخوردید، از همین طریق ثبت کنید.

  • سلام مهندس
    من کد رو لود کردم اما به اکسس پوینت وصل نشد حروف رمز و اسم رو هم رعابت کردم,راهنمایی کنید
    برای اضافه کردن چند المان دیگه چه کنم؟
    تشکر

    • با سلام
      اسم روتور را دقت کنید که اگر حروف کوچک و بزرگ دارد، عینا از همانند حروف استفاده کنید.

  • سلام و عرض ادب. از آموزشگاه و فروشگاه عالیتون متشکرم. یک سوال داشتم که چطور می توان این برد و شیلد رله اش را با یک کلید تک پل توامان استفاده کرد؟ یعنی لامپ رو بشود هم با رله و هم با کلید کنترل کرد. دقیقا مثل کلیدهای تبدیلی که اکثرا در راه پله ها استفاده می شوند.
    متشکرم

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

    • با سلام
      برای این موضوع همان خط کد را باید مجددا در کدها اضافه کنید و پین جدید را در ابتدای کد آدرس دهی کنید.

    • بله این موضوع را میدانم، مگر به غیر از این منبع، منبعی دیگری هم هست؟!!
      منظورم این بود که همان کدهایی را که کامپایل میکنید و ارور میدهد، دقیقا کپی پیست کنید اینجا، تا بررسی کنم کدام خط مشکل دارد.

    • با سلام
      لطفا دقیق‌تر بیان کنید. کامنت‌ها زیاد است، از اینرو لطفا موضوع را کامل و دقیق بیان کنید.

  • سلام
    ممنون از سایت خوبتون
    من سریال مانیتور میزنم چند تا نوشته با فونت در هم میاد.و بعدش مینویسه کانتکت تو ……..و نقطه چین…
    خودم باید اسم و پسورد بنویسم توی برنامه؟
    میشه بفرمایید پسورد کجا باید وارد کنم؟با موبایل باید وصل به اسم بشم؟
    میبخشید من مبتدی هستم
    سپاس

    • با سلام
      ضمن تشکر از توجه شما، لطفا دقت داشته باشید که در کدها مشخص شده است، کجا باید یوزر و پسورد روتر واى فاى را وارد کنید.
      const char* ssid = “اسم وای فای”;
      const char* password = “پسورد وای فای”;

      • بسیار سپاسگزارم.ممنون از جواب بسیار عالی و سریع.بله.درست شد
        یک سوال دیگه داشتم.من یک ماژول رله ۵ ولت مدل jqc 3ff s z دارم.حالا چطور باید اینو به مینی وصل کنم.vcc به ۵ ولت و g به g و IN به D4 وصل کردم ولی همواره رله چراغش روشنه و تغییری نمیکنه !
        چی کار کنم که بشه رله رو با D4 کنترل کنم
        باز هم ممنون

        • با سلام مجدد
          خواهش میکنم، در این مورد اتصالات را درست انجام داده‌اید. فقط اینکه در این کدها پایه D4 استفاده نشده است. بلکه پایه D2 استفاده شده است. لطفا پایه را به D2 اتصال دهید و مجددا بررسی کنید. همانند ال ای دی باید رله روشن و خاموش شود.

          • تشکر.من پایه in رله رو به دی ۲ وصل کردم.ولی اتفاقی نیفتاد
            به دی ۴ هم که وصل میکنم رله همواره چراغ سبزش روشن است.کد d4 هم به d2 تغییر دادم.ولی بازم روی دی۲ رله روشن میشود و خاموش نمیشود(مثل دی ۴)

            • علت اینکه وقتی متصل میکنید، ال ای دی رله روشن میشود. شیوه تعریف کردن شرط کدها میباشد. پس از اتصال باید از طریق آی پی برد به صورت لوکال با یک مرورگر که به همان روتر متصل است، با آی پی مربوطه وارد شوید و وضعیت پایه را تغییر دهید. همانند تصویر انتهایی در آموزش

    • مشکل شما از جای دیگری است. لطفا مراحل آموزش را به دقت از ابتدا طی کنید و سعی کنید، مشکلات ساده را به تنهایی حل کنید. سپس اقدام به ثبت کامنت کنید.

  • سلام من کدها رو همان طور که گفته بودید کمپایل کردم اسم و پسورد هم وارد کردم اما وقتی سریال مانیتور رو باز میکنم هیچی نمیاد صفحه سفید میاد فقط

  • سلام
    کدهای توی سایتتون رونوشتم بدون تغییر,جاییش که لازم به تغییر نداره؟واگه داره بفرمایید,تا انجام بدم
    توی کانکت, در سریال مانیتور فقط نقطه میزنه,چندبارم که ریست میکنم فرفی نمیکنه ۰

    • با سلام
      ضمن تشکر از توجه شما، لطفا دو مورد را بررسی کنید: اگر در اسم وای فای از حروف بزرگ استفاده شده است، دقیقا عین همان را در کدها وارد کنید. مورد بعدی اینکه در سریال مانیتور سمت راست پایین Buad rate را حتما روی ۱۱۵۲۰۰ تنظیم کنید. این کارها را انجام دهید و چنانچه مشکل باقی بود از همین طریق اعلام کنید.

  • باسلام وتشکر از آموزشتون
    برای اضافه کردن چند ماژول دیگه کدام قسمت کدهارو اضافه و تکرار کنم؟نام پایه رو در کدام قسمت تغییر بدم؟

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

  • مهندس سلام ممنون وتشکر
    تعداد ماژول هامو افزایش دادم
    اماهر کلید برای همه رله هام عمل میکنه
    کجا باید روباید تغییر بدم برای هر کلید,واینکه قسمتی که نمایانگر روشن یاخاموش بودن هستش برای هر کلید جداباشه؟

  • سوال دیگه اینکه در رابطه با اضافه کردن کلید آخر برای استپ موتور کد استپ رو کجا باید اضافه کنم
    توی بحث کد نویسی ضعف دارم,ممنون میشن کمکم کنید
    فقط میخام ساعتگرد و خلافش باشه همین,
    یاعلی

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

  • مهندس سلام ممنون وتشکر
    تعداد ماژول هامو افزایش دادم
    اماهر کلید برای همه رله هام عمل میکنه
    کجا باید کدروتغییر بدم برای هر کلید,واینکه قسمتی که نمایانگر روشن یاخاموش بودن هستش برای هر کلید جداباید تغییرداده بشه که نمایانگر وضعیت همون کلید باشه؟

  • #include
    #include
    #include

    const char* ssid = “اسم وای فای”;
    const char* password = “پسورد وای فای”;

    int relaypin1 = D13; //connect led pin to d4 and ground
    int relaypin2 = D14;
    int relaypin3= D15;
    int relaypin4= D16;

    WiFiServer server(80);

    void setup() {
    Serial.begin(115200);
    delay(10);

    pinMode(relaypin1, OUTPUT);
    pinMode(relaypin2,, OUTPUT);
    pinMode(relaypin3, OUTPUT);
    pinMode(relaypin4,OUTPUT);

    digitalWrite(relaypin1, LOW);
    digitalWrite(relaypin2, LOW);
    digitalWrite(relaypin3,LOW);
    digitalWrite(relaypin4,LOW);
    // Connect to WiFi network
    Serial.println();
    Serial.println();
    Serial.print(“Connecting to “);
    Serial.println(ssid);

    WiFi.mode(WIFI_STA);
    WiFi.begin(ssid, password);

    while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(“.”);
    }
    Serial.println(“”);
    Serial.println(“WiFi connected”);

    // Start the server
    server.begin();
    Serial.println(“Server started”);

    // Print the IP address
    Serial.print(“Use this URL : “);
    Serial.print(“http://”);
    Serial.print(WiFi.localIP());
    Serial.println(“/”);
    }

    void loop() {

    // Check if a client has connected
    WiFiClient client = server.available();
    if (!client) {
    return;
    }

    // Wait until the client sends some data
    Serial.println(“new client”);
    while(!client.available()){
    delay(1);
    }

    // Read the first line of the request
    String request = client.readStringUntil(‘\r’);
    Serial.println(request);
    client.flush();

    // Match the request

    int value = LOW;
    if (request.indexOf(“/LED=ON”) != -1) {
    digitalWrite(relaypin1, HIGH);
    digitalWrite(relaypin2, HIGH);
    digitalWrite(relaypin3, HIGH);
    digitalWrite(relaypin4, HIGH);

    value = HIGH;
    }
    if (request.indexOf(“/LED=OFF”) != -1){
    digitalWrite(relaypin1, LOW);
    digitalWrite(relaypin2, LOW);
    digitalWrite(relaypin3, LOW);
    digitalWrite(relaypin4, LOW);

    value = LOW;
    }

    // Return the response
    client.println(“HTTP/1.1 200 OK”);
    client.println(“Content-Type: text/html”);
    client.println(“”); // do not forget this one
    client.println(“”);
    client.println(“”);

    client.print(“relaypin 1 is now: “);
    client.print(“relaypin 2 is now: “);
    client.print(“relaypin 3 is now: “);
    client.print(“relaypin 4 is now: “);

    if(value == HIGH) {
    client.print(“On”);
    } else {
    client.print(“Off”);
    }
    client.println(“”);
    client.println(“Click here turn the relay on pin 13 ON”);
    client.println(“Click here turn the relay on pin 13 OFF”);
    client.println(“”);

    client.println(“”);
    client.println(“Click here turn the relay on pin 14 ON”);
    client.println(“Click here turn the relay on pin 14 OFF”);
    client.println(“”);

    client.println(“”);
    client.println(“Click here turn the relay on pin 15 ON”);
    client.println(“Click here turn the relay on pin 15 OFF”);
    client.println(“”);

    client.println(“”);
    client.println(“Click here turn the relay on pin 16 ON”);
    client.println(“Click here turn the relay on pin 16 OFF”);
    client.println(“”);

    delay(1);
    Serial.println(“Client disconnected”);
    Serial.println(“”);

    }

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

    • با سلام
      ضمن تشکر از توجه شما، کدها را دریافت کردم، تا زمانى که تست و بررسى کنم، منتظر باشید. از همین طریق اعلام خواهم کرد.البته یک نکته اى، کدها به صورت ثبت کامنت درست ارسال نمیشوند، لطفا به صورت یک فایل متنى آپلود کنید و لینک ارسال کنید.

  • سلام مهندس و ممنون از توجهتون
    وقتم کمه بسیار بسیار.کدشما تک ال ای دی هستش من میخام ۴تا ال ای دی بشه
    همین
    اگر یک کانال ارتباطی بدید ممنون میشم.خواهشا.یا اینکه زحمت کد را برام بکشد و بنویسید هزینشو هم تقبل میکنم.یه استپ موتور هم میخام اضافه کنم که کنترل کردنش مثل ال ای دی ها باشه
    بازم خواهش میکنم
    تشکر

  • سلام مهندس
    خودتون میتونید کمکم کنیدآیا؟
    مشکل من هنوز حل نشده تا یه جاهایی پیش رفتم اما کامل نیست و گیروگور داره
    مخصوصا برای راهاندازی استپ,استپو روشن میکنه اما بصورت یک وقفه ۱ثانیه ای.بازدن هرکلید on
    خواهشا پاس ندید اینورو اونور
    خواهشا

  • یه مشکل که هستش دیر کانکت شدنشه
    میشه کاریش کرد که سریع تر کانکت بشه؟
    نیازی به پاک کردن حافظه آردینو هستش یااینکه باهربار لود کردن فلش میکنه؟
    اکر نیاز هست راهشو میگید؟
    باتشکر از محبتاتون

    • با سلام
      ضمن تشکر از توجه شما، دیر کانکت شدن در شرایط سرعت اینترنت و سرعت روتر داخلی شماست. به هرحال نمیتوان از این پروژه انتظار سرعت در حد stand alone داشته باشید. برای چه منظوری میخواهید که حافظه آردوینو را پاک کنید؟

  • سلام
    برنامه رو بخاطر تغییرات زیادش زیاد لود کردم تعداد دفعات زیادی اینکارو انجام دادم
    بارهای اول سرعت بیشتری در کانکت داشت امل حالا نه
    خواستم با پاک سازی رام امتحان کنم شایدبهتر بشه؟
    نظرتون؟

  • سلام
    مهندس کامپایلر این ارور رو بهم میده
    Archiving built core (caching) in: C:\Users\clint\AppData\Local\Temp\arduino_cache_767998\core\core_esp8266_esp8266_d1_mini_CpuFrequency_80,UploadSpeed_9600,FlashSize_4M3M_b7e37844673bb4e9f36e908508755527.a
    Sketch uses 230703 bytes (22%) of program storage space. Maximum is 1044464 bytes.
    Global variables use 32604 bytes (39%) of dynamic memory, leaving 49316 bytes for local variables. Maximum is 81920 bytes.

    • با سلام
      ضمن تشکر از توجه شما، این ارور مربوط به کابل، پورت USB و پارامترهایی شبیه به این است. لطفا اتصالات را جدا کنید و فقط برد را به USB متصل کنید. مشکل حل خواهد شد.

  • سلام ممنون که خیلی خوب آموزش می دید ببشید اگه زحمتی نداره براتون آموزش روشن و خاموش کردن یک LED را از راه SMS بدید.
    ممنون

    • با سلام
      ضمن تشکر از توجه شما، در زمینه GSM چند آموزش در سایت وجود دارد. همچنین مجموعه آموزش Sim800L با همین منظور در دست تولید و انتشار است.

  • باسلام
    من موقع کامپایل کردن با این ارور موجه میشوم مشکل چیست؟
    ممنون میشم کمک کنید

    Arduino: 1.8.1 (Windows 10), Board: “WeMos D1 R2 & mini, 80 MHz, 921600, 4M (3M SPIFFS)”

    Sketch uses 230671 bytes (22%) of program storage space. Maximum is 1044464 bytes.
    Global variables use 32572 bytes (39%) of dynamic memory, leaving 49348 bytes for local variables. Maximum is 81920 bytes.
    warning: espcomm_sync failed
    error: espcomm_open failed
    error: espcomm_upload_mem failed
    error: espcomm_upload_mem failed

    Invalid library found in C:\Users\Mohammad\Documents\Arduino\libraries\LED: C:\Users\Mohammad\Documents\Arduino\libraries\LED
    Invalid library found in C:\Users\Mohammad\Documents\Arduino\libraries\sketch_sep18a: C:\Users\Mohammad\Documents\Arduino\libraries\sketch_sep18a
    Invalid library found in C:\Users\Mohammad\Documents\Arduino\libraries\wifi_led: C:\Users\Mohammad\Documents\Arduino\libraries\wifi_led
    Invalid library found in C:\Users\Mohammad\Documents\Arduino\libraries\LED: C:\Users\Mohammad\Documents\Arduino\libraries\LED
    Invalid library found in C:\Users\Mohammad\Documents\Arduino\libraries\sketch_sep18a: C:\Users\Mohammad\Documents\Arduino\libraries\sketch_sep18a
    Invalid library found in C:\Users\Mohammad\Documents\Arduino\libraries\wifi_led: C:\Users\Mohammad\Documents\Arduino\libraries\wifi_led
    Invalid library found in C:\Users\Mohammad\Documents\Arduino\libraries\LED: C:\Users\Mohammad\Documents\Arduino\libraries\LED
    Invalid library found in C:\Users\Mohammad\Documents\Arduino\libraries\sketch_sep18a: C:\Users\Mohammad\Documents\Arduino\libraries\sketch_sep18a
    Invalid library found in C:\Users\Mohammad\Documents\Arduino\libraries\wifi_led: C:\Users\Mohammad\Documents\Arduino\libraries\wifi_led
    Invalid library found in C:\Users\Mohammad\Documents\Arduino\libraries\LED: C:\Users\Mohammad\Documents\Arduino\libraries\LED
    Invalid library found in C:\Users\Mohammad\Documents\Arduino\libraries\sketch_sep18a: C:\Users\Mohammad\Documents\Arduino\libraries\sketch_sep18a
    Invalid library found in C:\Users\Mohammad\Documents\Arduino\libraries\wifi_led: C:\Users\Mohammad\Documents\Arduino\libraries\wifi_led
    Invalid library found in C:\Users\Mohammad\Documents\Arduino\libraries\LED: C:\Users\Mohammad\Documents\Arduino\libraries\LED
    Invalid library found in C:\Users\Mohammad\Documents\Arduino\libraries\sketch_sep18a: C:\Users\Mohammad\Documents\Arduino\libraries\sketch_sep18a
    Invalid library found in C:\Users\Mohammad\Documents\Arduino\libraries\wifi_led: C:\Users\Mohammad\Documents\Arduino\libraries\wifi_led
    Invalid library found in C:\Users\Mohammad\Documents\Arduino\libraries\LED: C:\Users\Mohammad\Documents\Arduino\libraries\LED
    Invalid library found in C:\Users\Mohammad\Documents\Arduino\libraries\sketch_sep18a: C:\Users\Mohammad\Documents\Arduino\libraries\sketch_sep18a
    Invalid library found in C:\Users\Mohammad\Documents\Arduino\libraries\wifi_led: C:\Users\Mohammad\Documents\Arduino\libraries\wifi_led

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

    • با سلام
      ضمن تشکر از توجه شما، پایه‌های اتصالی به برد را جدا کنید، اگر مشکل حل نشد از یک کابل USB دیگر استفاده کنید.

  • Arduino: 1.8.1 (Windows 10), Board: “WeMos D1 R2 & mini, 80 MHz, 921600, 4M (3M SPIFFS)”

    C:\Users\Mohammad\AppData\Local\Arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2/bin/xtensa-lx106-elf-ar: unable to rename ‘C:\Users\Mohammad\AppData\Local\Temp\arduino_build_68504/arduino.ar’; reason: Permission denied

    exit status 1
    Error compiling for board WeMos D1 R2 & mini.

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

    ببخشید این ارور برای چیست؟

    • با سلام
      ضمن تشکر از توجه شما، اتصال برد شما به هنگام آپلود کدها دچار مشکل شده است. کارهای عمومی برای رفع:
      تعویض پورت USB
      استفاده از کابل دیگر
      ریست کردن سیستم
      آپدیت نرم افزار
      اگر مشکل رفع نشد، مجددا از همین طریق اقدام کنید.

  • سلام من Wemos Mini D1 را دارم فقط اون حاشیه ی رنگ آبی اش را که سیم به داخلش می رود و پایه های دیجیتالی دارد را ندارد. آیا می شه با این هم می شه درست کرد؟
    ممنون

    • با سلام
      ضمن تشکر از توجه شما، احتمالا برد شما ESP8266 است. البته برد wemos D1 Mini بر پایه همین تراشه ساخته شده است. این آموزش را با هر بردی میتوانید اجرا کنید، کافیست تغییرات را بر اساس همان برد اعمال کنید.

        • سلام مجدد
          در این زمینه، مدل‌های مختلفی از برد ESP8266 وجود دارد. از این رو یسته به پروتکل ارتباطی باید با یک برد میکرو یا مبدل USB به سریال و … این کار را انجام دهید.

  • سلام خیلی ممنون از اموزش هاتون
    میخواستم بدونم ای ip که وارد میکنید به صورت محلی هستش . اگه بخوایم به صورت ip گلوبال از این پروزه استفاده کنیم باید چکار کنیم !!
    منظورم اینه چطوری از طریق اینترنت به ماژول متصل بشیم باید چکاری انجام ببدیم!!
    ممنونم!

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

  • سلام و احترام
    مهندس جان ارور زیر از چیه؟
    Arduino: 1.6.7 (Windows 10), Board: “Generic ESP8266 Module, 80 MHz, 40MHz, DIO, 9600, 512K (64K SPIFFS), ck, Disabled, None”

    sketch_nov09a:7: error: ‘D4’ was not declared in this scope

    int ledPin = D4; //connect led pin to d4 and ground

    ^

    exit status 1
    ‘D4’ was not declared in this scope

    This report would have more information with
    “Show verbose output during compilation”
    enabled in File > Preferences.

        • سلام مجدد
          در حال حاضر امکان دانلود کدها وجود ندارد. با قرار دادن موس روس کدها نواری در بالای کدها ظاهر میشود، از سمت راست گزینه دوم مربوط به کپی کردن است، از طریق آن اقدام کنید. سپس با کلیدهای Ctrl+C کدها را کپی کنید.

  • Arduino: 1.6.7 (Windows 7), Board: “Arduino/Genuino Uno”

    C:\Users\ABBAS\Desktop\iot\_3ketabkhane_dec06a\_3ketabkhane_dec06a.ino:2:25: fatal error: ESP8266WiFi.h: No such file or directory

    #include

    ^

    compilation terminated.

    exit status 1
    Error compiling.

    This report would have more information with
    “Show verbose output during compilation”
    enabled in File > Preferences.
    سلام
    ممنون از شما
    ارور بالا رو چطور برطرف کنم؟

  • با سلام
    ممنون از سایت خوبتون. مشکلی که من دارم این است که کیبورد در بات تلگرامم ندارم تا با انتخاب اون LED را روشن و خاموش کنم. میشه راهنمایی کنید؟
    سوال دوم اینکه: اگر برروی یک هاست دیگه ، بات تلگرام را راه اندازی کنم چطور میتونم به این برد متصل کنم؟

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

      • سلام
        منظورم این است که برروی یک هاست بصورت HTTPS یک ربات تلگرام را با روش webhook راه اندازی کردم ولی نمیتونم از طریق آن به برد فرمان بدهم. امکان داره راهنمایی بفرمائید در این حالت باید چکار کنم؟

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