آردوینو اینترنت اشیا IOT برد ویموس Wemos پروژه های آردوینو

کنترل اشیا از طریق اینترنت برد Wemos با تنظیمات DNS و IP استاتیک

Wemos-DDNS-Protocol--Digispark
نوشته شده توسط آرش کدخدایی

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

 


دید کلی کنترل اشیاء از طریق اینترنت


ابتدا نیازمندیم که برنامه نویسی را روی یکی از بردهای Arduino که دارای اتصال به اینترنت است؛ انجام دهیم. انتخاب من برای این موضوع برد Wemos D1 Mini است. این برد کوچک، کم مصرف و بسیار مقرون به صرفه است. از اینرو برای کنترل اشیاء مختلف انتخاب مناسبی خواهد بود. سپس باید یکسری تنظیمات روی مودم یا روتری که برد Wemos D1 Mini به آن متصل است انجام دهیم. تا بتوانیم از طریق اینترنت به شیئ مورد نظر دسترسی داشته باشیم. برای این موضوع در آخر دو راه داریم: ۱-از ارائه دهنده اینترنت adsl درخواست آی پی استاتیک کنیم. در این حالت باید هزینه ماهیانه پرداخت شود. ۲-از سایت های ارائه دهنده داینامیک دی ان اس استفاده کنیم. از سایت‌های ارایه دهنده DNS رایگان می‌توانید استفاده کنید.

 


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


در این آموزش من از مودم روتر TP-LINK TD-W8960N استفاده کرده‌ام ولی اکثر مودم روترها دارای این قابلیت هستند. در ادامه توضیح می‌دهم که چطور باید روی مودم روتر تغییرات را اعمال کنید. همچنین اگر به هنگام ایجاد تغییرات در مودم با مشکل مواجه شدید، یا اینکه مراحل را نمی‌دانستید از طریق ثبت نظر در ادامه همین پست نسبت به رفع مشکل اقدام کنید. من و دیگر همکارانم در تلاش خواهیم بود که پاسخ شما را در سریع‌ترین زمان ارسال کنیم.

 


راه اندازی برد Wemos برای مدیریت اشیاء


ابتدا رله را به پین D1 برد متصل می‌کنیم. اگر از شیلد رله مخصوص برد Wemos D1 Mini استفاده می‌کنید؛ پایه ارتباطی شیلد رله، D1 می‌باشد. به همین سادگی، پایه تغذیه را هم متصل می‌کنیم. پین VCC را به پایه ۵ ولت برد ویموس و پین GND را به پایه G برد ویموس متصل می‌کنیم. سپس برنامه زیر را با کامپایلر Arduino روی برد آپلود می‌کنیم. مشخصات مودم خود را جایگزین کنید و یک آی پی ثابت برای آن مشخص کنید.

 


وسایل مورد نیاز کنترل اشیاء از طریق اینترنت


برد ویموس Wemos mini D1 با تراشه ESP8266

ماژول رله Relay Module

مودم روتر دارای قابلیت Port Forwarding و Dynamic DNS

 


کدهای برنامه مدیریت اشیاء از طریق اینترنت


 

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

 

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

 

 

پس از آپلود کدها روی برد ویموس، باید یکبار تست بگیرید. برای تست اتصال به برد میتوانید از آدرس‌های زیر استفاده کنید.

http://ip-address/url?switch=1 برای وصل کردن رله

http://ip-address/url?switch=0 برای قطع کردن رله

 

 


تنظیمات مودم برای اتصال به برد Wemos


وارد پنل مودم خود شوید. پنل اکثر مودم ها روی آی پی ۱۹۲٫۱۶۸٫۱٫۱ و یا ۱۹۲٫۱۶۸٫۰٫۱ قرار دارد. به قسمت Virtual Servers) Port Forwarding) بروید. در مودم استفاده شده به مسیر زیر بروید: Advance Setup – NAT – Virtual Servers

کنترل اشیا از طریق اینترنت برد Wemos با تنظیمات DNS و IP استاتیک- دیجی اسپارک

سپس روی add کلیک کنید. سرویس را روی HTTP یا وب سرور Web Server تنظیم کنید. آی پی برد خود را وارد کنید. سپس برای External Port یک عدد به عنوان پورت در نظر بگیرید. مقدار Internal Port باید روی ۸۰ تنظیم شود و فرم را ذخیره کنید. تا به اینجا ما دسترسی برد را به اینترنت باز کردیم. حال شما می‌توانید با استفاده از آی پی اینترنتی و پورت انتخابی از طریق http://ip-address:port به برد متصل شوید. نکته حائز اهمیت این است که این آی پی توسط ارائه دهنده اینترنت شما چند وقت یکبار عوض می‌شود. برای اینکه آی پی ثابتی داشته باشید باید آی پی استاتیک تهیه کنید. در غیر این صورت باید از داینامیک دی ان اس یا همان DDNS استفاده کنید. برای این منظور می‌توانید از وبسایت noip.com و یا هر وبسایت ارائه دهنده داینامیک دی ان اس، یک آدرس تهیه کنید. سپس از قسمت Dynamic DNS مودم روتر خود تنظیمات مربوطه را انجام دهید.

 


تنظیمات DDNS برای کنترل اشیا


بعد از تهیه داینامیک دی ان اس میتوانید برای همیشه از طریق آدرس های زیر به برد دسترسی داشته باشید.

http://hostname.domain:port/url?switch=1

http://hostname.domain:port/url?switch=0

کنترل اشیا از طریق اینترنت برد Wemos با تنظیمات DNS و IP استاتیک- دانشجو کیت

در آدرس‌های بالا به جای hostname.domain آدرس انتخابی شما و به جای port پورت انتخابی شما باید جایگزین شود. حال شما می‌توانید این پروژه را گسترش داده و از این آدرس‌ها در پروژه‌های مختلف استفاده کنید. به همین سادگی از طریق آی پی آدرس میتوانید از راه دور و در بستر اینترنت، یک عدد رله را برای کنترل اشیاء کنید.

نکته: اگر مودم شما no-ip را پوشش نمیدهد برای فعال بودن همیشگی DDNS باید روی یک کلاینت Dynamic Update Client را نصب کنید. همچنین این کلاینت باید همیشه روشن و به مودم متصل باشد. در این پست روی برد رزپبری پای Raspberry pi انجام می‌دهیم. ابتدا ترمینال رزبری پای را باز کرده و دستورات زیر را وارد می‌کنیم.

mkdir /home/pi/noip
cd /home/pi/noip
wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
tar vzxf noip-duc-linux.tar.gz
cd noip-2.1.9-1

