کنترل وسایل برقی با WIFI بر پایه ماژول وای فای ESP8266 صورت میگیرد. انواع وسایل برقی را از طریق شبکه وای فای کنترل میکنیم. در این پروژه توسط اپلیکیشن اندرویدی Android به برد ESP8266 فرمان میدهیم. هر بخش از قسمت فرمان اپلیکیشن قابلیت کنترل یا فرمان به یک سری از دستورات AT را دارد. در انتها برای اعضا دیجی اسپارک کد APK اپلیکیشن را قرار دادهایم. در ادامه این آموزش با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.
برد ESP8266 وای فای
امروزه ماژول ESP8266 کاربرد بسیار زیادی در هوشمند سازی و کنترل از راه دور دارد. برنامه نویسی برای ماژول ESP8266 با ARDUINO توسط تراشه Atmega328 بسیار پر کاربر است. به کمک آن توسط تلفن همراه هوشمند امکان کنترل وسایل برقی با WIFI فراهم خواهد شد. یکی از انواع ماژولهای WIFI مدل ESP8266-01 میباشد. این ماژول با توجه به قیمت مناسب، انتخاب اقتصادی در بسیاری از پروژهها میباشد. در این آموزش قصد داریم با استفاده از یک برد اردینو و ماژول esp8266 روال کنترل وسایل برقی با WIFI را پیش ببریم. در این حالت برد ESP به صورت سرور راه اندازی و با استفاده از موبایل چهار عدد LED را روشن و خاموش کنیم. در ادامه این آموزش با استفاده از این ماژول می توانید پروژههای خود را مجهز Wi-Fi کنید.
اتصالات مدار
- پایههای VCC و CH_PD ماژول وایفای به ولتاژ مثبت ۳٫۳ ولت
- پایه GND ماژول به منفی
- TX ماژول وایفای به پایه۷ اردینو
- RX ماژول وایفای به پایه۸ اردینو
- پایه های ۹ و۱۰و۱۱و۱۳ آردوینو خروجی برای اتصال LED
کد کنترل وسایل برقی با WIFI
کدهای آردوینو جهت اتصال برد ESP8266 به اپلیکیشن اندرویدی طراحی شدهاند. این کدها را کپی کرده و در نرم افزار آردوینو IDE قرار دهید. چنانچه روش کار با این نرم افزار را نمیدانید از آموزش نرم افزار Arduino IDE استفاده کنید. دقت کنید که این کدها روی برد آردوینو آپلود شده و به ماژول ESP8266 فرمان میدهد. در این روش برد ESP در حالت Slave قرار میگیرد. دقت داشته باشید که در این بخش از آموزش روی برد وای فای هیچ رمز عبوری تنظیم نشده است. از اینرو بدون نیاز به وارد کردن رمز عبور این بخش را متصل خواهیم کرد.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
#include <SoftwareSerial.h> // کتاب خانه سریال SoftwareSerial mySerial(8, 7); // RX, TX //معرفی پایه های rx و tx //************************************ void setup() { Serial.begin(9600);// سرعت انقال دیتا در سریال مانیتور mySerial.begin(9600);//سرعت انقال دیتا برای ماژول esp mySerial.setTimeout(10) ;//وقتی دستور serial.read رو میزنیم، به اندازه اون تاخیری که داخل اون دستور مشخص کردیم برنامه صبر میکنه و در این بازه اطلاعات رو میخونه //************************************ pin config ************** pinMode(9, OUTPUT); pinMode(10, OUTPUT); pinMode(11, OUTPUT); pinMode(13, OUTPUT); //************************************ pin config end************** //************************************ ESP8266 AT ************** mySerial.print("AT+CWSAP=\"digi wifi contorol\",\"\",5,0\r\n");// دستور انتخواب اسم برای ماژول delay(10); mySerial.print("AT+CWMODE=2\r\n"); delay(10); //این دوتا دستور که از دیتاشیت at کامند هست mySerial.print("AT+CIPMUX=1\r\n"); delay(10); mySerial.print("AT+CIPAP=\"192.168.4.1\r\n"); // IP = 192.168.4.1 // مشخص کردن IP delay(10); mySerial.print("AT+CIPSERVER=1,4444\r\n"); // port = 4444 delay(10); //************************************ ESP8266 AT end************** } void loop() { //***************************** READ DATA ********************** if (mySerial.available()) { String st = mySerial.readString() ; String LED = st.substring(11, 12) ; //###################################### DEBAGE############# Serial.print("input code: "); Serial.println(st); //***************************** led contorol ************************** if (LED=="A"){ digitalWrite(9, HIGH); } if (LED=="a"){ digitalWrite(9, LOW); } if (LED=="B"){ digitalWrite(10, HIGH); } if (LED=="b"){ digitalWrite(10, LOW); } if (LED=="C"){ digitalWrite(11, HIGH); } if (LED=="c"){ digitalWrite(11, LOW); } if (LED=="D"){ digitalWrite(13, HIGH); } if (LED=="d"){ digitalWrite(13, LOW); } //***************************************************************** if (Serial.available()) { mySerial.write(Serial.read());} } } |
اپلیکیشن اندروید Android
برای کنترل برد ESP8266 از راه دور نیاز به اپلیکیشن داریم. در محیط Basic for Android یک اپلیکیشن ساده جهت ارتباط با انواع بردهای ESP8266 طراحی کردهایم. این اپلیکیشن به صورت فایل APK برای کاریران دیجی اسپارک قابل دانلود میباشد. در ادامه روش اتصال اپلیکیشن اندرویدی به برد ESP8266 را به صورت تصویری آموزش خواهم داد. دقت داشته باشید پیش از این مرحله بایستی کدها را روی برد ESP آپلود کرده باشید. مرحله اول وارد بخش تنظیمات wifi در تلفن همراه میشویم. سپس در لیست Wi-Fi نام وای فای که در کدهای آردوینو مشخص کردهایم را انتخاب میکنیم. در این آموزش از عنوان Digi Wifi Control استفاده کردهایم. به تصویر زیر دقت کنید.
دقت داشته باشید که قبل از اجرای برنامه بایستی فیلترشکنها از روی تلفن خاموش شوند.
پس از این مرحله، باید اپلیکیشن Digi Wifi Control را اجرا کنیم. برای این منظور آیکون برنامه را پیدا کرده و روی آن کلیک کنید. سپس با تصویر زیر روبرو میشوید.
در این قسمت روی گزینه Connect کلیک کنید. در صورتی که مرحله قبلی یعنی اتصال به Wifi را درست اجرا کرده باشید، این آیکون به رنگ سبز تغییر خواهد کرد. به تصویر زیر دقت کنید.
در این مرحله آماده فرمان به برد ESP8266 هستیم. همانطور که در تصویر زیر مشاهده میکنید، با کلیک روی گزینههای داخل صفحه، وضعیت LED در خروجی تغییر خواهد کرد.
وسایل مورد نیاز مدار
- برد آردینو UNO
- ماژول ESP8266
- سیم
- LED
- مقاومت
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
پروژه و دریافت بن ارسال رایگان
برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و یا حتی مدار جدیدی تعریف کنید. سپس از اجرای کار فیلم گرفته و در شبکههای اجتماعی از جمله آپارات و اینستگرام، با هشتگهای دیجی_اسپارک و دانشجوکیت و digispark و daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۲۰۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید. در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.
سلام به جای LEDمیشه ماژول رله گذاشت
سلام بله امکانش هست
سلام وقت بخیر بهترین حالت برای برقراری ارتباط دو طرفه بین ESP8266 و برنامه اندروید چیه؟مثلا می خوام با نوشتن بک برنامه اندروید و ارتباط وای فای و زدن یک کلید در اندروید دمای اتاق رو بهم داخل برنامه نشون بده؟ و یا با زدن یکی کلید در برنامه فرمان برای رله ارسال بشه. می خوام از برنامه اندرویدی خودم استفاده کنم برای این کار و ارتباط و تعامل دو طرفه(ارسال و در یافت اطلاعات) بین برنامه و برد ESP برقرار باشه. ممنونم
دستورات تو برنامه اندروید هم مانند وب ارسال میشه؟
مثلاً برای روشن کردن رله من پارامتر ON رو جلوی IP مربوطه مینویسم و ارسال میکنم. برنامه اندروید هم همین کار رو میکنه یا روش ارتباط دیگه ای هم هست.
باید با توجه به برنانه اندروید که دارین در اردینیو ایپی و پورت تظیم کنید
برای کنترل کردن رله باید با توجه به دیتایی که در برنانه اندروید هست در اردینو تغییر بدین
برای دریافت تما نیازی به تغییرات زیادب در برنامه هست که نیاز به شناخت و مقداری تجربه هستش
اگه نیاز به راه اندازی داشتن برای دما از طریق تیکیت درخواست بدین تشکر
سلام
چطور می تونم سورس کد اندرویدی این پروژه رو داشته باشم
سلام این سرس کد برای دیجی اسپارک طراحی شد و نسخه اپدیت شده هم در حال طراحی و ساخت هستش
برای داشتن سرس کد تیکت با موضوع سفارش برنامه اندروید با توجه به نیازتون و تعداد رله یا ال ایدی هایی که میخوایین کنترل کنید ارسال کنید
سلام
چطور تیکت ثبت کنم؟
از طریق ادرس زیر میوانید اقدام کنید
پرتال پشتیبانی به آدرس
Daneshjookit.com/support
سلام .برنامه ای که برای کنرل ماژول esp8266 در بالا نوشتین رو بر روی اردوینو پروگرام کردم و ارور هم نداشت .ولی اسم وای وای چیز دیگری بالا می آید و اسمی نیست که داخل برنامه نوشتین همه اتصالات ماژول به برد صحیح می باشد .مشکل چیست؟
سلام به احتمال زیاد در حافظه ماژولesp شما اسم دیگری ذخره کردین که باید به کمک دستوراتatکامنت ماژول را ریست کنید
و بازهم هم با دقت بیشتری پایه هارو چک کنید جایtxوrx برعکس نباشه
ببخشید مزاحمتون میشم نگاه کردم پایه هرو جابه جا زدم درستشون کردم اما فرقی نکرده
برای من اصلا ماژول وای فای توی اویلبل نتورک بالا نمیاد مشکل چه چیزهایی میتونه باشه
ممنون میشم اگه بهم ایمیل بدید که سریع تر از جوابتون باخبر بشم و بتونم از عیب ها عکس ارسال کنم
با سلام
کاربر گرامی منتظر باشید تا نویسنده پست، به شما پاسخ بدهند. در حال حاضر فقط و فقط از طریق بخش نظرات امکان رفع عیب وجود دارد.
برای من اصلا ماژول وای فای توی اویلبل نتورک بالا نمیاد مشکل چه چیزهایی میتونه باشه
ممنون میشم اگه بهم ایمیل بدید که سریع تر از جوابتون باخبر بشم و بتونم از عیب ها عکس ارسال کنم
سلام .
اگه اسم ماژول نمایش داده نمیشه چندین دلیل هستش
تنظیمات ماژول باید ریست شود
پایه های ماژول چک شود
ایا اصلا ماژول شما سال هست
میشه در مورد حالت اول و سوم بیشتر توضیح بدید
سلام
با دستوراتat coment باید تنطیمات رو ریست کنید
سلام خسته نباشید ببخشید من پروژه رو کامل بستم و نرم افزاررو هم ریختم روی گوشی ولی هر کاری کردم کانکت نمیشه کرد به وای فای و ایکون سبز نمیشه .
سلام احتمال زیاد شما از فیلتر شکن استفاده میکند روی گوشی و یکی ازدلایل همین است.
سلام با کمکتون همونطور که گفتید وایفارو درست کردم اما بجای اسم اصلی اسم دیگه ای میاد در بالا شما گفتید که باید از تنظیمات at ریست بشه اما مال من میزنم atاکی نمیاد که هیچ همو کلمه هم که زدم هم گم میشه ممنون میشم چوابمو بدید
با سلام علت های زیادی هست مثل نرخ ارتباطی
مثل اتصال اشتباهtx و rx
سلام من تمام کارایی رو که گفته بودید کردم کد ها هم روی اردوینو اپلود شدن اما ماژول فقط یه الیدی قرمز روشن میشه و کار نمیکنه ممنون میشم جوابمو بدید
سلام لطفا از نظر بررسی سالم بودنماژول واتصالات مطمئن شوید
سلام چرا برای من وقتی وای فای رو روشن میکنم در گوشی اصلا نمی گیرتش ودر صفحه وای فای وجود ندارد.
ببخشید اگر ماژول بخواهد درست کار کند چه چراغی روشن میشود.
باسلام ماژول های خیای وقت هست که فقط ۱ چراغ ابی دارن که در صورت دریافت یا ارسال چشمک میزند. اینکه شما میفرمایید در لیست وای فای نیست علت تنظیمات خود espهست که شما باید با دستورات at ان را تنظیم کنید . باد رید و ….
سلام . دستور at چیه و چجوری باید به کار ببریمش؟؟
میشه لطفا دستور at رو توضیح دهید.ممنون
لطفا در جواب بنویسید
با سلام
به لینک زیر مراجعه کنید. سوال شما بسیار کلی است و نیاز به توضیحات زیادی دارد که از بخش نظرات خارج است.
Ad·www.alldatasheet.com/Ep8266
Ep8266 Datasheet PDF | Free Ep8266 Download | alldatasheet.com
با سلام و خسته نباشید
ببخشید در این پروژه می تونیم از راه دور یعنی خارج از محیطی که esp برد میده کنترلش کرد؟
یعنی esp به مودم داخل منزل متصل میشه و ما می تونیم از طریق اپلیکیشن از بیرون خونه با متصل شدن به اینترنت و اجرا نرم افزار تولید شده میشه کنترل کرد؟
با سلام
من دو مشکل داشتم یکی : وقتی با موبایل به esp وصل می شدم نامی که در برنامه گفته بودید نام دیگری را نشان می داد و دوم من وقتی به esp وصل شدم نتوانستم با برنامه به esp وصل بشم تا ال یدی هام رو کنترل کنم. مشک کار من درکجاست ؟
با سلام شما باید ماژولespرا از طریق دیتاشیت و دستور at ریست کنید تا با برنامه ست شود
سلام و تشکر از شما میخواستم بدونم آیا من میتونم وقتی کد رو به جای لامپ برای روشن خاموش شدن موتور بنویسم ازش خروجی بگیرم؟ و آردوینو رو وصل کنم مستقیما به درایو یا اینورتر( با توجه به اینکه ورودی اینورتر RS485 میباشد)؟
سلام خسته نباشید ببخشید میخواستم بدونم با این ماژول میتونم خروجی ۱۲v بگیرم برای راه اندازی موتور dc
سلام ممنون از آموزش خوبتون من می خواستم یک شیر برقی رو از این طریق کنترل کنم ممنون میشم راهنماییم کنید