سیستمهای کنترلی انواع مختلف با پروتکلهای مختلفی دارند. از جمله کنترل از طریق پیامک یا همان ماژولهای 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
مودم روتر دارای قابلیت 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
سپس روی 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
در آدرسهای بالا به جای 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 روی ۸۰
متاسفانه تجربه من در زمینه مودم های ایرانسل زیاد نیست ولی با پر کردن این موارد باید درست کار کند
وقتی که من پورت رو ساختم به این معنی است که با وارد کردن این آدرس تو مرورگر هر کامپیوتری میتونم رله رو کنترل کنم؟؟
http://192.168.1.141:port/url?switch=1
با تعریف کردن پورت، شما میتونید با وارد کردن آی پی خارجی مودم (دقت کنید، نه داخلی) کار ها را انجام دهید
دقت کنید که اصلا برای آی پی داخلی نیاز به وارد کردن پورت نمیباشد
برای یافتن آی پی خارجی خودتون میتونید در گوگل ip address را سرچ کنید
در ضمن زمانی که شما DDNS تعریف میکنید میتوانید به جای آی پی از این آدرس استفاده کنید
سلام.با این برد چ چیز هایی رو میشه کنترل کرد؟؟؟
با سلام
تقریبا هر چیزی را میشه باهاش کنترل کرد!
شما میتونید با انواع ماژول ها از جمله رله (که تموم وسایل برقی را میشه باهاش خاموش و روشن کرد) پروژه های مختلف طراحی کنید.
سلام ، ممنون از آموزش های خیلی خوبتون ، برای یک پروژه دانشجویی نیاز هست که تعدادی ورودی دیجیتال کنترل بشن و در صورت قطع و وصل شدن(صفر و یک) روی بستر شبکه snmp trap ارسال کنن که نهایتا این trap ها با نرم افزار های خاص خودشون نمایش داده بشن ، برای پیاده سازی این پروژه به چه چیز هایی نیاز هست در صورت امکان راهنمائیم کنید .
با سلام
متاسفانه از حیطه تخصص من خارج است ولی شما میتوانید به مثال UdpSendReceiveString که در خود آردوینو موجود هستش (https://www.arduino.cc/en/Tutorial/UDPSendReceiveString) مراجعه کنید
سلام ممنون از اموزش خوبتون
نمیشه رزبری رو حذف کنیم و از یک ابر سرور استفاده کنیم؟
من نمیخوام درگیر رزبری بشم ایا راه دیگه ای هست که چندتا برد node mcu رو بشه اول مستر -اسلیو کنیم بعد با کمک سرور ابری بینشون ارتباط برقرار کنیم و چند وسیله رو خاموش یا روشن کنیم؟
مرسی
با سلام
در این آموزش رزبری پای نقش هماهنگ کننده آی پی را دارد که البته بعضی از مودم ها از جمله مودم استفاده شده در آموزش این قابلیت را دارا میباشند و نیازی نیست حتما از رزبری پای استفاده کنید
چرا شما روی مودم دستی میرین ای پی ست میکنین؟ حتما انجام این کار ضروریه؟
من بدون این تنظیمات فقط node mcu رو به کامپیوترم وصل کردم و دتکت کرد، ایا اگه این مدارو به دوتا دیگه از دوستام بدم اونا هم باید برن دونه دونه ای پی نصب کنن؟ یا اتومات دتکت میشه؟
حتی اینو با وموس هم امتحان کردم دتکت کرد
منظورتون از دتکت کردن چیه؟
در این آموزش ما به هر آی پی داخلی یک پورت خارجی اختصاص میدهیم که در شبکه خارجی بتوان به وسیله مورد نظر دسترسی پیدا کرد…
حرف ندارید. زنده باشید که دارید به پیشرفت جوونا کمک میکنید
با سلام
سپاس از شما دوست عزیز
سلام من می خوام دستگاهی رو با اردوینو بسازم که یه کی پد داشته باشه و شماره موبایل رو که وارد می کنید و تایید می کنیم اون رو در پنل سامانه پیامکی در اینترنت متصل کنه از طریق وب سرویس
چه تجهیزاتی نیاز داره و کد مربوط به اون رو از کجا گیر بیارم لطفا به طور کامل و دقیق راهنمایی کنید.
با سلام
شما برای ارتباط با پنل سامانه پیامکی نیازمند ارتباط با اینترنت هستید که یا میتوانید از شیلد اِترنت برای آردوینو استفاده کنید و یا از ماژول های esp8266 مانند wemos استفاده کنید و سپس با اتصال کی پد به ماژول شماره را دریافت کرده و با توجه به سامانه پیامکی که دارید که باید راهنمای وبسرویس آن را مطالعه فرمایید پروژه را پیاده سازی کنید. متاسفانه کد مربوطه از بحث کامنت ها خارج است.
سلام آی پی برد wemos رو از کجا باید پیدا کنم؟
با سلام
با توجه که کدی که ما برای این پروژه نوشتیم آی پی را ثابت و به دلخواه در نظر گرفتیم ولی اگه به آی پی برد بدون آی پی ثابت نیاز داشتید میتوانید از تابع WiFi.localIP() استفاده کنید.
همچنین میتوانید از نرم افزار های اسکن شبکه استفاده کنید و آی پی تمام دستگاه های متصل به شبکه را پیدا کنید. به عنوان مثال نرم افزار nmap برای pc و fing برای اندروید موجود است.
سلام
مهندس با تشکر از برنامه خوب شما میخواستم ببینم چه جوری باید برای برنامه پورت تعریف کنیم تا از خارج هم بشه به صفحات دسترسی داشت؟
سلام
اگر طبق این آموزش عمل کنید با تعریف پورت میتوانید از طریق آی پی و از هر مکانی به وسایل مورد نظرتان دسترسی داشته باشید.
سلام وقت بخیر
شرمنده اینو چجوری باید تغییر بدم تا بتونم از هرجایی با صفحه وب کنترل کنم.پورت رو چجوری و کجای برنامه اضافه کنم؟
سلام
در آموزش بصورت کامل توضیح داده شده
پورت باید داخل مودمی که برد wemos یا هر دستگاه دیگری به آن متصل است، تنظیم شود.
با سلام و تشکر از سایت خوبتون
من میخوام از طریق وایفای اطلاعات خوانده شده از یک کارت حافظه را به روی یک صفحه ی وب بفرستم. اگه ممکنه راهنمایی کنید.
با سلام و سپاس
میتوانید از آموزش های کار با ماژول sdcard و شیوه ارسال اطلاعات به وبسرور استفاده کنید.
سلام هنگام کامپایل این اررور میدهد:
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 وجود ندارد.
سلام من با شیلد شبکه به نت متصل هستم ولی هر کاری میکنم از خارج از شبکه نمی توانم کنترل کنم.باید چه کنم؟
سلام
تنظیمات Port forwarding در مودم را انجام داده اید؟
بله
البته من با 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=””;
}
}
}
}
}
این کد فقط کد های css را چاپ میکنه!
شما باید css را برای هر المان استفاده شده در html در داخل تگ style بنویسید.
برای وب باید پورت ۸۰ آی پی مورد نظر خودتون را فوروارد کنید روی یک پورت خارجی
میتونید دقیق شرح بدید چه کار هایی انجام دادید
اگر عکس هم ارسال کنید خیلی بهتره
شما همین کد ها رو روی آردینو کپی کنید.وبعد ببینید باید چگونه از بیرون کنترل کنیم.؟
بحث شما از موضوع این مطلب خارج است.
می شود راهنمایی کنید از کجا پیگیری کنم
از پست های مرتبط با شیلد اترنت اقدام کنید
بعدش میتونم این ادرس ها رو به یه برنامه اندروید بدم و کار رو تو محیط اندروید انجام بدم؟؟؟
بله این امکان وجود دارد
سلام وقت بخیر اگه از برد Raspberry استفاده کنیم و Raspberry رو به hotspot گوشی وصل کنیم امکانش هست که از مودم استفاده نکنیم؟؟؟
متاسفانه هات اسپات گوشی قابلیت port forwarding و ddns را ندارد. باید از مودمی استفاده کنید که این قابلیت ها را دارا باشند
باسلام به یک مشکلی برخوردم .
نمیدونم این چیه و چه جوری باید از این استفاده کنم !!! http://ip-address/url?switch=1
سلام
شما باید آی پی خود را جایگزین ip-address کنید و با اجرا کردن این آدرس رله فعال خواهد شد
با سلام
برای برد esp32 قابل اجراس؟ و چگونه؟
ممنون
سلام
بله این امکان وجود دارد
میتوانید از مثال آی پی استاتیک esp32 استفاده کنید.
خیلی ممنون
سلام
دوتا سوال
۱. منظور از آی پی هایی که باید با سورس برنامه عوض کنیم رو نمیفهمم کدوم آی پی ها مورد نظره؟
۲.هر کاری میکنم نمی تونم با
http://ip-address/url?switch=1
کار کنم
اصلا کدوم آی پی باید اینجا بخوره ؟
و چه جوری لامپ رو به راه وصل کنم من اینجا گیر کردم
در مطلب کامل توضیح داده شده
توی کد های برنامه هم جای آی پی های که باید عوض کنید مشخص شده
به جای ip-address باید آی پی داخل شبکه wemos را جایگزین کنید
لامپ هم باید به رله ای که wemos متصله وصل بشه
آی پی داخلی wemos یعنی چی ؟
چه جوری باید به راه وصل بشه
آی پی داخل شبکه
یعنی آی پی ثابتی که شما توی برنامه برای wemos آپلود میکنید
میدونم اما درون سورس برنامه
یه آی پی مودم داره
یه آی پنی مورد نظر
آی پی مورد نظر همون آی پی هستش که به عنوان آی پی ثابت انتخاب میکنید و آی پی مودم همون gateway مودم هستش
سیم لامپ باید به کدوم بخوره؟
NO یا NC
لطفا از آموزش اتصال رله در دیجی اسپارک استفاده کنید.
سلا
برنامتون خیلی خوب و جالب بود
ازطریق صفحه وب انجام شد
حالا اگر بخواهم از طریق اپلیکیشن اندروید انجام بدم چه دستوری رو بفرستم اینو فرستادم
url?switch=1 جواب نداد
متشکرم
سلام
شما باید به این آدرسی که دارید یک درخواست http ارسال کنید.
سلام
حالا اگر بخواهم بصورت ttl بفرستم باید کدام قسمت کدهارو تغییر بدم
متشکرم
سلام
منظورتون از ttl چیه؟
سلام
از طریق http نمیخوام باشه یک پیام متنی مثلا on یا off را به ip&portمشخص بفرستم
متشکرم
توی درخواست http این کار را میتونید انجام بدید
درباره متد های post و get برای آردوینو بخوایند
سلام من وارد سایت no-ip شدم ثبت نام کردم یک hast name و یک ip داد ایناها رو باید وارد برنامه کنم یا مودم
سلام
طبق آموزش باید hostname را در مودم وارد کنید
سلام
چطوری از سایت noip.com آی پی داینامیک تهیه کنم
آی پی محلی رو باید بدم
لطف میکنید واضح تر توضیح بدید که چه چیزی رو کدوم قسمت بدم و چه گزینه ای رو بزنم تا ddns دریافت کنم
سلام
شما فقط کافیست یک نام برای hostname در نظر بگرید و یک دامنه انتخاب کنید (مانند ddns.net) و نیازی به دادن هیچ گونه اطلاعات دیگری نمیباشد و سپس اطلاعات حساب خودتون را در مودم وارد کنید.
چجوری درست کردین؟
سلام خوبی؟ممنون از اموزشتون.من ای پی دلخواه دادم.بصورتی محلی عمل میکنه ولی از بیرون نه.پورت فورئاردینگ هم کردم
سلام
ممنون
چک کنید ببینید اگر آی پی خارجی را بزنید (نه ddns) و پورت را به همراهش بزنید کار میکنه یا نه؟
باسلام ممنون از اموزش خوبتان شرمنده مقادیر ای پی در خطوط ۹ تا ۱۱ که در برنامه ثبت کرده اید را چگونه می توانم مقدار انها را بخوانم
با سلام و تشکر
توی 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 هست جایی برای وارد کردن پورت در قسمت مودم ندارد .
سلام
url را نباید تغییر میدادید
یعنی باید بشه
http://moghaddam1391.ddns.net/url?switch=1
با سلام خدمت شما دوست عزیز
به یک برنامه ی که توی یک سایت دیگر نظر دادید احتیاج دارم، لطفا یه ادرس یا شماره ی برام بذارید
با سلام
کاربر گرامی درخواستتان را کامل و دقیق مطرح کنید.
سلام.وقتی میخوام برد ویموس روب نرم افزار اردینو متصل کنم ارور میده ک 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 را مطالعه کنید
سلام کجای برنامه باید اضافه بشه که من چند خروجی از برد 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.
لطفا کدی که نوشتید را ارسال کنید
سلام ممنون از اموزش خوبتون من میخوام سه پورت رو با سه تا فرمان مختلف کنترل کنم برای مثال با http://ip-address/url?switch=1رله ی یک روشن بشه با فرمان http://ip-address/url?switch=2 رله ی۲ روشن بشه چجوری باید برنامه رو تغییر بدم؟
این قطعه کد را در آموزش بیابید:
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 ایرانسل هست
سپاس
سلام
شما پروتکل HTTP را در مودم خود تنظیم کردید که یعنی پورت ۸۰ و باید با توجه به سرویس های تعریف شده در مودم پورت داخلی خودتون را تنظیم کنید
تشکر بابت پاسخگویی
مقدار Service و Port Range چی باید باشه؟
http://uupload.ir/files/buwl_port-forwarding.png
نیازی هست که این خط اصلاح بشه؟
ESP8266WebServer server(8200);
من با مودم های ایرانسل زیاد آشنا نیستم ولی یکی از پورت ها باید برای داخلی باشه و یکی برای خارجی
در صورتی که پورت داخلی قابل مشخص کردن نباشه همون http را انتخاب کنید و خط زیر را همون ۸۰ قرار بدید
ESP8266WebServer server(8200);
روی یه مودم دیگه هم تست کردم. کار نکرد که نکرد!
اگه دقیقا همین کدهای شما رو کامپایل کنیم، تنظیمات مودم به چه صورت باید باشه:
http://uupload.ir/files/xi0_main.png
اگر براتون مقدوره بفرمایید که مقادیر A تا F رو چی باید بنویسم؟
سپاس بابت وقتی که میزاری
A: web
B: TCP
C: Interface
D: اونی که مال اینترنتتون هست که توی این مورد pppoe1
E: پورت خارجی
F: پورت داخلی
ممنون
از طریق بخش DMZ مشکل برطرف شد
سلام ممنون بابت آموزشهای عالیتون
۲ سوال :
۱_ من چند تا برد esp8266 دارم( همه در یک مکان هر کدوم به یک وسیله برقی وصله) میخوام اینها رو از طریق اینترنت کنترل کنم
۲_ میشه در مورد اصطلاح “مش(mesh)” یه توضیحاتی بدین
ممنون
سلام و سپاس
از طریق همین آموزش و تنظیم پورت های مختلف برای هر وسیله میتونید هر وسیله را بصورت جداگانه کنترل کنید
شبکه مش یا شبکه توری یک نوع ساختار شبکه میباشد که مرکزیتی برای شبکه وجود ندارد و تمامی کلاینت ها به هم متصل هستند. این شبکه برای مواقعی مناسبه که اگه اتفاقی برای یکی از کلاینت ها افتاد روی بقیه شبکه تاثیر نزاره
آقا من میخوام ۲ تا esp رو که پشت ۲ تا کلید برق کار گذاشتم کنترل کنم تغییراتشو میشه لطف کنید برام بنویسید
آی پی های متفاوت برای وسیله در نظر بگیرید و این کد را تغییر بدید
IPAddress ip(192, 168, 1, 150);
همچنین در مودم باید برای هر آی پی که تعیین میکنید پورت متفاوت تعریف کنید
سلام ، بنده پروژه ای داشتم میخواستم بدونم آیا از اعضای این سایت کسی می تواند آنرا انجام دهد ؟
دستگاهی که مکالمات تلفنی دفتر را ضبط و فایل آنها را در DRIVE یا DROPBOX بریزد ویا بتوان از طریق REMOT DESKTOP به آن دستگاه دسترسی داشت و فایل ها را برداشت. ضمنا در صورت قطع و وصل برق شهر ، بطور اتوماتیک ریستارت شود و برای فعال سازی مجدد نیازی برای حضور در محل نباشد. باتشکر
درود
چنین دستگاهی به صورت آماده توسط فروشندگان سانترال ارایه میشود. نیازی به طراحی نمیباشد.
ممنون از راهنماییتون
سلام خسته نباشید من پروزه را می خواهم انجام بدهم اون وقت ماژول wifi یک مدل دیگه است مشکلی نداره و ماژول رله Relay Module را هم ندارم می خواستم ببینم داشتن این ماژول لازمه یا نه ممنون
سلام و سپاس
باید ببینید کد نویسی ماژول وای فای که دارید به چه صورت هستش
ماژول رله یک کلید برای فعالسازی وسیله میباشد
سلام خسته نباشید یک سوال دیگه هم داشتم این سیستم با برد due هم کا میکه یا نه
با تشکر
سلام مجدد
باید بصورت جداگانه برای 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 رو روشن میکنه رله رو روشن نمیکنه؟؟
سلام
آیا gnd های رله، esp8266 و منبع تغذیه به هم متصل هستند؟
سلام
در هر دو حالت تست شد(از منبع تغذیه برد برد هم استفاده شد و از ۵ولت برد برد برای vcc و gnd استفاده شد . و در حالت دیگر از تغذیه uno استفاده شد در همه حالات رله یکسره میشود و نتیجه تغییر نکرد
دستورات مربوط به روشن یا خاموش شدن رله باید از طریق پایه In داده شود
سلام مجدد
آیا ممکن است دلیل مشکل استفاده از رله ۵ ولت باشد؟؟ رله روشن میشود و یکسره میماند و روشن شده ربطی به فرمان ارسالی ندارد و به محض در مدار قرار گرفتن روشن میشود
ولتاژ ورودی از طریق پایه vcc که باید به پایه ۵v آردوینو متصل شود تامین میشود و فقط دستور از طریق پایه ورودی in به رله داده میشود
الآن دارم کامنت های دوستان رو میخونم، میبینم منم دقیقا همین مشکل رو دارم! زمانی که مدار سوئیچ کننده ترانزیستوری به پایه GPIO2 ماژول ESP01 متصل میشه و تغذیه فعال میشه، رله یکسره روشن میمونه و کنتاکت هاش به هم چسبیده باقی میمونن!! ریست کردن ماژول هم هیچ تاثیری روی این حالت ندارد.
اما زمانی که پایه بیس ترانیستور را از پایه GPIO2 جدا میکنم و برد رو ریست میکنم، این مشکل حل میشه!
این باگ سخت افزاری خیلی عجیبیه…!
چرا باید با مدار تحریک رله، این مشکل وجود داشته باشه، در حالی که با یک LED ساده و مقاومت این مشکل وجود نداره؟؟
در هر دو حالت چک شد و رله درست عمل نکرد رله رو هم عوض کردم بی فایده بود.از منبع تغذیه جدا از برد uno برای gng و vcc استفاده کردم بازم هیچی.یه نفر گفت باید از رله ۳٫۳ استفاده کنی که اصلا پیداش نکردم.اگر مشکل این باشه چطور باید ولتاژ تحریک رله رو به ۵ ولت برسونم؟؟
آیا در حالت عادی میتوانید با uno به رله دستور دهید؟
سلام
من میکروپردازنده برد uno رو برای برنامه ریزی برد ۸۲۶۶ برداشتم و الان فقط برای سریال مانیتور و استفاده از tx و rx برد uno ازش استفاده میکنم , و برنامه اصلی روی esp8266-01آپلود شده.اگر منضورتون طرز استفاده هست قبلا در پروژه های دیگه از رله استفاده کردم بدون مشکل.آیا امکانش هست به نحوی فیلمی از پروژه براتون بفرستم؟ اگرمثلا شماره واتساپ یا ایمیل یا چیز مشابهی رو بهم بدید ممنون میشم.بدجوری به بن بست خوردم و کم کم دارم امیدم رو از دست میدم.الان نزدیک یک ماه هست که توی این مرحله گیر کردم.
سلام
یکجا فیلمتون را آپلود کنید و لینکش را همینجا ارسال کنید تا بررسی کنم
سلام دوست عزیز
احتمالا شما در ابتدای کار اون پین مورد نظری رو که قراره رله باهاش روشن خاموش بشه رو به مقدارش رو high یا low تعریف نکردی که بخای بعدن بهش دستور روشن خاموش بدی…
pinMode(16,OUTPUT);
digitalWrite(16,HIGH);
سلام
نیازی نیست در ابتدای برنامه برای پین مقداری تعریف کرد و فقط تعریف پین مورد نظر به عنوان خروجی کافیست
سلام. بنده یه سوالی داشتم لطفا راهنماییم کنید
بنده میخوام با کمک برد آردوینو محتوای یه فایل txt رو درون یه متغیر مثلا MyText بریزم. چجوری میتونم این کار رو بکنم؟ آیا از طریق یه لینک هم میشه اینکار رو کرد؟
مثلا به این شکل باشه
String MyText = LoadString(“Good/New/matn.txt”); // zzzzzz
با سلام
لطفا سوالات را تنها از طریق یک بخش پرسیده و دنبال کنید. از ارسال سوال در پست های مختلف خودداری نمایید.
لطفا بفرمایید این سوال رو کی میتونه حل کنه و بنده هم از ایشون بپرسم. کار خیلی ساده ایه ولی هیچ جایی آموزشی براش پیدا نکردم
من کار نکردم ولی چک کنید ببینید این به کارتون میاد یا نه:
pastebin.com/Pe5x4C70
مچکرم
سلام من قبلا با کامپایلرهای codevision و keil کار کردم و دفعه اولمه با کامپایلر آردوینو کار میکنم.لطفا راهنمایی بفرمایید که چطور هدر پروژه دانلود شده از سایت رو ( ESP8266WiFi.h ) به پروژه add کنم تا ارور عدم شناسایی این هدر رو نده.
هدرم رو از قسمت manage librareis اضافه کردم این بخشش حل شد.
الان مشکل چیه دقیقا؟
سلام
شما این مطلب را بخونید آموزش اضافه کردن بورد esp8266 به آردوینو است:
آموزش نصب و راه اندازی برد کنترل IOT اینترنت اشیاء Wemos D1 Mini
ممنون از توضیحاتتون.
سلام مدم من D-link هرچی گشتم تو اون مسیری که گفتید همچین تنظیماتی پیدا نکردم لطفا بگید چکار کنم
سلام
بسته به مدل مودم متفاوت است
از راهنمایی سایت no-ip برای این کار استفاده کنید
سلام
یه بار دیگم پیام دادم من توی سایت ثبت نام کردم ولی هیچ پیام تاییدی به ایمیلم ارسال نمیشه
سلام مجدد
کاربر گرامی جناب آقای بهرامی، در پاسخ قبلی هم بنده اعلام کردم، با این ایمیل هیچ حساب کاربری و پرداختی وجود ندارد.
سلام
من وقتی دفعه اول ادرس ای پی رو توی مرورگر میزنم همه چی درست کار میکنه ولی بعد چند دقیقه که امتحان میکنم یه پیغام تو مرورگر میاد که نوشته 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;
.
.
.
.
سلام
بقیه کد معلوم نیست که بتونم راهنمایی کنم
سلام یه سوال دیگه داشتم میخواستم ببینم میشه این پروژه به حالت access point درش آورد
سلام
منظورتون را متوجه نمیشم؟
این پروژه به این منظور ایجاد شده که به وسیله اینترنت 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();
}
شما باید از s1 استفاده کنید که داخلش عدد روبروی switch1 ذخیره میشه و برنامه خودتون را بنویسید
ببخشید متوجه نشدم میشه راهنمایی کنید
یه سوال دیگه داشتم میخواستم یه صفحه HTMl به این اضافه کنم که اطلاعات وای فای و پسوردش و بتونم بدون هربار برنامه ریزی تغیر بدم
ببینید عددی که داخل متغییر s1 هستش همون چیزیه که شما نیاز دارید
برای اینکه صفحه وای فای اتوماتیک هم داشته باشید به این آموزش مراجعه کنید
سلام وقت بخیر
از این طریق که شما فرمودید تا جایی که مودم ساپورت کنه امکان اتصال وجود دارد من قصد دارم ماژوول را بدون محدودیت فاصله و از طریق اینترنت کنترل کنم میشه راهنماییم بفرمایید
سلام وقت شما هم بخیر
منظورتون را متوجه نمیشم
در این آموزش اتصال ماژول به اینترنت آموزش داده شده است و میتونید از طریق اینترنت ماژولتون را کنترل کنید
سلام
من این برد رو تو شبکه داخلی دارم و کنترلش میکنم
یه آیپی بهش دادم و روی همون پورت وب هست
حالا میخوام لینکش رو توی شبکه جهانی استفاده کنم
با noip یه آیپی گرفتم و ddns رو روی مودمم راه اندازی کردم
حالا لینکی که در شبکه جهانی منو وصل کنه به این برد به چه صورت میشه؟؟
لینک در شبکه داخلی : http://WEMOSIP/LED1/1
در شبکه جهانی به چه صورت ؟؟؟
با سلام
لینک بصورت زیر خواهد بود:
http://(your-address).ddns.net:(your-port)/LED1/1
سلام
با esp8266 به تنهایی هم میشه به اینترنت وصل شد؟
سلام
esp8266 یک ماژول وای فای است و برای اتصال به اینترنت به مودم نیاز دارد
تو این اموزش از ویموس استفاده کردین و به اینترنت متصل شدین
میشه با nodemcu هم به اینترنت جهانی متصل شد؟
سلام بله تفاوتی ندارد و هسته اصلی هر دو esp8266 میباشد
میشه کد ها رو رایگان در اختیارم بزارید؟
میشه کد ها رو رایگان در اختیارم بزارید؟ لطفا؟
برخی کد ها دسترسی رایگان دارند ولی برخی کد ها نیازمند ثبت نام در سایت هستند و امکان ارائه رایگان آنها نیست
با سلام ،میخواستم از طریق یک سیگارت تلفن همراه به یک مرکز موتورخانه ای فرمان متنوعی بدم که داری چندین دوربین مداربسته بیسیم هم واز طرق تلفن همراه این کار اعمال شود ، آیا قابل اجراست یا نه در صورت امکان راهنمائی بفرمائید متشکریم
با سلام
چه نوع فرمان هایی مد نظر شماست؟
نمیشه رله با کانال بیشتری بهش متصل کرد
اگه میشه به چه چیزایی نیاز داره ممنون چون یک کاناال خیلی کمه.
هیچ مشکلی نداره شما چندین رله میتونید به برد خودتون به شرط خالی بودن پین دیجیتال برد اضافه کنید و داخل برنامه فقط کافیه پین مورد نظری که رله به آن متصل است را تعریف کنید
درود بر شما
در این سایت:
https://www.hackster.io/yash-pawar/led-control-using-google-assistant-edc1ae
طراح از برد Bolt IoT Bolt WiFi Module استفاده میکنه! و شما هم از Wemos، اما جالب اینجاست که پردازنده هر دو ESP8266 هست. خب من توی خونه ESP-12F رو دارم، خب ۲ مورد یکم برای راه اندازی چنین پروژه ای تا این جا یکسان بود! اما برای مورد ۳ام هم، همچنین است؟ و باید منم همین روند رو در پیش بگیرم؟!
یا اگر سایت بیرونی را میشناسید، معرفی کنید، سپاسگزارم.
با سلام
تمامی بورد هایی که پردازنده آنها esp8266 هستند یکسان هستند و تفاوتی در آنها وجود ندارند
سلام، در پنل مودم من در آدرس NAT اول از همه باید حلقه مجازی رو انخاب بکنی که شامل PVC0 , PVC1 , …. هست.کدام حلقه باید انتخاب شود ؟
در سایت noip برای دامنه، آی پی برد باید وارد شود یا چیز دیگری؟ noip خودش به صورت خودکار آی پی کامپیوتر را وارد میکند و نمیشود تغییرش داد. اگر باید تغییر داد به چه صورت است؟
من تمام کار هایی که گفتید رو انجام دادم اما باز هم به نتیجه نرسیدم و فقط با استفاده از آی پی محلی کار میکند.
با سلام، در مورد Virtual Circuit شما از بین PVC0 تا PVC7 حق انتخاب دارید و این مورد مربوط سرویس دهنده شما است، اما در مجموع بهترین گزینه PVC2 است. در سایت no-ip با افزودن یک هاست و وارد کردن ip متغیر و در ادامه تنظیمات مربوط میتوانید به نتیجه مورد نظر برسید.
سلام خسته نباشید من یک مداری رو با esp8266 طراحی کردم و یک اپلیکیشن هم با بیسیک فور اندروید طراحی کردم خواستم ببینم میتونم یه کاری کنم که از طریق اینترنت و از راه دور با اپلیکیشن بتونم ماژول رو کنترل کنم؟ هر منبعی رو تو اینترنت میگردم چیزی که میخوام رو پیدا نمیکنم ممنون میشم کمکم کنید
با سلام
بله راهکارهای مختلفی برای این منظور وجود دارند. یکی از همانها استفاده از IP استاتیک هست.
سلام امکان این هست که با استفاده از esp گوشی رو به رله ها که متصل میکنیم اینکارو کرد یعنی کاری کنیم که از نظر نرم افزاری دستیار صوتی روی گوشی باشه و اون دستیار به esp وصل بشه
با سلام
بله به سادگی قابل انجام است. توسط نرم افزارهایی مانند iFTTT میتوانید اقدام کنید.
سلام. من کد را امتحان کردم . وقتی به شبکه داخلی وصل هستم. آیپی عمومی مودم را بدون dns وارد گوگل که میکنم . کار میکند. اما وقتی به یک شبکه دیگر که متصل هستم با وارد کردن آیپی عمومی مودم در گوگل صفحه بالا نمی آید . مشکل از کجاست؟
با سلام
سرویس dns شما به درستی تنظیم نشده است.