ممکن است ورژن شما با نسخه استفاده شده در این آموزش متفاوت باشد. برای این منظور با استفاده از دستور ls می‌توانید نام این پوشه را چک کنید.

sudo make
sudo make install

حال باید مراحل نصب را طی کنید و یوزرنیم و پسورد اکانت خود در سایت no-ip را وارد کنید. در یکی از مراحل زمان آپدیت شدن را می‌پرسد که باید عددی بزرگتر از ۵ وارد کنید، دقت کنید که این عدد نشان دهنده دقیقه است. پس از طی مراحل نصب دستورات زیر را وارد کنید.

sudo /usr/local/bin/noip2

برای اطمینان از کارکرد صحیح، دستور زیر را وارد می‌کنیم.

sudo noip2 –S

 


نصب DDNS روی ویندوز برای کنترل اشیاء


چنانچه برد رزبری پای Raspberry Pi ندارید. یا اینکه تمایل دارید از یک سیستم ویندوزی برای اینکار استفاده کنید. پیشنهاد می‌کنم از لینک نصب DDNS روی ویندوز استفاده کنید. در این آموزش توضیحاتی راجع به این نخواهم داد.

 

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

 

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

 

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

آرش کدخدایی

یک تازه کار علاقه مند به تکنولوژی :)

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

۱۹۱ دیدگاه

  • ممنون بابت آموزش خوبتون.خیلی مفید و کاربردی بود.
    در ضمن فک نکنم تو این پروژه نیاز به رزبری پای یا کلاینت دیگه ای باشه.توی مودم های تی پی لینک به صورت دیفالت سایت noip قابل انتخاب شدنه.و کافیه مشخصات و یوزر پسوردتون که سایت بهتون داده توی مودم ست کنید تا هردوقت آی پی عوض شد مودم خودش به سایت no-ip اطلا بده.

  • با سلام
    آموزش جالبی بود ممنون، در مورد این برد میشه با ماژول اترنت همین کاراو کرد؟

  • سلام
    من میخام یه ماژول مخابراتی مثل سیم۸۰۰ رو وصل کنم به رزپری پای و از اینترنتش استفاده کنم ، یه تعداد برد nodemcu هم دارم که از طریق وای فای به رزپری وصل میشن و اطلاعات میفرستن بهش و در نهایت رزپری اطلاعات رو پردازش می‌کنه و می‌فرسته.
    حالا من تو قسمت سیم۸۰۰ و اشتراک گذاری اینترنتش به رزپری و ایجاد ای پی استاتیک موندم و کمک میخام

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

  • سلام
    ممنون بابت آموزشتون، من کتابخانه esp webserver را نصب میکنم ولی مثل اینکه مشکل داره، اگه ممکنه مثل بقیه آموزش ها توی فروشگاه اضافه کنید.
    خیلی ممنونم

    • با سلام و با تشکر از توجه شما
      این کتابخانه همراه با نصب سخت افزار esp8266 نصب میگردد و نیازی به نصب ندارد ولی کتابخانه به فروشگاه اضافه خواهد شد.
      با تشکر

  • سلام مهندس
    من برنامه رو آپلود کردم و درسته.
    فقط از قسمت تنظیمات مودم سر درنیاوردم.
    راهنمایی کنید لطفا
    مودم من: Irancell-TD-GP2101

    • با سلام
      شما باید در تنظیمات مودم خود دنبال قسمتی به نام port forwarding ویا DMZ بگردید و همانند مودم TP-Link که در بالا توضیح داده شده است تنظیمات را انجام دهید.

      • با تشکر از شما
        من قسمت Port Forwarding List رو پیدا کردم.
        این فیلد ها رو با چه مقدار هایی پر کنم:
        Service:
        Protocol:
        Remote Port Range:
        Local Host:
        Local Port:
        اینم بگم که من مقدار های ۸۰ و ۸۸ و ۸۲۰۰ رو امتحان کردم نشد.

        • با سلام مجدد
          Service باید روی HTTP تنظیم شود
          Protocol روی tcp
          Remote port range روی پورت مورد نظر
          Local host روی آی پی داخلی wemos یا هر وسیله مشابه
          Local port روی ۸۰

          متاسفانه تجربه من در زمینه مودم های ایرانسل زیاد نیست ولی با پر کردن این موارد باید درست کار کند

        • با تعریف کردن پورت، شما میتونید با وارد کردن آی پی خارجی مودم (دقت کنید، نه داخلی) کار ها را انجام دهید
          دقت کنید که اصلا برای آی پی داخلی نیاز به وارد کردن پورت نمیباشد
          برای یافتن آی پی خارجی خودتون میتونید در گوگل ip address را سرچ کنید
          در ضمن زمانی که شما DDNS تعریف میکنید میتوانید به جای آی پی از این آدرس استفاده کنید

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

      • سلام ، ممنون از آموزش های خیلی خوبتون ، برای یک پروژه دانشجویی نیاز هست که تعدادی ورودی دیجیتال کنترل بشن و در صورت قطع و وصل شدن(صفر و یک) روی بستر شبکه snmp trap ارسال کنن که نهایتا این trap ها با نرم افزار های خاص خودشون نمایش داده بشن ، برای پیاده سازی این پروژه به چه چیز هایی نیاز هست در صورت امکان راهنمائیم کنید .

      • سلام ممنون از اموزش خوبتون
        نمیشه رزبری رو حذف کنیم و از یک ابر سرور استفاده کنیم؟
        من نمیخوام درگیر رزبری بشم ایا راه دیگه ای هست که چندتا برد node mcu رو بشه اول مستر -اسلیو کنیم بعد با کمک سرور ابری بینشون ارتباط برقرار کنیم و چند وسیله رو خاموش یا روشن کنیم؟
        مرسی

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

          • چرا شما روی مودم دستی میرین ای پی ست میکنین؟ حتما انجام این کار ضروریه؟
            من بدون این تنظیمات فقط node mcu رو به کامپیوترم وصل کردم و دتکت کرد، ایا اگه این مدارو به دوتا دیگه از دوستام بدم اونا هم باید برن دونه دونه ای پی نصب کنن؟ یا اتومات دتکت میشه؟
            حتی اینو با وموس هم امتحان کردم دتکت کرد

            • منظورتون از دتکت کردن چیه؟
              در این آموزش ما به هر آی پی داخلی یک پورت خارجی اختصاص میدهیم که در شبکه خارجی بتوان به وسیله مورد نظر دسترسی پیدا کرد…

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

    • با سلام
      شما برای ارتباط با پنل سامانه پیامکی نیازمند ارتباط با اینترنت هستید که یا میتوانید از شیلد اِترنت برای آردوینو استفاده کنید و یا از ماژول های esp8266 مانند wemos استفاده کنید و سپس با اتصال کی پد به ماژول شماره را دریافت کرده و با توجه به سامانه پیامکی که دارید که باید راهنمای وبسرویس آن را مطالعه فرمایید پروژه را پیاده سازی کنید. متاسفانه کد مربوطه از بحث کامنت ها خارج است.

    • با سلام
      با توجه که کدی که ما برای این پروژه نوشتیم آی پی را ثابت و به دلخواه در نظر گرفتیم ولی اگه به آی پی برد بدون آی پی ثابت نیاز داشتید میتوانید از تابع WiFi.localIP() استفاده کنید.
      همچنین میتوانید از نرم افزار های اسکن شبکه استفاده کنید و آی پی تمام دستگاه های متصل به شبکه را پیدا کنید. به عنوان مثال نرم افزار nmap برای pc و fing برای اندروید موجود است.

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

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

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

  • سلام هنگام کامپایل این اررور میدهد:

    Arduino: 1.8.5 (Windows 10), Board: “WeMos D1 R2 & mini, 80 MHz, 4M (1M SPIFFS), v2 Prebuilt (MSS=536), Disabled, None, 921600”

    C:\Users\nimagh9\Documents\Arduino\libraries\ESP8266WiFi\src\ESP8266WiFiScan.cpp: In static member function ‘static void ESP8266WiFiScanClass::_scanDone(void*, int)’:

    C:\Users\nimagh9\Documents\Arduino\libraries\ESP8266WiFi\src\ESP8266WiFiScan.cpp:297:41: error: cannot convert ‘bss_info::’ to ‘bss_info*’ in assignment

    for(bss_info* it = head; it; it = it->next, ++i)

    ^

    C:\Users\nimagh9\Documents\Arduino\libraries\ESP8266WiFi\src\ESP8266WiFiScan.cpp:305:45: error: cannot convert ‘bss_info::’ to ‘bss_info*’ in assignment

    for(bss_info* it = head; it; it = it->next, ++i) {

    ^

    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.

    • سلام
      کتابخانه ESP8266WiFi شما مشکل دارد پوشه زیر را حذف کنید و بگذارید از کتابخانه موجود در پوشه سخت افزار ESP8266 استفاده کند.
      C:\Users\nimagh9\Documents\Arduino\libraries\ESP8266WiFi

      • سلام تشکر از آموزش خوبتون من با ای پی به راحتی جواب گرفتم اما طبق گفته شما پایدار نیست و باید دائما کد تغییر کند . من ddns رایگان تهیه کردم در قسمت کد کدام قسمت باید تغییر کند ؟و وقتی hostname خود را در مرورگر وارد میکنم (به همراه domain و .com) اتفاقی نمیافتد و صفحه اررور می آید. لطفا راهنمایی فرمایید تشکر

        • سلام
          شما باید پورت تعریف شده را هم در انتهای دامنه وارد کنید
          یعنی آدرس خارجی یک دستگاه به اینصورت خواهد بود:
          hostname.ddns.net:port
          در ضمن در شبکه داخلی امکان دسترسی از طریق ddns وجود ندارد.

          • سلام من با شیلد شبکه به نت متصل هستم ولی هر کاری میکنم از خارج از شبکه نمی توانم کنترل کنم.باید چه کنم؟

                • البته من با css یک وب برای کنترل اشیا طراحی کردم.حالا این وب را چگونه با ddns کنترل کنم

                  • این هم کد ها
                    #include
                    #include

                    byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
                    byte ip[] = {192,168,1,10};
                    byte gateway[] = {192,168,1,1};
                    byte subnet[] = {255,255,255,0};

                    int LED = 4;
                    int POT = A0;
                    int reading;

                    //——————
                    EthernetServer server(80);
                    String readString;
                    //——————

                    void setup() {
                    Serial.begin(9600);
                    pinMode(LED,OUTPUT);

                    while(!Serial){
                    ;
                    }

                    Ethernet.begin(mac,ip,gateway,subnet);
                    server.begin();
                    Serial.println(“IP Address Is :”);
                    Serial.println(Ethernet.localIP());
                    }

                    void loop() {
                    EthernetClient client = server.available();
                    if (client)
                    {
                    while(client.connected())
                    {
                    if (client.available())
                    {
                    char c = client.read();
                    //——————–
                    if (readString.length()<100)
                    {
                    readString += c;
                    Serial.print(c);
                    }
                    //——————–

                    if(c=='\n')
                    {
                    //——————-
                    Serial.println(readString);

                    client.println("HTTP/1.1 200 OK");
                    client.println("Content-Type: text/html");
                    client.println();

                    //——————-
                    client.println("<META HTTP-EQUIV=REFRESH CONTENT=5");
                    //——————-

                    client.println("”);
                    client.println(“”);
                    client.println(“Control Device With Network”);
                    client.println(” body{ margin:60px 0px; padding:0px; text-align:center; background-color:#4caf50; } h1,h2,h3{ text-align:center; font-family:tahoma; } a{ text-decoration:none; width:200px; height:150px; border-color:green; border-top:2px solid; border-bottom:2px solid; border-right:2px solid; border-left:2px solid; border-radius:10px 10px 10px; font-family:tahoma; text-align:center; padding:8px; background-color:#ff5722; } a:hover{ color:#ffee58; font-style:bold; } “);
                    client.println(“”);

                    client.println(“”);
                    client.println(“”);
                    client.println(“Control Device With Network”);
                    client.println(“”);
                    client.println(“”);
                    client.println(“Arduino With Ethernet Shield”);
                    client.println(“”);
                    //——————-

                    //——————-
                    reading = analogRead(POT);
                    client.println(“Analog Sensor Value = “);
                    client.println(reading,DEC);
                    client.println(“”);
                    //——————-

                    client.println(“”);
                    client.println(“”);

                    //——————-
                    client.println(“”);
                    client.println(” LED ON “);
                    client.println(” LED OFF “);
                    client.println(” “);
                    //——————-

                    client.println(“”);
                    client.println(“”);
                    client.println(“”);
                    client.println(“”);

                    delay(1);
                    client.stop();

                    if(readString.indexOf(“?led_control=1”)>0)
                    {
                    digitalWrite(LED,HIGH);
                    }
                    if(readString.indexOf(“?led_control=2″)>0)
                    {
                    digitalWrite(LED,LOW);
                    }
                    readString=””;
                    }
                    }
                    }
                    }
                    }

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

  • سلام
    دوتا سوال

    ۱. منظور از آی پی هایی که باید با سورس برنامه عوض کنیم رو نمیفهمم کدوم آی پی ها مورد نظره؟
    ۲.هر کاری میکنم نمی تونم با
    http://ip-address/url?switch=1
    کار کنم
    اصلا کدوم آی پی باید اینجا بخوره ؟
    و چه جوری لامپ رو به راه وصل کنم من اینجا گیر کردم

  • سلا
    برنامتون خیلی خوب و جالب بود
    ازطریق صفحه وب انجام شد
    حالا اگر بخواهم از طریق اپلیکیشن اندروید انجام بدم چه دستوری رو بفرستم اینو فرستادم
    url?switch=1 جواب نداد
    متشکرم

  • سلام من وارد سایت no-ip شدم ثبت نام کردم یک hast name و یک ip داد ایناها رو باید وارد برنامه کنم یا مودم

  • سلام خوبی؟ممنون از اموزشتون.من ای پی دلخواه دادم.بصورتی محلی عمل میکنه ولی از بیرون نه.پورت فورئاردینگ هم کردم

  • باسلام ممنون از اموزش خوبتان شرمنده مقادیر ای پی در خطوط ۹ تا ۱۱ که در برنامه ثبت کرده اید را چگونه می توانم مقدار انها را بخوانم

    • با سلام و تشکر
      توی cmd ویندوز بزنید ipconfig و بدنبال قسمت Wireless LAN adapter Wi-Fi بگردید
      مشخصات اتصال وای فای کامپیوتر خودتون را میزنه که میتونید Subnet Mask و Default Gateway را ببینید
      برای آی پی هم بدلخواه انتخاب کنید

  • سلام خسته نباشید . من چند روز هست که درگیر این پرژه شدم ولی پیشرفتی هنوز نداشتم .
    لطفا شما جای http://ip-address/url?switch=1 نحوه درست وارد کردن این ارقام را وارد کنید مثلا : من http://moghaddam1391.ddns.net/182.168.1.6?switch=1این طور وارد کردم آیا صحیح است اگر غلط هست شما خودت این را با اطلاعات خودتون وارد کنید من ببینم . در ضمن من مودمم tp- link هست جایی برای وارد کردن پورت در قسمت مودم ندارد .

  • سلام.وقتی میخوام برد ویموس روب نرم افزار اردینو متصل کنم ارور میده ک esp8266، رو نداری ولی نمیتونم دانلودش هم بکنم و این ارور رو میده. باید چیکار کنم؟؟؟
    error: ESP8266WiFi.h: No such file or directory
    #include
    ^
    compilation terminated
    exit status 1
    Error compiling for board Arduino/Genuino Uno.
    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

  • سلام کجای برنامه باید اضافه بشه که من چند خروجی از برد wemos را صفر و یک کنم . ماژول wifi lk ver 12 بود که من کمی تغیرات تو برنامه دادم . اینم کد تغییر داده شده
    #include
    #include

    ESP8266WebServer server(80);

    int ledPin1 = 16; // GPIO16
    int ledPin2 = 5; // GPIO5
    int ledPin3 = 4; // GPIO4
    int ledPin4 = 0; // GPIO0
    int ledPin5 = 2; // GPIO2
    int ledPin6 = 14; // GPIO14
    int ledPin7 = 12; // GPI12
    int ledPin8 = 13; // GPI13

    const char* ssid = “AirPad”; //نام وای فای خود را جایگزین کنید//
    const char* password = “xxxxxx”; //رمز وای فای خود را جایگزین کنید//
    IPAddress ip(192, 168, 1, 2); //آی پی مورد نظر خود را وارد کنید//
    IPAddress gateway(192, 168, 1, 1); //آی پی مودم خود را وارد کنید//
    IPAddress subnet(255, 255, 255, 0);

    int s=0;

    void on() {
    digitalWrite(ledPin1, HIGH);
    Serial.println(“Switch on!”);
    }

    void off() {
    digitalWrite(ledPin1, LOW);
    Serial.println(“Switch off!”);
    }

    void handle() {
    String message = “”;
    for (uint8_t i=0; i<server.args(); i++){
    if (server.argName(i) == "switch"){
    s = server.arg(i).toInt();
    }
    message += server.argName(i) + ": " + server.arg(i) + "\n";
    }
    server.send(200, "text/plain", message);
    Serial.println(message);
    if(s){
    on();
    }else{
    off();
    }
    }

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

    pinMode(ledPin1, OUTPUT);
    digitalWrite(ledPin1, LOW);

    WiFi.config(ip, gateway, subnet);
    WiFi.mode(WIFI_STA);
    WiFi.begin(ssid, password);
    while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
    }
    Serial.println("WiFi connected");

    server.on("/url", handle);
    server.begin();
    Serial.println("server started!");
    }

    void loop() {
    server.handleClient();
    }
    من ورودی ها رو تعریف کردم فقط خروجی یکی تعریف شده

    • سلام
      در قسمتی که از توابع on و off استفاده شده اند میبایست تغییرات ایجاد کنید
      باید قسمت if (server.argName(i) == “switch”( و محتویاتش را هم کپی کنید و به جای switch واژه دیگه ای انتخاب کنید

  • خسته نباشد برای تغییر در برنامه سعی کردم دو کانالش کنم ولی با پیغام روبرو شدم اگه امکانش هست این برنامه رو برای دو وسیله برنامه نویسی کنید ببینم. ممنون از زحمات بی وقفه شما. سایت خوبتون

    • این قطعه کد را در آموزش بیابید:
      void on() {
      digitalWrite(relayPin, HIGH);
      Serial.println("Switch on!");
      }

      void off() {
      digitalWrite(relayPin, LOW);
      Serial.println("Switch off!");
      }

      void handle() {
      String message = "";
      for (uint8_t i=0; i<server.args(); i++){
      if (server.argName(i) == "switch"){
      s = server.arg(i).toInt();
      }
      message += server.argName(i) + ": " + server.arg(i) + "\n";
      }
      server.send(200, "text/plain", message);
      Serial.println(message);
      if(s){
      on();
      }else{
      off();
      }
      }

      و با قطعه کد زیر جایگزین کنید:
      void on1() {
      digitalWrite(relayPin1, HIGH);
      Serial.println("Switch1 on!");
      }

      void off1() {
      digitalWrite(relayPin1, LOW);
      Serial.println("Switch1 off!");
      }

      void on2() {
      digitalWrite(relayPin2, HIGH);
      Serial.println("Switch2 on!");
      }

      void off2() {
      digitalWrite(relayPin2, LOW);
      Serial.println("Switch2 off!");
      }

      void handle() {
      String message = "";
      for (uint8_t i=0; i<server.args(); i++){
      if (server.argName(i) == "switch1"){
      s1 = server.arg(i).toInt();
      }
      if (server.argName(i) == "switch2"){
      s2 = server.arg(i).toInt();
      }
      message += server.argName(i) + ": " + server.arg(i) + "\n";
      }
      server.send(200, "text/plain", message);
      Serial.println(message);
      if(s1){
      on1();
      }else{
      off1();
      }
      if(s2){
      on2();
      }else{
      off2();
      }
      }

      دقت داشته باشید که چند متغیر اضافه شدند یا تغییر کرده اند (relayPin1وrelayPin2وs1وs2) که شما باید در برنامه خود آنها را تعریف کنید همچنین برای کنترل رله ۱ و ۲ به تریتیب باید از آدرس های زیر استفاده کنید
      ip/url?switch1=0
      ip/url?switch2=0

      • سلام من تغیراتو انجام دادم ولی این پیغامو میده
        Arduino: 1.8.9 (Windows 7), Board: “NodeMCU 1.0 (ESP-12E Module), 80 MHz, Flash, Disabled, All SSL ciphers (most compatible), 4M (no SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 115200”

        c:/users/isk1/appdata/local/arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-3-20ed2b9/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: C:\Users\isk1\AppData\Local\Temp\arduino_cache_157803\core\core_0687844aec4a199ce909ba9f4f474287.a(core_esp8266_main.cpp.o): in function `do_global_ctors’:

        C:\Users\isk1\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266/core_esp8266_main.cpp:149: undefined reference to `loop’

        c:/users/isk1/appdata/local/arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-3-20ed2b9/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: C:\Users\isk1\AppData\Local\Temp\arduino_cache_157803\core\core_0687844aec4a199ce909ba9f4f474287.a(core_esp8266_main.cpp.o): in function `loop_wrapper()’:

        C:\Users\isk1\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266/core_esp8266_main.cpp:120: undefined reference to `loop’

        collect2.exe: error: ld returned 1 exit status

        exit status 1
        Error compiling for board NodeMCU 1.0 (ESP-12E Module).

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

    • این قطعه کد را در آموزش بیابید:
      void on() {
      digitalWrite(relayPin, HIGH);
      Serial.println("Switch on!");
      }

      void off() {
      digitalWrite(relayPin, LOW);
      Serial.println("Switch off!");
      }

      void handle() {
      String message = "";
      for (uint8_t i=0; i<server.args(); i++){
      if (server.argName(i) == "switch"){
      s = server.arg(i).toInt();
      }
      message += server.argName(i) + ": " + server.arg(i) + "\n";
      }
      server.send(200, "text/plain", message);
      Serial.println(message);
      if(s){
      on();
      }else{
      off();
      }
      }

      و با قطعه کد زیر جایگزین کنید:
      void on1() {
      digitalWrite(relayPin1, HIGH);
      Serial.println("Switch1 on!");
      }

      void off1() {
      digitalWrite(relayPin1, LOW);
      Serial.println("Switch1 off!");
      }

      void on2() {
      digitalWrite(relayPin2, HIGH);
      Serial.println("Switch2 on!");
      }

      void off2() {
      digitalWrite(relayPin2, LOW);
      Serial.println("Switch2 off!");
      }

      void handle() {
      String message = "";
      for (uint8_t i=0; i<server.args(); i++){
      if (server.argName(i) == "switch1"){
      s1 = server.arg(i).toInt();
      }
      if (server.argName(i) == "switch2"){
      s2 = server.arg(i).toInt();
      }
      message += server.argName(i) + ": " + server.arg(i) + "\n";
      }
      server.send(200, "text/plain", message);
      Serial.println(message);
      if(s1){
      on1();
      }else{
      off1();
      }
      if(s2){
      on2();
      }else{
      off2();
      }
      }

      دقت داشته باشید که چند متغیر اضافه شدند یا تغییر کرده اند (relayPin1وrelayPin2وs1وs2) که شما باید در برنامه خود آنها را تعریف کنید همچنین برای کنترل رله ۱ و ۲ به تریتیب باید از آدرس های زیر استفاده کنید
      http://ip-address/url?switch1=0 یا ۱
      http://ip-address/url?switch2=0 یا ۱

  • سلام

    در کد، دستور
    ESP8266WebServer server(80);
    را به
    ESP8266WebServer server(8200);
    تغییر دادم

    برنامه کامپایل میشه و روی local ip به درستی عمل میکنه:
    http://192.168.1.150:8200/url?switch=1

    تنظیمات مودم هم به اینصورت هست:
    http://uupload.ir/files/indi_port-forward.png

    با فرض اینکه public ip من ۵٫۱۲۲٫۱۲۲٫۲۲۱ و استاتیک هست؛ از طریق url زیر به بورد دسترسی ندارم
    http://5.122.122.221:8200/url?switch=1

    تنظیمات خاصی داره؟

    پ.ن:مدل مودم من TD-LTE i40 ایرانسل هست

    سپاس

  • سلام ممنون بابت آموزشهای عالیتون
    ۲ سوال :
    ۱_ من چند تا برد esp8266 دارم( همه در یک مکان هر کدوم به یک وسیله برقی وصله) میخوام اینها رو از طریق اینترنت کنترل کنم
    ۲_ میشه در مورد اصطلاح “مش(mesh)” یه توضیحاتی بدین
    ممنون

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

      • آقا من میخوام ۲ تا esp رو که پشت ۲ تا کلید برق کار گذاشتم کنترل کنم تغییراتشو میشه لطف کنید برام بنویسید

        • آی پی های متفاوت برای وسیله در نظر بگیرید و این کد را تغییر بدید
          IPAddress ip(192, 168, 1, 150);
          همچنین در مودم باید برای هر آی پی که تعیین میکنید پورت متفاوت تعریف کنید

  • سلام ، بنده پروژه ای داشتم میخواستم بدونم آیا از اعضای این سایت کسی می تواند آنرا انجام دهد ؟
    دستگاهی که مکالمات تلفنی دفتر را ضبط و فایل آنها را در DRIVE یا DROPBOX بریزد ویا بتوان از طریق REMOT DESKTOP به آن دستگاه دسترسی داشت و فایل ها را برداشت. ضمنا در صورت قطع و وصل برق شهر ، بطور اتوماتیک ریستارت شود و برای فعال سازی مجدد نیازی برای حضور در محل نباشد. باتشکر

  • سلام خسته نباشید من پروزه را می خواهم انجام بدهم اون وقت ماژول wifi یک مدل دیگه است مشکلی نداره و ماژول رله Relay Module را هم ندارم می خواستم ببینم داشتن این ماژول لازمه یا نه ممنون

  • سلام خسته نباشید یک سوال دیگه هم داشتم این سیستم با برد due هم کا میکه یا نه
    با تشکر

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

    • سلام
      با خاموش و روشن کردن مودم آی پی حارجی شبکه تغییر میکند.
      با تایپ عبارت ip در گوگل میتونید آی پی خارجی خودتون را ببینید، چک کنید که آیا از طریق این آی پی میتونید درسترسی داشته باشید؟

  • سلام.خسته نباشید. لازمه که حتما دستگاه نزدیک مودم باشه؟ چون وقتی دستگاه رو از مودم دور میکنم یعنی تاجایی که دیگه مودم آنتن نمیده دیگه نمیشه دستگاه رو کنترل کنم. چه کاری باید انجام بدم تا وقتی دستگاه از مودم دوره هم جواب بده؟

    • سلام و سپاس
      میتونید از تقویت کننده برای مودم یا برای wemos استفاده کنید و آنتن را تقویت کنید و یا میتونید یک اکسس پوینت تهیه کنید و بین مودم و wemos قرار بدید.

  • سلام. عیدتون مبارک
    ممنون از اموزش عالی تون
    من طبق راهنمایی شما رفتم جلو اما کمی گیج شدم…..
    بالاخره در تنظیمات روتر باید از اون ای پی که ابتدای کد برای برد تعریف کردیم (مثلا ۱۹۲٫۱۶۸٫۱٫۲۰۰) استفاده کنیم یا از ای پی که از گوگل میگیریم (۵٫۵۳٫۴۵٫۱۵۳) و هربار هم تغییر میکنه ؟
    من هر دو رو امتحان کردم اما جواب نداد…. نمیدونم چرا اما قبلا پورت ۸۰ با ای پی ۱۹۲٫۱۶۸٫۱٫۱۲۳ تنظیم شده بود و نمیشد دوباره روی همین پورت کار کرد. ارور میداد:
    ERROR: FAIL TO UPDATE DUE TO… DUPLICATE PORT NUMBER !
    برای همین یه پورت دیگه استفاده کردم –> 8121
    البته تغییرات لازم رو هم در کد اعمال کردم:
    ESP8266WebServer server(8121);
    اما باز هم اتفاقی نیفتاد…
    یعنی هم ۱۹۲٫۱۶۸٫۱٫۲۰۰:۸۱۲۱ و هم ۵٫۵۳٫۴۵٫۱۵۳:۸۱۲۱ من رو به برد متصل نکرد.
    من از مودم d-link 2520u استفاده میکنم و فیلدهای صفحه تنظیمات پورت فورواردینگ اون این طوریه:
    private ip
    protocol type
    public start port
    public end port
    connection:PVC0
    همچنین ISP من مخابراته و زنگ زدم بپرسم که ایا پورت ها رو نبستن؟
    به دلیل مسایل امنیتی جواب ندادن….
    ممنون میشم کمک کنین.

    • سلام عید شما هم مبارک
      سپاس
      باید از آی پی داخلی یعنی ۱۹۲٫۱۶۸٫۱٫۲۰۰ استفاده کنید
      در تنظیمات مودم ابتدا تنظیمات قبلی که در port forwarding اعمال کردید حذف کرده و دوباره اضافه کنید.
      پورت ۸۰ هم در مخابرات تا اونجایی که میدونم مشکلی نداشت.
      در هر صورت آی پی داخلی هم نباید مشکلی داشته باشه و ربطی به هیچ کدوم از تنظیمات مودم نداره.

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

    • سلام
      این پروژه با wemos d1 mini انجام شده ولی میتونید با تهیه یک ماژول esp8266 و اتصال آن به آردوینو نیز اینکار را انجام دهید.
      و برای اتصال چندین وسیله باید رله بیشتر تهیه کنید

      • سلام مجدد
        لطفا آدرس پروژه انجام شده با wemos d1 mini رو بزارید
        و اگر از ماژول esp8266 استفاده کنم قسمت فرستنده دستورات که برد آردوینو باشه بیسیم میشه برای دریافت کننده که رله ها باشه چطور بیسیمشون کنم (چون رله هام وایرلس نیستن)آیا باید رله ها رو عوض کنم؟نمیخوام سرتاسر خونه سیمکشی بشه
        ضمنا قسمت عضویت اسپارکرپلاس هم مشکل داره لطفا بررسی کنید.ممنون

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

  • سلام آخه برای چی کد هارو پولی کردید

    ما که اومدیم برد هاشو از شما خریدیم حالا اومدید کد هاشم پولی کردید باید بیشتر از پول برد پول کدش رو بدم!

  • سلام من از یه کد دیگه استفاده می کنم و موقع فراخوانی آی پی کار می کنه ولی وقتی ddns فراخونی می کنم صفحه فقط می چرخه و لود نمی شه – وقتی دامنه رو فراخونی می کنم صفحه ورود مودم میاد که یعنی ست شده
    – باید کد خواصی در کد هام باشه تا در ddns بیاد؟

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

  • سلام
    از طریق sep8266-01 قصد دارم پروژه ای رو اجرا کنم از طریق وب پروژه روی برد برد اجرا میشه و مثلا led از طریق وایفای روشن میشه ولی وقتی رله جای گزین میکنم عمل نمیکنه.رله ۵ ولت هست و vcc رو از ۵ ولت منبع جدا گرفتم و فقط برای تحریکش باید از esp8266 استفاده کنم.ناگفته نماند که وقتی بدون فرمان دادن به gpio وصل مینم رله یکسره میشه و عمل میکنه و با فرمان دادن نه. من ولتاژ۵ ولت دارم چرا پروژه که با فرمان دادن led رو روشن میکنه رله رو روشن نمیکنه؟؟

      • سلام
        در هر دو حالت تست شد(از منبع تغذیه برد برد هم استفاده شد و از ۵ولت برد برد برای vcc و gnd استفاده شد . و در حالت دیگر از تغذیه uno استفاده شد در همه حالات رله یکسره میشود و نتیجه تغییر نکرد

      • سلام مجدد
        آیا ممکن است دلیل مشکل استفاده از رله ۵ ولت باشد؟؟ رله روشن میشود و یکسره میماند و روشن شده ربطی به فرمان ارسالی ندارد و به محض در مدار قرار گرفتن روشن میشود

        • الآن دارم کامنت های دوستان رو میخونم، میبینم منم دقیقا همین مشکل رو دارم! زمانی که مدار سوئیچ کننده ترانزیستوری به پایه GPIO2 ماژول ESP01 متصل میشه و تغذیه فعال میشه، رله یکسره روشن میمونه و کنتاکت هاش به هم چسبیده باقی میمونن!! ریست کردن ماژول هم هیچ تاثیری روی این حالت ندارد.
          اما زمانی که پایه بیس ترانیستور را از پایه GPIO2 جدا میکنم و برد رو ریست میکنم، این مشکل حل میشه!
          این باگ سخت افزاری خیلی عجیبیه…!
          چرا باید با مدار تحریک رله، این مشکل وجود داشته باشه، در حالی که با یک LED ساده و مقاومت این مشکل وجود نداره؟؟

      • در هر دو حالت چک شد و رله درست عمل نکرد رله رو هم عوض کردم بی فایده بود.از منبع تغذیه جدا از برد uno برای gng و vcc استفاده کردم بازم هیچی.یه نفر گفت باید از رله ۳٫۳ استفاده کنی که اصلا پیداش نکردم.اگر مشکل این باشه چطور باید ولتاژ تحریک رله رو به ۵ ولت برسونم؟؟

          • سلام
            من میکروپردازنده برد uno رو برای برنامه ریزی برد ۸۲۶۶ برداشتم و الان فقط برای سریال مانیتور و استفاده از tx و rx برد uno ازش استفاده میکنم , و برنامه اصلی روی esp8266-01آپلود شده.اگر منضورتون طرز استفاده هست قبلا در پروژه های دیگه از رله استفاده کردم بدون مشکل.آیا امکانش هست به نحوی فیلمی از پروژه براتون بفرستم؟ اگرمثلا شماره واتساپ یا ایمیل یا چیز مشابهی رو بهم بدید ممنون میشم.بدجوری به بن بست خوردم و کم کم دارم امیدم رو از دست میدم.الان نزدیک یک ماه هست که توی این مرحله گیر کردم.

        • سلام دوست عزیز
          احتمالا شما در ابتدای کار اون پین مورد نظری رو که قراره رله باهاش روشن خاموش بشه رو به مقدارش رو high یا low تعریف نکردی که بخای بعدن بهش دستور روشن خاموش بدی…
          pinMode(16,OUTPUT);
          digitalWrite(16,HIGH);

  • سلام. بنده یه سوالی داشتم لطفا راهنماییم کنید
    بنده میخوام با کمک برد آردوینو محتوای یه فایل txt رو درون یه متغیر مثلا MyText بریزم. چجوری میتونم این کار رو بکنم؟ آیا از طریق یه لینک هم میشه اینکار رو کرد؟
    مثلا به این شکل باشه
    String MyText = LoadString(“Good/New/matn.txt”); // zzzzzz

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

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

  • سلام من قبلا با کامپایلرهای codevision و keil کار کردم و دفعه اولمه با کامپایلر آردوینو کار میکنم.لطفا راهنمایی بفرمایید که چطور هدر پروژه دانلود شده از سایت رو ( ESP8266WiFi.h ) به پروژه add کنم تا ارور عدم شناسایی این هدر رو نده.

  • سلام مدم من D-link هرچی گشتم تو اون مسیری که گفتید همچین تنظیماتی پیدا نکردم لطفا بگید چکار کنم

  • سلام
    یه بار دیگم پیام دادم من توی سایت ثبت نام کردم ولی هیچ پیام تاییدی به ایمیلم ارسال نمیشه

  • سلام
    من وقتی دفعه اول ادرس ای پی رو توی مرورگر میزنم همه چی درست کار میکنه ولی بعد چند دقیقه که امتحان میکنم یه پیغام تو مرورگر میاد که نوشته Gateway Timeout

  • سلام
    وقتی برد رو که ریستارت میکنم درست میشه تغییری در برد ایجاد نمیکنم فقط یه جند بار که led رو خاموش روشن میکنم و بعد مدتی که میگزره اینجوری میشه از مرور گر کروم استفاده میکنم البته با شبکه لوکال هم که وصل میشم همین مشکل رو داره

    • احتمالا این مشکل مربوط به اتصال به مودم میباشد.
      لطفا چک کنید که آی پی ایستا، gateway (مودم) و subnet بصورت صحیح وارد شده اند.
      یعنی چک کنید که آیا آی پی ایستایی که انتخاب میکنید توسط دستگاه دیگری اشغال نشده باشد همچنین آی پی مودم و subnet را میتوانید با استفاده از دستور ipconfig در cmd ویندوز چک کنید که آیا درست هستند یا خیر
      (باید فیلد های Subnet Mask و Default Gateway را چک کنید)

  • سلام
    ای پی ایستا و subnet رو که چک کردم درست بود ولی وقتی ماژول رو فقط تو شبکه لوکال امتحان میکنم تا مدت ها بدون مشکل کار میکنه ولی هنگامی که تنظیمات port forwarding انجام میدم و ماژول متصل میشه به اینترنت بعد یه مدت کوتاه دوباره همین مشکل رو پیدا میکنه

  • سلام
    آموزش خوبی بود فقط من میخوام یک رله دیگه اضافه کنم ولی وقتی فرمان ارسال میکنم هردوی رله فعال میشه
    #include
    #include

    ESP8266WebServer server(80);

    const int relayPin = D1;
    const int relayPin1 = D2;
    const char* ssid = “Aztech5005_AB1F”; //نام وای فای خود را جایگزین کنید//
    const char* password = “1539iskzz”; //رمز وای فای خود را جایگزین کنید//
    IPAddress ip(192, 168, 1, 150); //آی پی مورد نظر خود را وارد کنید//
    IPAddress gateway(192, 168, 1, 1); //آی پی مودم خود را وارد کنید//
    IPAddress subnet(255, 255, 255, 0);

    int s=0;
    .
    .
    .
    .

    • سلام
      منظورتون را متوجه نمیشم؟
      این پروژه به این منظور ایجاد شده که به وسیله اینترنت esp8266 خودتون را کنترل کنید و برای اینکه esp8266 به اینترنت متصل باشه باید به مودمی که اینترنت ارائه میده متصل باشه

      • من این برنامه رو اصلاح کردم فقط میخوام مد لحضه ایی هم بهش اضافه کنم مثلا بزنم
        http://ip-address/url?switch1=2
        /*
        Copyright (c) 2015, Majenko Technologies
        All rights reserved.

        Redistribution and use in source and binary forms, with or without modification,
        are permitted provided that the following conditions are met:

        * * Redistributions of source code must retain the above copyright notice, this
        list of conditions and the following disclaimer.

        * * Redistributions in binary form must reproduce the above copyright notice, this
        list of conditions and the following disclaimer in the documentation and/or
        other materials provided with the distribution.

        * * Neither the name of Majenko Technologies nor the names of its
        contributors may be used to endorse or promote products derived from
        this software without specific prior written permission.

        THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND
        ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
        WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
        DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
        ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
        (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
        LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
        ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
        SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        */

        /* Create a WiFi access point and provide a web server on it. */

        #include
        #include
        #include
        #ifndef APSSID
        #define APSSID “isk”
        #define APPSK “12345678”
        #endif

        /* Set these to your desired credentials. */
        const char *ssid = APSSID;
        const char *password = APPSK;
        const int gpio0 =3 ;
        const int gpio2 =2;
        //IPAddress ip(192, 168, 1, 150); //آی پی مورد نظر خود را وارد کنید//
        //IPAddress gateway(192, 168, 1, 1); //آی پی مودم خود را وارد کنید//
        //IPAddress subnet(255, 255, 255, 0);
        ESP8266WebServer server(80);
        int s1;

        int s2;
        /* Just a little test message. Go to http://192.168.4.1 in a web browser
        connected to this access point to see it.
        */

        void on1() {
        digitalWrite(gpio0, HIGH);
        Serial.println(“Switch1 on!”);
        }

        void off1() {
        digitalWrite(gpio0, LOW);
        Serial.println(“Switch1 off!”);
        }

        void on2() {
        digitalWrite(gpio2, HIGH);
        Serial.println(“Switch2 on!”);
        }

        void off2() {
        digitalWrite(gpio2, LOW);
        Serial.println(“Switch2 off!”);
        }

        void handle() {
        String message = “”;
        for (uint8_t i=0; i<server.args(); i++){
        if (server.argName(i) == "switch1"){
        s1 = server.arg(i).toInt();
        }
        if (server.argName(i) == "switch2"){
        s2 = server.arg(i).toInt();
        }
        message += server.argName(i) + ": " + server.arg(i) + "\n";
        }
        server.send(200, "text/plain", message);
        Serial.println(message);
        if(s1){
        on1();
        }else{
        off1();
        }
        if(s2){
        on2();
        }else{
        off2();
        }
        }
        void handleRoot() {
        server.send(200, "text/html", "You are connected”);
        }

        void setup() {
        delay(1000);
        Serial.begin(115200);
        Serial.println();
        Serial.print(“Configuring access point…”);
        /* You can remove the password parameter if you want the AP to be open. */
        WiFi.softAP(ssid, password);
        pinMode(gpio0, OUTPUT);
        digitalWrite(gpio0, LOW);
        pinMode(gpio2, OUTPUT);
        digitalWrite(gpio2, LOW);

        IPAddress myIP = WiFi.softAPIP();
        Serial.print(“AP IP address: “);
        //Serial.println(myIP);
        server.on(“/”, handleRoot);
        server.on(“/url”, handle);
        server.begin();
        Serial.println(“HTTP server started”);
        }

        void loop() {
        server.handleClient();
        }

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

    • سلام وقت شما هم بخیر
      منظورتون را متوجه نمیشم
      در این آموزش اتصال ماژول به اینترنت آموزش داده شده است و میتونید از طریق اینترنت ماژولتون را کنترل کنید

  • سلام
    من این برد رو تو شبکه داخلی دارم و کنترلش میکنم
    یه آیپی بهش دادم و روی همون پورت وب هست
    حالا میخوام لینکش رو توی شبکه جهانی استفاده کنم
    با noip یه آیپی گرفتم و ddns رو روی مودمم راه اندازی کردم
    حالا لینکی که در شبکه جهانی منو وصل کنه به این برد به چه صورت میشه؟؟
    لینک در شبکه داخلی : http://WEMOSIP/LED1/1
    در شبکه جهانی به چه صورت ؟؟؟

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

  • نمیشه رله با کانال بیشتری بهش متصل کرد
    اگه میشه به چه چیزایی نیاز داره ممنون چون یک کاناال خیلی کمه.

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

  • درود بر شما

    در این سایت:
    https://www.hackster.io/yash-pawar/led-control-using-google-assistant-edc1ae

    طراح از برد Bolt IoT Bolt WiFi Module استفاده میکنه! و شما هم از Wemos، اما جالب اینجاست که پردازنده هر دو ESP8266 هست. خب من توی خونه ESP-12F رو دارم، خب ۲ مورد یکم برای راه اندازی چنین پروژه ای تا این جا یکسان بود! اما برای مورد ۳ام هم، همچنین است؟ و باید منم همین روند رو در پیش بگیرم؟!

    یا اگر سایت بیرونی را میشناسید، معرفی کنید، سپاسگزارم.

  • سلام، در پنل مودم من در آدرس NAT اول از همه باید حلقه مجازی رو انخاب بکنی که شامل PVC0 , PVC1 , …. هست.کدام حلقه باید انتخاب شود ؟
    در سایت noip برای دامنه، آی پی برد باید وارد شود یا چیز دیگری؟ noip خودش به صورت خودکار آی پی کامپیوتر را وارد میکند و نمیشود تغییرش داد. اگر باید تغییر داد به چه صورت است؟
    من تمام کار هایی که گفتید رو انجام دادم اما باز هم به نتیجه نرسیدم و فقط با استفاده از آی پی محلی کار میکند.

    • با سلام، در مورد Virtual Circuit شما از بین PVC0 تا PVC7 حق انتخاب دارید و این مورد مربوط سرویس دهنده شما است، اما در مجموع بهترین گزینه PVC2 است. در سایت no-ip با افزودن یک هاست و وارد کردن ip متغیر و در ادامه تنظیمات مربوط می‌توانید به نتیجه مورد نظر برسید.

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

  • سلام امکان این هست که با استفاده از esp گوشی رو به رله ها که متصل میکنیم اینکارو کرد یعنی کاری کنیم که از نظر نرم افزاری دستیار صوتی روی گوشی باشه و اون دستیار به esp وصل بشه