مقدمه
یکی از معروف ترین و ارزان ترین آی سی های دارای پروتکل ارتباطی TCP/IP ( شبکه بی سیم Wifi تحت استاندارد IEEE802.11b/g/n ) ، چیپ ESP8266 ساخت شرکت چینی Espressif System می باشد که قابلیت ارتباط سریال توسط میکروکنترلر را دارد. در شکل زیر این چیپ را مشاهده می کنید.
این چیپ در ساخت ماژول های خانواده ESP توسط تولید کننده دیگری به نام Al-thinker به کار رفته است. ESP-01 برای اولین بار در سال 2014 طراحی و ساخته شد و بعد از آن بیش از 13 سری دیگر نیز طراحی و ساخته شد که دارای بهبودها و قابلیت های بیشتری نسبت به سری قبل خود می باشند. در شکل زیر انواع مختلف این خانواده را مشاهده می کنید.
در ساخت تمامی این ماژول ها از چیپ ESP8266 استفاده شده است. در ایران مدل های ESP-01 ( بدون شیلد ، با آنتن روی بورد ) ، ESP-07 ( دارای شیلد و سوکت آنتن ) و ESP-12E ( دارای شیلد و آنتن روی بورد ) وجود دارد.
ولتاژ تغذیه و پایه های این ماژول ها 3.3 ولت است. فرکانس کاری آن2.4Ghz و پروتکل مورد استفاده برای ارسال/دریافت دیتا در آن TCP/IP با استفاده از تکنولوژی WiFi می باشد. امکان ارتباط با وسیله های جانبی تحت پروتکل سریال UART در تمامی ماژولها وجود دارد. بنابراین دو پایه Rx و Tx به ترتیب برای دریافت و ارسال دیتا به کار می رود که تحت عنوان AT Command این کار صورت می گیرد.
معرفی ماژول ESP-01
پایه های این ماژول را در شکل زیر مشاهده می کنید. همانطور که در شکل مشاهده می کنید، پروتکل مورد استفاده برای راه اندازی ماژولUART می باشد.
همانطور که در شکل مشاهده می کنید، پروتکل مورد استفاده برای راه اندازی ماژول UART می باشد. پایه Rx و Tx به ترتیب برای دریافت و ارسال دیتا به کار می رود. دستوراتی که برای کار با این ماژول وجود دارد تحت عنوان AT Command می باشد.
ماژول ESP-12E
پایه های این ماژول را در شکل زیر مشاهده می کنید. این ماژول قابلیت های بیشتری نسبت به ESP-01 دارد. به طوری که می تواند علاوه بر پروتکل UART با SPI نیز راه اندازی شود. همچنین در کنار این ماژول پایه های GPIO بیشتری وجود دارد که میتواند مستقیما مورد استفاده قرار گیرد.
لینک خرید مستقیم ماژول ESP12-E از فروشگاه الکترو ولت
مدار راه اندازی ESP-12
نکته 1: در شکل فوق ماژول به صورت ارتباط UART راه اندازی شده است. برای اینکه ماژول در حالت ارتباط UART قرار گیرد باید GPIO05 ، GPIO02 و GPIO15 به ترتیب به 3.3v ، 3.3v و GND وصل شود.
نکته 2 : در حالت عادی نمیتوان ازESP-07 و ESP-12 روی برد بورد استفاده کرد. برای این منظور میتوان از بورد مبدل همانند شکل زیر استفاده کرد.
راه اندازی آسان ماژول ESP-01
با استفاده از یک ماژول USB به سریال FT232 و مقداری سیم به راحتی و بدون هیچ قطعه اضافی میتوان این ماژول را راه اندازی نمود. در این حالت تغذیه ماژول از 3.3v موجود روی بورد FT232 تامین می شود. شکل زیر مدار تکمیل شده را نشان می دهد.
لینک خرید ماژول FT232 از فروشگاه
معرفی دستورات AT Command
ماژول های خانواده ESP دستوراتی را به صورت کاراکتری دریافت می کنند و به همان صورت نیز به آنها پاسخ می دهند. در ابتدای همه دستورات دو کاراکتر AT ارسال می شوند لذا به مجموعه آن دستورات AT Command گویند. در انتهای هر دستور نیز کاراکتر Enter باید ارسال شود تا ماژول دستور مورد نظر را انجام داده و پاسخ آن را ارسال نماید. برای مثال دستور AT را در نظر بگیرید. این دستور برای تست سلامت ارتباط با ماژول می باشد. این دستور به صورت زیر به ماژول ارسال شده و در صورت صحیح بودن ارتباط ، ماژول در پاسخ به آن OK می دهد.
1 2 |
AT[Enter] OK |
نکته : کد ASCII کاراکتر Enter در مبنای Hex برابر 13 می باشد.
دستورات AT کار با ماژول ESP8266
عملیات | دستور(به ماژول ارسال می شود) | پاسخ(از ماژول دریافت می شود) |
تست سلامت اتصال ماژول | AT | OK |
ریستارت کردن ماژول | AT+RST | OK [System Ready, Vendor:www.ai-thinker.com] |
مشاهده ورژن نرم افزاری ماژول | AT+GMR | 00160901
OK |
لیست تمام دستگاه های WiFi فعال در اطراف ماژول را نشان می دهد | AT+CWLAP | +CWLAP:(4,”RochefortSurLac”,38,”70:62:b8:6f:6d:58″,1)
+CWLAP:(4,”LiliPad2.4″,-83,”f8:7b:8c:1e:7c:6d”,1) OK |
اتصال به یک دستگاه WiFi با داشتن نام و پسورد آن | AT+CWJAP=”SSID”,”Password” | +CWJAP:SSID
OK |
قطع اتصال به یک دستگاه | AT+CWQAP | OK |
آدرس آی پی Localماژول را نشان می دهد | AT+CIFSR | +CIFSR:192.168.4.1
OK |
تنظیمات خود ماژول برای اتصال دستگاه های دیگر را تغییر می دهد | AT+ CWSAP= “ssid”,”pwd”,<chl>, <ecn> | OK |
تعیین حالت عملکرد WiFi :
1- حالت station (کلاینت) 2- حالت AccesPoint (سرور) 3- کار همزمان در هر دو حالت فوق |
AT+CWMODE=1 | +CWMODE:1
OK |
AT+CWMODE=2 | +CWMODE:2
OK |
|
AT+CWMODE=3 | +CWMODE:3
OK |
|
اتصال به یک سرور
id = 0-4 type = TCP/UDP addr = IP address port= port |
(When:CIPMUX=0)
AT+CIPSTART=<type>,<addr>,<port> |
OK |
(when:CIPMUX=1)
AT+CIPSTART=<id>,<type>,<addr>, <port> |
OK | |
تعداد خطوط اتصال
0: Single 1: Multiple |
AT+ CIPMUX=0 |
OK |
AT+ CIPMUX=1 |
OK |
|
آی پی همه دستگاه های کلاینتی که به ماژول متصل شده است را به همراه جزئیات آن نشان می دهد | AT+CWLIF | AT+CWLIF
192.168.4.100,3c:bf:bd:61:77:b7 OK
|
ارسال دیتا به پروتکل TCP/IP | (CIPMUX=0)
AT+CIPSEND=<length>; |
>
SEND OK |
(CIPMUX=1)
AT+CIPSEND= <id>,<length> |
>
SEND OK |
|
قطع اتصال
id:1-4 |
(CIPMUX=1)
AT+CIPCLOSE=<id> |
OK |
(CIPMUX=0)
AT+CIPCLOSE |
OK | |
ساخت یک سرور
mode :0 for delete 1 for create |
(only when CIPMUX=1)
AT+ CIPSERVER= <mode>[,<port>] |
OK |
تنظیم باودریت | AT+CIOBAUD=<baud>
baud: 9600, 19200, 38400, 74880,115200,230400,460800,921600 |
+CIOBAUD:9600 OK |
آی پی آدرس دستگاه را چک می کند | AT+CIFSR | AT+CIFSR 192.168.0.106
OK |
دریافت دیتا از کلاینت | +IPD | (CIPMUX=0): + IPD, <len>:
(CIPMUX=1): + IPD, <id>, <len>: <data> |
تنظیم دلخواه آدرس MACماژول در حالت Station | AT+CIPSTAMAC=”mac” | OK |
تنظیم دلخواه آدرس MAC ماژول در حالت AccesPoint | AT+CIPAPMAC=”mac” | OK |
تنظیم دلخواه آدرس IP ماژول در حالت Station | AT+CIPSTA=”ip” | OK |
تنظیم دلخواه آدرس IP ماژول در حالت AccessPoint | AT+CIPAP=”ip” | OK |
تذکر : بعد از تمامی این دستورات باید کاراکتر Enter به ماژول ارسال شود.
نکته : ارسال هر Packet دیتا در پروتکل TCP/IP تقریبا 20 میلی ثانیه طول می کشد و حداکثر تعداد بایت هایی که میتواند در یک Packet ارسال شود 2048 بایت می باشد.
انجام تنظیمات اولیه ماژول
جهت ارتباط با ماژول از نرم افزارهای ترمینال استفاده می شود. نرم افزارهای ترمینال متفاوتی وجود دارند که ما در اینجا از نرم افزار Serial_Port_Terminal.exeاستفاده می کنیم. درون این نرم افزار به محض اتصال کابل USB به کامپیوتر، با زدن Refresh شماره پورت COM شناسایی شده در بخش Available Ports ، نمایان می شود. سپس با تنظیم باودریت نرم افزار روی 115200 و ارسال AT به ماژول میتوان OK را دریافت کرد. مراحل کار را روی تصویر شکل زیر مشاهده می کنید.
در مرحله بعد قسمت Send Data را پاک کرده و دستور AT+CWMODE=3 را وارد می کنیم.
این ماژول در 3 مد زیر کار میکند :
- STATION : ماژول میتواند به دستگاه های WiFi اطراف خود متصل شود
- Acces Point : ماژول به عنوان یک سرویس دهنده WiFi عمل می کند و دستگاه های دیگر میتوانند به آن متصل شوند.
- both : در این مد ماژول به طور همزمان در دو حالت بالایی قرار میگیرد.
بهتر است که ماژول را با دستور AT+CWMODE=3 به مد BOTH ببریم.
با دستور AT+CWSAP? میتوان اطلاعات کنونی SSID، Password ،CHL و ENC ماژول را از خود ماژول بدست آوریم. SSID نامی است که ماژول WiFi به همگان نشان می دهد. Password رمز عبور برای اتصال به آن است. CHL آی دی کانال متصل شده به دستگاه و ENC نوع پروتکل رمزشده Encryption را مشخص می کند. در زیر انواع پروتکل های رمز برای اتصال به WiFi را مشاهده می کنید. عدد CHL معمولا 0 و عدد ENC بهتر است روی 4 باشد.
نوع پروتکل رمز | عدد ENC | توضیحات |
Open | 0 | بدون رمز نگاری |
WEP | 1 | – |
WPA_PSK | 2 | – |
WPA2_PSK | 3 | – |
WPA_WPA2_PSK | 4 | قوی ترین نوع رمز |
همانطور که مشاهده می کنید، در پاسخ به دستور AT+CWSAP? ماژول SSID و Password را به همراه اطلاعات CH,ENC,Other ارسال کرده است. بنابراین در اولین راه اندازی نام ماژول Al-THINKER_82B46D ، بدون پسورد ، کانال 1 و بدون رمز نگاری می باشد.
حال می خواهیم با استفاده از دستور AT+CWSAP=”esp8266”,”1234”,1,4 ، مشخصات اولیه ماژول را به دلخواه خود تغییر دهیم.
نکته : در رمز نگاری های پیشرفته تر ( شماره 3 و 4 ) برای پسورد کوتاه و ساده Error می گیرد.
اگر بار دیگر دستور AT+CWSAP?[Enter] را وارد کنیم، مشاهده می کنیم که مشخصات ماژول تغییر کرده است.
راه اندازی ماژول ESP8266 به صورت سرور
در این مرحله ماژول را به صورت Server ( سرویس دهنده WiFi ) راه اندازی خواهیم کرد و توسط موبایل و لپ تاپ به آن وصل می شویم و به ارسال و دریافت دیتا می پردازیم. برای ارتباط با ماژول در دستگاه های اندرویدی نیاز به نرم افزار SocketProtocol و در کامپیوتر نیاز به نرم افزار ServerClient داریم.
برای راه اندازی یک سرور در ماژول ESP8266 کافی است دستورات زیر را به ترتیب به ماژول ارسال کنیم :
1 2 |
AT+CIPMUX=mode[Enter] AT+CIPSERVER=mode,port[Enter] |
که در آن mode=1 و port بسته به نوع اتصال میتواند یکی از اعداد زیر باشد:
- 80 : پورت http برای اتصال به اینترنت
- 8080 : پورت http در شبکه هایی که پورت 80 بلاک است
- 23 : پورت Telnet
- 8888 : یک پورت خالی
سپس در صورتی که بخواهیم توسط موبایل به ماژول متصل شویم ابتدا باید با وارد کردن پسورد 123456789 به ماژول متصل شویم. شکل زیر این اتصال را نشان می دهد.
سپس نرم افزار SocketProtocol را باز کرده و در قسمت Client ، آی پی ماژول ( 192.168.4.1 ) و پورتی 8888 که سرور روی آن ساختیم را وارد می کنیم سپس Connect را لمس می کنیم. در صورت متصل شدن عبارت Socket Connected نمایش داده می شود. شکل زیر این اتصال را نشان می دهد.
در همین زمانی که گوشی متصل به ماژول متصل می شود اگر به نرم افزار Serial_Port_Terminal مراجعه کنیم، مشاهده می شود که عبارت 0,CONNECT توسط ماژول پاسخ داده شده است.
همچنین زمانی که درون نرم افزار سوکت پروتکل چیزی بنویسیم و بفرستیم در طرف ماژول با ساختار زیر به نمایش در می آید :
1 |
+IPD,id,length:<Received data> |
که در آن id ، شماره اتصال و length طول دیتا دریافت شده می باشد.
برای مثال در شکل زیر یک عبارت از گوشی برای ماژول ارسال کردیم.
دیتایی که در سمت ماژول دریافت می شود به صورت زیر است:
برعکس حالت فوق هم میتوانیم عمل نماییم. یعنی ماژول به عنوان فرستنده و کامپیوتر به عنوان گیرنده در شبکه عمل کند. بدین منظور از دستور AT+CIPSEND به صورت زیر استفاده می شود.
1 |
AT+CIPSEND=id,length[Enter] |
که در آن id شماره اتصال و length طول دیتا برای ارسال است.
برای مثال می خواهیم Electrovolt.ir که 14 حرف دارد را ارسال نماییم.
همانطور که مشاهده می کنید ماژول OK می دهد و با ارسال > منتظر دریافت داده می شود. با ارسال عبارت مورد نظر ماژول تعداد بایت های دریافتی و SEND OK را پاسخ می دهد که به معنای موفقیت آمیز بودن ارسال می باشد.
اگر در همین زمان به نرم افزار SocketProtocol روی موبایل نگاه کنیم ، دیتای دریافت شده را در قسمت Answer From Server مشاهده خواهیم کرد.
حال میخواهیم مراحل ارتباطی فوق را در یک کامپیوتر دیگر انجام دهیم و بدینوسیله به انتقال دیتا میان کامپیوتری که به ماژول وصل است و یک لپ تاپ یا PC دیگر بپردازیم. برای این کار نیاز به یک PC دیگر و نرم افزار ServerClient در آن داریم. که در شکل زیر آن را مشاهده می کنید. این نرم افزار دقیقا کار SocketProtocol را درون لپ تاپ یا رایانه شخصی انجام می دهد.
ابتدا میبایست به ماژول ESP-01 با پسورد 123456789 توسط لپ تاپ متصل شد. سپس بعد از وارد کردن IP و PORT به صورت شکل زیر و با کلیک بر روی Connect اگر همه چیز درست باشد ، Connected to Server نمایش داده می شود.
در همین زمانی که لپ تاپ متصل به ماژول می شود اگر به نرم افزار Serial_Port_Terminal مراجعه کنیم، مشاهده می شود که عبارت 0,CONNECT توسط ماژول پاسخ داده شده است. سپس یک عبارت دلخواه به ماژول ارسال کردیم.
زمانی که در طرف کامپیوتر چیزی بفرستیم در طرف ماژول با ساختار زیر به نمایش در می آید :
1 |
+IPD,id,length:<Received data> |
که در آن id ، شماره اتصال و length طول دیتا دریافت شده می باشد.
راه اندازی ماژول ESP8266 به صورت کلاینت
در این بخش با فرض اینکه سرور در محل دیگری راه اندازی شده است و ماژول به عنوان کلاینت ( Client ) به آن متصل شده باشد ، به ارسال/دریافت دیتا خواهیم پرداخت. در مرحله اول می بایست یک سرور ایجاد کرد. برای ایجاد سرور در تلفن همراه از نرم افزار SocketProtocol و برای ایجاد سرور در رایانه های شخصی از نرم افزار ServerClient استفاده می شود. ابتدا به ماژول دستورات زیر را ارسال می کنیم.
1 2 |
AT+CWMODE=3 AT+CIPMUX=1 |
بعد از اتصال wifi گوشی به ماژول به سراغ نرم افزار SocketProtocol و بخش Server مراجعه می کنیم. در این مرحله یک سرور روی پورت دلخواه برای مثال پورت 9999 ایجاد می کنیم. ابتدا عدد پورت را وارد کرده و سپس Listen را میزنیم. عبارت Socket in Listen نمایش داده می شود.
در مرحله بعدی باید آی پی تلفن همراه (سرور) را بدانیم تا بتوانیم توسط ماژول به سرور وصل شویم. نرم افزار SocketProtocol این قابلیت را دارد که با مراجعه به بخش Setting&Help آدرس آی پی تلفن همراه را نشان می دهد. همانطور که در شکل زیر مشاهده می کنید آی پی دستگاه مورد استفاده 192.168.4.2می باشد.
برای اتصال کلاینت به سرور از دستور CIPSTART استفاده می شود. نحوه استفاده از این دستور به صورت زیر است.
1 |
AT+CIPSTART=id,”type”,”ip”,port |
که در آن id شماره ارتباط ، type نوع ارتباط ( TCP یا UDP ) ، ip آدرس آی پی سرور و port شماره پورت جهت اتصال را مشخص می کند. دستور فوق برای ارتباط ماژول ( کلاینت ) به تلفن همراه ( سرور ) به صورت زیر می شود:
1 |
AT+CIPSTART=0,”TCP”,192.168.4.2”,9999 |
بعد از ارسال دستور فوق عبارت 0,CONNECT به معنای اتصال صحیح ، توسط ماژول برگشت داده می شود. بعد از اتصال صحیح سرور و کلاینت می توانند دیتا مبادله نمایند. اگر دیتایی از طرف تلفن همراه ( سرور ) ارسال کنیم در طرف ماژول به صورت زیر دریافت می شود.
1 |
+IPD,id,length:<Received data> |
که در آن id ، شماره اتصال و length طول دیتا دریافت شده می باشد. برای مثال عبارت ELECTROVOLT را بعد از تایپ درون نرم افزار SocketProtocol با زدن SEND برای ماژول ارسال می کنیم.
برای ارسال دیتا از ماژول ( کلاینت ) به تلفن همراه ( سرور ) از دستور CIPSEND به صورت زیر استفاده می شود:
1 |
AT+CIPSEND=id,length |
که در آن id شماره اتصال و length طول دیتا برای ارسال است. برای مثال عبارت TEST را ارسال می کنیم.
بعد از ارسال صحیح عبارت SEND OK توسط ماژول برگشت داده می شود. بعد از ارسال توسط کلاینت دیتای دریافت شده در سمت سرور به نمایش در می آید.
برای خاتمه به ارتباط و بستن آن از دستور CIPCLOSE به صورت زیر استفاده می گردد:
1 |
AT+CIPCLOSE=id |
که در آن id همان آی دی است که در هنگام شروع ارتباط ساخته شده بود.
اتصال ماژول به یک روتر WiFi
در این بخش اصول اتصال به یک روتر WiFi توضیح داده می شود که این روتر میتواند به اینترنت نیز متصل باشد. با ارسال دستور CWLAP ماژول کلیه دستگاه های WiFi اطراف به همراه Mac آدرس و قدرت سیگنال آنها را نشان می دهد.
با استفاده ازدستور AT+CWJAP=”SSID”,PASSWORD” میتوان به هر یک از وسایل اطراف متصل شد. برای مثال به یک روتر WiFi با نام Mohamad متصل شدم.
نکته : زمانی که ماژول به روتر مورد نظر متصل شود ابتدا WIFI CONNECTED پاسخ می دهد و بعد از لحظاتی WIFI GOT IP و OK را به کامپیوتر می فرستد. این نشان می دهد که یک IP منحصر به فرد از طرف روتر برای ماژول ایجاد شده است. این آدرس منحصر به فرد اهمیت زیادی دارد و در ارتباط میان دستگاه های متصل به روتر از آن استفاده می شود.
برای اینکه بفهمیم آی پی ماژول و Access point وصل شده در این اتصال چیست از دستور CIFSR استفاده می کنیم.
در این حالت ماژول به یک شبکه WiFi که یک روتر اینترنت می باشد متصل شده است و مشخصاتی را برای ما ارسال کرده است که شامل آی پی ماژول و آی پی ماژول از نظر روتر می باشد. این مشخصات برای کارهای بعدی بسیار مفید هستند.
APIP: Access Point IP
APMAC : Access Point MAC
STAIP: Static IP
STAMAC: Static MAC
نکته : Static IP ، آی پی اختصاص داده شده به ماژول زمانی که به روتر وصل می شود را نشان می دهد.
در حالی که ماژول به روتر WiFi وصل است ، من لپ تاپ خود را نیز به Mohamad وصل کردم. شکل زیر نحوه اتصال دستگاهها به یکدیگر را نشان می دهد.
نکته 1 : دستگاه هایی که در یک شبکه به هم متصل هستند، میتوانند از طریق IP دیتا رد و بدل کنند.
نکته 2 : در یک شبکه Server دستگاه سرویس دهنده و Client دستگاه سرویس گیرنده است.
نکته 3 : بدست آوردن آی پی کامپیوتر در حین اتصال به یک شبکه WiFi
نتیجه : در شکل زیر آی پی های مختلف موجود در شبکه را مشاهده می کنید.
در این حالتی که دستگاه ها به یکدیگر متصل هستند میتوان کارهای زیر را با ماژول ESP8266 انجام داد :
- ارتباط ماژول با دیگر دستگاه های متصل به روتر
- اتصال ماژول به اینترنت
در حالت ارتباط ماژول با دیگر دستگاه های متصل به روتر ، ابتدا ماژول به صورت سرور یا کلاینت راه اندازی می شود سپس به جای آدرس آی پی مقصد ، آدرس آی پی منحصر به فردی که توسط روتر به دستگاه ها داده شده ، قرار داده می شود.
برای مثال ابتدا در طرف ماژول یک سرور روی پورت دلخواه ایجاد می کنیم. سپس در طرف کامپیوتر درون نرم افزار ServerClient ، آدرس آی پی مقصد ( ماژول ) را آدرس شناسایی شده توسط روتر تایپ می کنیم یعنی در اینجا باید بنویسیم 192.168.1.5 . شکل زیر انجام این عملیات در طرف ماژول و در طرف کامپیوتر را نشان می دهد.
همچنین در صورتی که ماژول کلاینت باشد و طرف کامپیوتر سرور روی پورت دلخواه راه اندازی شده باشد ، برای اتصال کلاینت به سرور از آی پی اختصاص داده شده توسط روتر که در اینجا 192.168.1.3 استفاده می شود.
برای اتصال ماژول به اینترنت نیز از پورت 80 به جای پورت دلخواه استفاده می شود و آدرس آی پی مقصد ( آدرس آی پی سایت یا وب سرویس مورد نظر ) قرار می گیرد.
>برای آموزش بیشتر در مورد شبکه های کامپیوتری به این لینک مراجعه کنید <
راه اندازی ماژول ESP-01 با AVR
برای راه اندازی این ماژول با استفاده از میکروکنترلر AVR از مدار شکل زیر استفاده می شود.
نکته 1 : همانطور که در شکل مشاهده می کنید، به علت اینکه ولتاژ ارسال از طرف میکرو یا کامپیوتر 5 ولت است، نیاز به مدار تقسیم مقاومتی برای کاهش ولتاژ به 3.3 ولت هستیم. ( تغذیه ماژول و ولتاژ کلیه پایه ها 3.3 است )
نکته 2 : ماژول ESP-01 را نمیتوان مستقیما روی برد بورد نصب نمود. برای نصب این ماژول روی برد بورد سه راهکار زیر وجود دارد :
1- ساخت مبدل با پین هدر و برد هزار سوراخ :
2- استفاده از کابل برد بورد :
3- لحیم کاری مستقیم روی ماژول :
راه اندازی ماژول ESP-01 با میکروکنترلر AVR
در این مرحله برنامه ای مینویسیم که کارهای انجام گرفته در مراحل قبلی را توسط میکروکنترلر انجام دهد. بنابراین به جای استفاده از USBtoTTL در سمت ماژول یک میکروکنترلر Atmega32 قرار خواهد گرفت که دستورات AT را به ماژول ارسال می کند.
نکته مهم : برای ارتباط ماژول با میکروکنترلر نیاز است تا باودریت روی 9600 تنظیم شده باشد. زیرا در این فرکانس خطای ارتباط کمتر می باشد. بنابراین قبل از اتصال به میکرو این کار را انجام می دهیم.
اتصالات میکرو همانند شکل قبل خواهد بود با این تفاوت که در این نوع اتصال پایه های Rx و Tx میکرو و ماژول را به صورت ضربدری به هم وصل می کنیم. برای این ارتباط تغدیه 5v و 3.3v مجزا نیاز است. بنابراین مداری نهایی به صورت شکل زیر می باشد. یک LED نیز صرفا جهت تست و عیب یابی به مدار اضافه شده است.
تنظیمات کدویزارد :
برنامه نهایی :
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 55 56 |
#include <mega32.h> #include <delay.h> #include <stdio.h> #include <string.h> unsigned char i=0; char str[20],data[5]; // Declare your global variables here interrupt [USART_RXC] void usart_rx_isr(void) { data[i]=UDR; i++; } void main(void) { DDRA.0=1; PORTA.0=0; // USART initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On // USART Transmitter: On // USART Mode: Asynchronous // USART Baud Rate: 9600 UCSRA=0x00; UCSRB=0x98; UCSRC=0x86; UBRRH=0x00; UBRRL=0x33; sprintf(str,"AT+CWMODE=3%c",13); puts(str); delay_ms(1000); PORTA.0=0; sprintf(str,"AT+CIPMUX=1%c",13); puts(str); delay_ms(1000); PORTA.0=1; sprintf(str,"AT+CIPSERVER=1,8888%c",13); puts(str); delay_ms(1000); // Global enable interrupts #asm("sei") while(i<=25); PORTA.0=0; delay_ms(1000); // Global disable interrupts #asm("cli") while (1) { delay_ms(1000); PORTA.0=1; sprintf(str,"AT+CIPSEND=0,14%c",13); puts(str); delay_ms(1000); PORTA.0=0; printf("Electrovolt.ir"); } } |
توضیح برنامه :
بعد از ارسال دستورات مورد نیاز، یک سرور روی پورت 8888 ایجاد می شود. سپس وقفه دریافت دیتا فعال شده و برنامه در خط while(i<=25) متوقف می شود. زمانی که یک کلاینت به ماژول متصل می شود 0,CONNECT به همراه کاراکتر Enter ( مجموعا 10 کاراکتر ) ارسال می شود و i=10 می گردد. سپس در صورتی که کلاینت یک داده 5 حرفی همانند START به سرور ( ماژول ) ارسال کند ، عبارت +IPD,0,5:START به همراه کاراکتر Enter ( مجموعا 15 کاراکتر ) ارسال می شود و i=25 می گردد. در نتیجه برنامه از خط while(i<=25) عبور کرده و وارد حلقه While(1) می شود. در این حلقه نیز تقریبا هر دو ثانیه یکبار عبارت Electrovolt.ir برای ماژول ارسال می گردد.
پیاده سازی :
نحوه تست مدار :
بعد از انجام همه مراحل قبل و روشن کردن مدار ، نوبت به ارتباط با ماژول می رسد. برای موبایل های اندرویدی نرم افزار Socket Protocol را نصب کنید.
سپس از طریق خود گوشی به وای فای متصل شوید.
درون نرم افزار Socket Protocol بروید و در قسمت Client ، آی پی ماژول و پورت مورد اتصال را وارد نمایید.
نکته : آی پی ماژول 192.168.4.1 و پورت 8888 می باشد.
سپس Connect را لمس میکنیم. اگر تمام مراحل را درست انجام داده باشید در بالای نرم افزار عبارت Socket connected به نمایش در میآید.
حال برای ارتباط با ماژول باید یک عبارت 5 حرفی مانند START را Send نمایید.
سپس ماژول هر ثانیه عبارت Electrovolt.ir را به گوشی شما می فرستد.
طراحی مدار راه اندازی ESP-01 و ESP-12E
در این مرحله برای آموزش و راحتی کار با ماژول های 01 و 12E مداری طراحی می کنیم که بتوان هر دو ماژول را از طریق مبدل UART به USB به کامپیوتر متصل کرده و مستقیما ماژول را راه اندازی نمود. در این طراحی از مبدل USB به سریال FT232RL استفاده می کنیم که قابلیت ارتباط با ماژول در ولتاژ 3.3 ولت را دارد. از دو جامپر p2 و p3 جهت تعیین ماژول فعال، استفاده می کنیم. شکل زیر شماتیک مدار نهایی و اصلاح شده را نشان می دهد.
همانطور که در شکل مشاهده می شود از پورت USB جهت تغذیه 5 ولت مدار استفاده شده است که توسط رگولاتور AMS1117 به 3.3 ولت تبدیل شده و تغذیه ماژول های ESP-01 و ESP-12E را فراهم می کند. همچنین آی سی FT232RL مبدل USB به UART است که پایه 4 آن ( VCCIO )، حداکثر ولتاژ پایه های UART می باشد و برای برقراری ارتباط با ماژول ها به ولتاژ 3.3 ولت متصل می شود. شکل زیر مدار ساخته و تست شده توسط الکترو ولت را نشان می دهد.
دانلود سورس پروژه شامل :
- سورس پروژه در نرم افزار کدویژن
- سورس شماتیک و PCB در نرم افزار Altium
- گزارش کامل پروژه در قالب pdf
- نرم افزار ServerClient
- نرم افزار Socket Protocol
- نرم افزار Terminal Serial Port
- دیتاشیت ESP8266 و کلیه دستورات AT Command
قیمت : 12هزار تومان
دیدگاه (135)
سلام
ممنون از سایت خوبتون
و ممنون از مطلب خوبتون
لطفا آموزش اینکه این ماژول به مودم وصل باشه و موبایل به شبکه ایجاد شده توسط مودم وصل بشه تا موبایل هم بتونه به اینترنت مودم وصل باشه و هم از طریق نرم افزار socketprotochol به ماژول وای فای فرمان بدهد.
سلام دوست عزیز ممنونم از حسن نظرتون حتما در آیند تهیه خواهد شد
ی نکته هم بگم:
خیلی خوبه که برای صفر شدن خطای ارتباط یوزارت از کریستال خارجی 7.3728مگاهرتز برای میکرو استفاده کرد.
سلام خسته نباشید
من از مبدل TTL به RS232 استفاده کردم
ماژول رو وصل میکنم همزمان با چشمک زدن آبی ماژول در ترمینال هم پشت سرهم که یه دستش حرف حروف قاطی می نویسه و دسته دسگه ورژن و سرعت SPI و …. می نویسه
لطفا کمکم کنید ممنون
در ضمن از سایت خوبتون ممنونیم
سلام دوست عزیز خیلی ممنونم
ابتدا مدار را وصل کنید و ماژول را روشن کنید و سپس Rx و Tx را به WiFi وصل کنید شاید درست شود در غیر این صورت از یک مبدل دیگر استفاده کنید
سلام مهندس
ببخشید من وقتی تنظیمات رو برای کد ویژن میزنم ارور میده که
INTRRUPDET ….. DISABLE
میشه راهنمایی کنید
ممنون
سلام نیازی به انجام تنظیمات در کدویزارد نیست شما فقط کافی است کد برنامه را کپی کنید و سپس پروگرام نمایید
سلام
ممنون از مطالب مفیدتون
یه سوال داشتم مهندس من وقتی برنامه رو به میکرو پروگرم کردم و مدارشو وصل کردم
دیگه امکان اتصال برنامه اندرویدی به ماژول نیستش در ضمن بعد 5 الی 6 ثانیه یک ال ای دی که به پورت a0 وصل کردم روشن میشه و دیگر خاموش روشن نمیشه
فک کنم مشکل از عدم ایجاد سرور توسط میکرو برای ماژول هست
اگه کمکم کنید ممنون میشم
سلام دوست عزیز سپاسگزارم
کلیه برنامه های اندرویدی و کامپیوتری و نیز برنامه میکرو تست شده است و مشکلی ندارد احتمالا مشکل از ماژول شما می باشد. باودریت ماژول را بررسی کنید که روی 9600 باشد و نیز ماژول را روی PC ابتدا بررسی و تست کنید و سپس روی میکرو ببندید
با عرض سلام و تشکر
من یه سوال داشتم
آیا میشه ipدستگاه رو عوض کرد ؟ اگر میشه لطف میکنید روش اینکار رو بگید ؟
با تشکر
سلام دوست عزیز بله میشه با دستور AT+CIPSTA=ip این کار را انجام داد که در آن به جای ip آدرس آی پی مورد نظر درون کوتیشن “” قرار می گیرد
سلام ممنون بابت پاسختون
امکانش هست نحوه نوشتن این دستور در میکرو را بفرمایید من هرجور نوشتم خطا داد
تشکر
در میکرو برای نوشتن این دستور از تابع sprintf استفاده کنید و سپس به جای کوتیشن از %c استفاده کنید که کد اسکی کوتیشن یعنی عدد 34 را ارسال نماید
با سلام و تشکر فراوان. آیا نمونه کدی برای بسکام دارید. متشکرم
سلام دوست عزیز خیر
فقط همین؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
نباید پیغام ماژول رو بخونی و چک کنی ببینی درسته یا نه؟؟؟
این که همش ارساله رو سریال پس دریافتش کو؟؟؟؟؟
من اصلن بخاطر دریافت از سریال خریدم این پروپژه رو.!!!!!!
لطفن برام یگید که چطوری رشته رو از ماژول بگیرم و ببینم درسته یا غلط؟؟؟؟؟
دوست عزیز لطفا سوالتون رو کمی بهتر بیان کنید راه اندازی پروژه چه ربطی به چک کردنش داره پروژه مربوط به راه اندازی ماژول است اما کاری که شما میخواهید مربوط به برنامه نویسی C است جواب سوالتون سادس شما باید برنامه نویسی C بلد باشید. در صورت تمایل از طریق پشتیبانی پاسخگوی سوالتون هستم.
سلام و خسته نباشید.
من مشکل اصلیم دریافت رشته از پورت سریال هست که چجوری اون رو بخونم و ببینم تطبیق داره یا نه.
اگه آموزشی در این باره بهم بدین ممنون میشم.
متشکرم دوست عزیز کافی است یک آرایه تعریف کرده و در وقفه مربوط به دریافت از پورت سریال هر دیتایی که وارد می شود را درون آرایه ذخیره نمایید و سپس درون آرایه عبارت مورد نظر خود را با توابع موجود جستجو کنید. بیشتر از این در کامنت پاسخ نمی دهم
سلام. با تشکر از مطالب خوبتون. من تنظیمات ماژول رو به صورت زیر انجام دادم
AT+CWMODE=3
AT+CIPMUX=1
AT+CIPSERVER=1,8888
دستور CIFSR رو هم میزنم بنظر آی پی رو 192.168.4.1 نشون میده ولی نمیتونم به وسیله برنامه گوشی با ماژول کانکت بشم. لطفا راهنمایی کنید؟؟؟
سلام دوست عزیز خیلی ممنونم
تنظیمات و آی پی ماژول درست است با گوشی های دیگر یا کامپیوتر تست کنید. در صورت برقراری ارتباط عبارت 0,CONNECT توسط ماژول برگشت داده می شود. دستور AT+CWSAP و تنظیمات آن را نیز بهتر است انجام دهید.
با سلام و تشکر
لطف میکنید سورس نرم افزار serverclient را هم ضمیمه کنید و یا حداقل کامپوننتی که در دلفی بتوان از آن برای برقراری ارتباط با سوکت نیاز میباشد را معرفی کنید.
همچنین مشکلی که من برخوردم. بعد از اجرای پروژه روی بردبورد ، هر چند ثانیه ارتباط با ماژول قطع و وصل میشود
و نرم افزار serial _port_terminal به صورت یکنواخت به فرمانهای AT جواب نمیدهد. با قطع و وصل کردن پایه CH_PD ارتباط برقرار و پس از چند ثانیه ، ارتباط قطع و وصل میشود.
سلام دوست عزیز سورس سی شارپ نرم افزارهای SerialPortTerminal و ServerClient موجود می باشد که میتوانید در صورت نیاز با ایمیل یا تلفن پشتیبانی مطرح کرده و با پرداخت هزینه آن را دریافت نمایید.
بله این مشکل از پایه CH_PD می باشد که باید دقیقا به 3.3 ولت وصل شود. همچنین منبع تغذیه مورد استفاده شما باید مطمئن باشد و جریان مورد نیاز را تامین کند. حتما از خازن بین تغذیه مثبت و منفی مدار استفاده کنید.
سلام و خسته نباشید
AT Command هایی که از طرف میکرو به ماژول ارسال میشود هیچگونه عکس العملی از طرف ماژول دریافت نمشود. نه تایید و نه خطا .
برای مثال فرمان زیر:
sprintf(str,”AT+CIPMUX=1%c”, 13)
puts(str)
delay_ms(1000)
sprintf(str,”AT+CIPSERVER=1,8888%c”,13)
puts(str)
delay_ms(1000)
خواهشمندم راهنمایی کنید
سلام دوست عزیز ممنونم
این مشکل از برنامه نویسی نیست و از سخت افزاره و میتونه دلایل مختلفی داشته باشه
یا ماژول خراب شده است ، یا اتصال بین میکرو و ماژول برقرار نیست. شاید Tx و Rx جابجا وصل شده باشد یا شاید پایه CH_PD به Vcc وصل نیست و …
سلام
ممنون از شما خيلي خوبه که علمي که داريد در اختيار همگان قرار ميدهيد.
امام علي (ع) مي فرمايند: هرکس به من کلمه اي بياموزد مرا بنده خود کرده
سلام بسیار سپاسگزارم دوست عزیز
سلام.ممنون از شما به خاطر این کار ارزشمندتون.
مشکل من ریست شدن چند ثانیه ماژولم هست.میگن مشکل به خاطر آپدیت کردن ماژول لطفا راهنمایم کنید.
سلام دوست عزیز تا به حال به این مشکل نخوردم . نیازی به آپدیت ماژول نیست .
با سلام و خسته نباشید خدمت شما
من هر کاری کردم نتونستم esp-12 رو راه اندازی کنم طبق گفته شما GPIO15 رو به زمین وصل کردم led رو ماژول روشن نمیشه اما وقتی GPIO02 رو به جای 3.3 زمین میکنم ماژول روشن میشه ؟
(بقیه پایه هارو طبق گفته های شما وصل کردم)
سلام دوست عزیز سلامت باشید
متوجه مشکلتون نشدم روشن شدن LED مشکلتون هست ؟
در هر صورت مدار که تست شده و ماژول درست کار میکنه
سلام.
سوکت پروتکل disconnecteاست باید چکار کنم.
سلام
ممنون از اطلاعات خوبتون
من با pc به ماژول وصل شدم هرچی براش ارسال میکنم همون پاسخو میگیرم
مـثلا تو قسمت send مینویسم AT توقسمت دریافت هم همون AT رو میگیرم
مشکل کجاست به نظرتون؟
سلام خواهش میکنم دوست عزیز این که مشکل نیست همیشه وقتی AT Command ارسال میشود ماژول ابتدا هر چیزی که دریافت کرده را ارسال می کند و بعد از آن پاسخ های دیگر را می دهد
سلام
خیلی ممنون بابت اطلاعات مفیدتون
من این مدار رو بستم led ابی روی esp8266 به صورت دایم روشن میشه و وای فایی هم دیگه تشکیل نمیده
لظفا بگید مشکل از کجاس این led نشان گر چی هست
ممنون
سلام دوست عزیز ممنونم
این LED نشان دهنده این است که ماژول دارد به سمت کامپیوتر دیتا ارسال می کند
علت این مسئله خراب شدن ماژول یا کمبود تغذیه و یا عدم اتصال صحیح پایه CH_PD است
سلام خدمت شما
ازتمام مطالبی که سرچ کردم، مفیدترین وساده ترین مطلب، اطلاعات شما بود..واقعا ممنون
من مشکلم اینه گوشیم ماژول وای فای منو شناسایی نمیکنه…چرا؟
لطفا کمکم کنید
سلام دوست عزیز لطف دارین
اگه با گوشی های دیگه شناسایی میشه مشکل از گوشیتونه و در غیر این صورت ممکنه روی حالت station نباشه با دستور AT+CWMODE=2 آن را در حالت ایستگاه وای فای ببرید
با سلام و عرض خسته نباشید.
من تو تایپ با نرم افزار ترمینال مشکل دارم
وقتی با کیبوردم تایپ میکنم هیچی نمینویسه مشکل کار کجاست؟
سلام ممنونم
تابحال چنین مشکلی نخوردم احتمالا مشکل از ویندوز یا نسخه framework آن است
سلام مهندس خسته نباشید:
من یه یه مشکل خوردم درگیرم کرده دیگه نمیدونم چه کار کنم من ماژول رو پس از اتصال با ماژول ft232 به سیستم پس از ارسال AT چیری دریافت نمیکردم که به این نتیچه رسیدم که ماژول برنامه نداره که با نرم افزار esp8266_flasher سعی به برنامه ریزی ماژول کردم ولی تا 6درصد بیشتر نمیره و متوقف میشه الان ماژولم هم روی همین مود مونده و ختی وای فای رو هم نمیتونم پیدا کنم یرنامه هم نمیگیره ft232 رو هم با میکرو با یه برنامه تست کردم تغذیه هم جدا و خازن هم داره
سلام دوست عزیز به هیچ وجه نیازی به آپدیت وجود ندارد. اگر درست نمیشود یک ماژول جدید خریداری کنید
سلام
ضمن تشکر از مطال مفیدتون
من می خواهم از حالت wps ماژول ESP8266-12E استفاده کنم و با زدن دکمه WPS مودم به صورت خودکار به مودم متصل بشم.
کاری که انجام میدم وارد کردن این دو AT COMMAND هست
AT+CWMODE=1
AT+WPS=1
اما ماژول فورا ERROR میده و به مودم متصل نمیشه
ممنون میشم راهنماییم کنید چطور باید اینکارو انجام بدم؟
سلام ممنونم لطف دارید
با این حالت و این AT Command کار نکردم و نمیدونم دقیقا چطوری است
سلام,ببخشید,یه پروژه ای رو دارم بامیکروکنترلرavrکارمیکنم,مشکلی نداره برای بخش وای فای اون از مدار وکدهای cکه توقسمت راه اندازی ماژولesp-01 قراردادید استفاده کنم؟راضی هستید؟
سلام بله استفاده کنید مشکلی نیست
سلام.
برنامه سریال پورت ترمینال را که باز میکنم پرت را شناسایی می کند و به ماژول از طریق مبدل CH340G کانکت میشوم ولی با سرعت 9600 وقتی AT را ارسال میکنم هیچی دریافت نمیکنم و وقتی آن را به 115200 تبدیل میکنم و AT را ارسال میکنم در قسمت پاسخ پیام ارور میاره مانند زیر لطفا راهنمایی کنید. چی کار کنم ماژول راه اندازی بشه. ممنون میشوم اگر زود جواب دهید.
AT
ERROR
سلام دوست عزیز مشکل شما احتمالا در عدم اتصال صحیح پایه های ماژول و یا تغذیه ماژول می باشد
سلام و خسته نباشید.خیلی خوب توضیح دادین مهندس فقط یه موردی اینکه برای ارتباط بین یه کامپیوتر و یا موبایل با این ماژول ما نباید برنامه ای در خود esp8826 بریزیم؟
سلام خیلی ممنونم خیر
سلام و خسته نباشید.ببخشید من به یه مشکلی برخوردم اینکه فقط وقتی که پایه ی gpio2 رو رمین می کنم کامپیوترم برد رو میشناسه به عنوان پورت com.توی این حالتم دریافت دیتا از برد به شکل مکرر تکرار میشه و عملا آدم نمیتونه ببینه چی به چیه؟به نظر شما راه حلی هست؟اصلا وقتی که من می خوام با at command به برد دستور بدم باید پایه ی gpio2 به زمین وصل باشه یا نه؟
سلام دوست عزیز تا به حال چنین مشکلی نخوردم مدار را به همان صورتی که در این آموزش آمده است ببندید
سلام و خسته نباشید.احیانا اگه ما یک بار برد رو پروگرم کنیم بازم می تونیم از AT COMMAND استفاده کنیم یا فقط وقتی می شه این کار رو کرد که برد خام باشه؟
سلام دوست عزیز باید مجددا با دستورات AT Comand پروگرام شود
سورس این که می فرمایید رو از کجا می تونم پیدا کنم مهندس؟
با عرض سلام و خسته نباشید:
ببخشید من تا به حال با ماژول وای فای استفاده نکردم می خواستم بدونم از ماژول وای فای میشه مثل گیرنده فرستنده بین دو تا میکرو استفاده کرد؟
مثل فرستنده گیرنده های RF یا مادون …
می خوام بدونم چطور یکی رو فرستنده و یکی رو گیرنده تعریف کنم؟
یا اصلآ لازم نیست با صفر و یک کردن پورت ها می تونم یکی رو فرستنده ویکی دیگه رو گیرنده بکنم و بتونم ارتباط بین دو تا میکیرو رو با وای فای انجام بدم.
من این کار رو چندین بار با ماژول RF انجام دادم ولی با وای فای آشنایی ندارم باید تو برنامه IP تعریف کنم برای شناسایی فرستنده و گیرنده؟
لطفآ کمکم کنید
سلام دوست عزیز بله میتوانید از دو عدد ماژول وای فای در پروژه های خود استفاده نمایید که یکی سرور و دیگری کلاینت تعریف می شود و میتواند به صورت دو طرفه ارسال/دریافت نماید. نحوه انجام آن با avr در این مقاله توضیح داده شده است لطفا مطالعه نمایید. میتوانید برای دریافت سورس پروژه آن را خریداری کنید.
سلام من سورس شمارو خریدم و برنامه رو برای دو تا میکرو نوشتم هم فرستنده هم گیرنده ولی یه مشکلی هست وقتی اطلاعات رو می فرستم اطلاعات بهم مریزه در نمایشگر
اگه می تونید ایمیلتون رو بهم بگین براتون برنامه ای کهنوشتم رو باتون ارسال کنم
قیوز بیت هام رو هم در مد کریستال خارجی تنظیم کردم کریستال هم 12 مگا هستش
میتونید از طریق تلگرام با آی دی Electro_volt در ارتباط باشید
سلام بله میشه دو تا میکرو که به هر کدوم یک ماژول متصل شده باشه که یکی از آنها سرور و دیگری کلاینت باشه آموزش کاملش داده شده
سلام من ی کواد کوپتری درست کردم میخوام با ماژول وایفای کنترلش کنم همون esp-01 استادمون گفته ک باید ی پروتکل براش تعریف کنی منظورش پی می تونه باشه؟؟؟ در اصل من میخوام اعداد pwm رو با وایفای گوشیم بفرستم به ماژولی ک روی بردم وصله
سلام باید اعداد PWM رو به ترتیب و با فرمت خاصی پشت سر هم برای میکرو ارسال کرد
سلام
من از esp-12 استفاده می کنم
با روشن کردن ماژول پاسخ ready رو پورت سریال تایپ میشه ولی هر کامندی میفرستم فقط در بازگشت همون کامند برام میاد و هیچ چیز دیگه ای برام نمیفرسته. اگه میشه راهنماییم کنید. ممنون
سلام دوست عزیز
تا به حال چنین مشکلی نداشتم
با سلام خدمت شما و سایت خوبتون من یه مشکل در قسمت برنامه نویسی دارم پروتئوس من ماژول esp8266 رو نداره و من میخوام برای خودم یک ماشین طراحی کنم که از طریق فاصله سنج و این ماژول بتونم با سیستم خودم از طریق کامپیوتر کنترلش کنم
اگر این ماژول در پروتئوس شبیه سازی داره ممنون میشم در اختیار بگذارید.
و سوال بعدی من چطور میتونم به این ماژول کاراکتری و ارسال کنم که بعد این کاراکتر به میکروکنترل من ارسال بشه و مثلاً حرکت رو بجلو میسر بشه؟
سلام دوست عزیز ممنونم
پروتئوس این قطعه رو نداره و نمیشه آن را ایجاد و شبیه سازی کرد
آموزش کامل داده شده است
سلام خسته نباشید . من ماژول رو تنظیم میکنم اما وقتی جریان قطع میشه و دوباره وصلش میکنم تنظیمات برمیگرده به حالت پیش فرض . ممنون میشم راهنماییم کنید
سلام . من الان میخام دیتایی مثل “on” “off” بفرستم تا لامپ روشن یا خاموش بشه میشه کمک کنید توی کد نویسیش . لطفا راهنمایی کنید . با سپاس
سلام ممنون از مطالب اموزنده تون
سلام وممنون از سایت خوبتون
میخواستم بدونم در بین فایل هایی که برا فروش گذاشتین سورس نرم افزار server/client هم هست؟
با تشکر
سلام دوست عزیز خیر
با سلام و تشکر بابت مطالب فوق
ممنون میشم به سوال بنده پاسخ بدید
در حالت “اتصال ماژول به روتر wifi” اگر بخوام به وسیله کامپیوتری که به همون روتر متصل هست با ماژول ارتباط برقرار کنم، باید از آی پی که روتر به ماژول اختصاص میده استفاده کنم؟ اگر بله، اسم تخصصی این آی پی چیه؟
در ضمن اگر بخوایم از یه مکان دیگه و با استفاده از اینترنت به ماژول وصل بشیم باید چیکار کنیم؟
خیلی ممنون و متشکر
سلام دوست عزیز بله هر بار که هر وسیله ای به روتر وصل میشه یک آی پی خصوصی ( private ) بهش اختصاص داده میشه که در ماژول ESP8266 میتوان با کامند AT+CIFSR آن را فهمید. اگر بخواهیم از یک مگان دیگه وصل بشیم باید با آی پی پابلیک ( Public ) ابتدا به روتر متصل شده و سپس توسط MAC با وسیله موجود در شبکه روتر ارتباط برقرار کنیم
سلام و عرض ادبممنون بابت آموزش خوبتونببخشید من میخوام یکی از ماژول هارو سرور و یکی رو کلاینت کنم و از کلاینتدیتا بفرستم برای سرور چوری باید این کارو انجام بدم؟ ممنون میشم منو راهنمایی کنید
سلام دوست عزیز آموزش کاملش در همین پست داده شده است.
سلام زمانی که باودریت را با pc بر روی ۹۶۰۰ قرار میدهیم و از pc جدا کرده و وارد مدار میکنیم باودریت بر روی پیش فرض یعنی ۱۱۵۲۰۰ قرار میگیرد لطفا راهنمایی کنید
سلام دوست عزیز ماژول بنده چنین مشکلی نداشته است اما میتوانید به صورت دائمی با باودریت 115200 توسط میکرو با ماژول ارتباط داشته باشید.
با عرض سلام و خسته نباشید میخواستم بدونم که این ماژول قابلیت اینو داره که یه فایلی از روی کارت mmc رو برداره(با میکروکنترلر) و به دستگاهی مثلا گوشی بفرسه ؟ خواهشا راهنمایی کنید.
سلام ممنونم
بله این کار با استفاده از این ماژول به همراه یک میکروکنترلر و sdCard امکان پذیر است
آموزش عالی و کاربردی بود، سپاسگذارم.
سلام ممنون از اموزش کامل شماایا دستوری هست که تمام تنظیمات ماژول را به حالت اول برگردونه؟
سلام دوست عزیز تنها دستور در این رابطه AT+RST هستش
سلام ، خسته نباشید ، برای اینکه این ماژول رو به اینترنت و یک micro controller وصل کنیم و از طریق اینترنت یک LED را روشن خاموش کنیم چه کار باید انجام بدیم .من مطالب بالا را خواندم متوجه نشدم که برای این کار از کدام قسمت باید استفاده کنم یا اینکه دقیقا چه کاری باید کرد.ممنون میشم که جواب بدید.
سلام برای اینکه بتونید از طریق وب به میکرو متصل بشید باید “وب سرویس Http ” روی میکروکنترلر پیاده کنید. معمولا روی میکروکنترلرهای ARM نظیر رسپری پای این کارو انجام میدن ولی روی AVR هم میشه
ایول سایته جدید عالیه دعا دعا میکردم زودتر بیاید بالا
ممنون از همراهی و حسن نظرتون
سلام من یه کاری میخوام با نرم افزار اردیونو انجام بدم لطفا راهنماییم کنید، میخوام تو فلش این ماژول چندتا عکس بریزم و توسط وای فای ارسال کنم تو براوزر،اما نمیدونم کطور عکس بریزم تو فلش ماژول، ممنون میشم راهنمایی کنید
سلام شما باید توی فلش میکرو عکس رو به صورت کد هگز ذخیره کنید و بایت به بایت برای ارسال به ماژول بفرستید
سلام با تشکر از مطالب مفیدتون
میخواستم بپرسم که عدد 13 در این دستور (sprintf ( str,”AT+CIPMUX=1%c”, 13 به چه منظور هست ؟
اگه یه عدد دیگه بذاریم چه اتفاقی میفته؟
ممنون
سلام دوست عزیز
عدد 13 کد اسکی کاراکتر اینتر ( یا Line Feed ) است که در پایان هر دستور باید باشد
مهندس سلام من یه پروژه دانشجویی دارم با wemosd1که esp8266روش سواره یا انبرد هستش
ومیخام با یک اپ یا صفحه وب کنترلش کنم
میتونید کد هاشو برام بنویسید؟المانهام ۴تا لامپ هستش با یک استپ موتور
Jazromaad@
ایدی تلگرامم هست بیزحمت پیغام بدید تا باهاتون مستقیم حرف بزنیم
با تشکر
سلام خسته نباشید
ممنون از سایت خوبتون
یه سوال داشتم و کد قطعه ی ESP8266_01 توی پروتئوس به چه صورت هستش؟ نیاز به کتابخانه خاصی داره؟؟ من توی پروتئوس نتونستم پیدا کنم این قطعه رو . ممنون میشم راهنمایی کنید
سلام ببخشیدمیخواستم بدونم چرادستورات کامل راه اندازی ماژول رونذاشتید؟مثلادستوری که اپراتوررومشخص کنه یادستوری که قدرت سیگنال رومشخص کنه و…
استادمن واسه پروژه گفتن که دستورات راه اندازی حداقل300تامیشه،اینایی که شماگذاشتیدرواجراکردم گفتن کامل نیست
سلام چون همین دستورات برای شروع کافیست
فوق العاده بود دمتون گرم پروژم در سایه ی شما جور شد???
باعرض سلام و خسته نباشید خدمت شما…
من میخوام ماژولم رو ب اینترنت وصل کنم(ب یک سایت)
بهد از طریق گوشی ب سایت چیزی بفرستم(مثلا عدد)
ماژول بره و عدد رو برداره…
بعد اونو برای ای سی بفرسته…
چجوری میتونم ماژول رو مجاب کنم تا مطالب درون سایت رو ک بهش دسترسی داره برای ای سی کپی کنه؟
ممنون از سایت خوبتون
سلام خداقوت
ممنون از آموزش های دقیق و باجزئیاتی که قرار میدید
عالی هستید
یه سوال داشتم میخواستم از طریق گوشی مثلا on رو بفرستم و ال ای دی که روی مثلا پایه 9 آردوینو هست روشن بشه با چه دستوری میشه این کارو کرد؟ یا کلا رشته ای که از طریق گوشی میفرستیم رو بشه ذخیره کرد و عملیات روش انجام داد؟
سلام.من ماژولمو راه اندازی کردم.اما با قطع برق کلا ماژول ریست میشه و من ماژول رو بصورت سرور راه انداختم من میخوام دستوراتو بفرستم به حافظه eeprom که بعد قطع برق و وصل مجدد اون بازم ماژول بصورت سرور راه اندازی شه.باید چیکار کنم؟؟؟ممنون میشم راهنماییم کنید.
سلام دوست عزیز
شما هر بار که مدار برق دار میشه باید از 0 تا 100 دستورات راه اندازی اولیه یک سرور را از میکرو به ماژول ارسال کنید
سلام جناب مهندس خوبید
من چند وقت که میخوام با ماژول ESP8266 را راه اندازی کنم ولی متاسفانه موفق نشدم
البته تونستم که به کامپیوتر وصل بشم و با نرم افزار سوکت پروتوکل باهاش کاکنت بشم
ولی وقتی ماژول را به میکرو وصل میکنم نرم افزار سوکت پروتکل اصلا به مازول وصل نمیبشه
ممنون میشم که راهنمایم کنید
با عرض سلام و خسته نباشین
میخواستم بدونم برای افزایش برد و آنتن دهی چکار باید کرد و اینکه تفاوت ماژول esp12eبا esp 12fدر چی هس؟
باتشکر
سلام دوست عزیز
برای افزایش برد دو راهکار وجود داره یکی شیلدبندی و رعایت اصول نویزگیری در هنگام طراحی PCB و دیگری استفاده از آنتن های طراحی شده برای برد بیشتر در esp12f نسبت به esp12e بهبودهایی از نظر آنتن دهی داده شده است
با عرض سلام وخسته نباشید
من میخوام پروژه رو خریداری و دانلود کنم ولی از من آدرس خونه و… رو میخواد میخواستم ببینم مگه پروژه برای دانلود نیست!!
یا به صورت سی دی ارسال به خونه هست!!!!
با تشکر
سلام دوست عزیز بله دانلودی هست و به محض پرداخت لینک دانلود نمایش داده می شود آدرس و شماره تماس برای اطلاعات بیشتر هست و در خریدهای آینده شما به درد می خورد
سلام خسته نباشید من برنامه نویس هستم ایا امکانش هست سورس کد برنامه های بالا هم در اختیار بنده قرار دهید
سلام دوست عزیز دقیقا سورس کد کدام برنامه را می خواهید ؟ سورس کد برنامه کدویژن را میتوانید از طریق لینک پایان همین آموزش تهیه کنید
سلام، ممنون از آموزش خوبتون
من این ماژول مدل ESP201 رو با avr راه اندازی کردم، همه چی درسته یه برنامه سوکت هم رو سیستم نوشتم که اطلاعات ارسال و دریافت میشه.
تا اینجا مشکلی نیست، ولی وقتی حدود 2تا 3 دقیقه با ماژول چیزی ارسال نمی کنم ماژول ارور میده و کانکشن رو قطع می کنه
ارورش هم یه چیزی شبیه:
room 4, len 7, tail
و اینطور چیزاس،
ممنون میشم راهنماییم کنید
سلام دوست عزیز خواهش میکنم
اروری که میدهد را کپی کنید و در گوگل سرچ کنید
با سلام و خسته نباشید
در ابتدا از آموزش خوبتون تشکر می کنم.
من ماژول esp8266-12E رو امتحان می کنم. ولی نمیتونم دستوری ارسال کنم. ترمینال هم از ابتدا تا انتها کاراکترهای ناخوانا ارسال می کند. فقط بادریت را تغییر می دهم شکل کاراکترهای ناخوانا عوض می شود. به نظر شما مشکل از کجاست؟
با سلام و تشکر از راهنمایی هاتون
وقتی ماژول رو وصل میکنم هر چند ثانیه یکبار ریست میشه به نظرتون مشکلش چیه.؟؟ممنون میشم پاسخ بدین
سلام دوست عزیز چند نکته زیر به ذهنم میرسه
باید دقت کنید تغذیه ماژول 3.3 ولت باشد
یک خازن 100 نانو فاراد و یک خازن 220 میکروفاراد به تغذیه ماژول وصل باشد
تنظیمات AT+CWMODE را روی 1 یا 2 قرار دهید
باسلام و تشکر از سایت خوبتون
من ماژول esp12fدارم و با میکرو stm32f103 با کد های شما قصد راه اندازی ماژول رو داشتم ولی هر کاری میکردم ماژول راه نمیفتاد…..ماژول دستورات رو دریافت میکرد ولی یه اینتر کم داشت و اونهارو اجرا نمیکرد تا بالاخره فهمیدم که باید دو کاراکتر کنترلی در پایان هر دستور فرستاد….یعنی علاوه بر ارسال کد اسکی شماره 13،کد اسکی شماره ده رو هم بعدش ارسال کرد تا ماژول دستوراتو اجرا کنه
فکر میکنم بد نباشه این موضوع رو به اموزش اضافه کنید
همچنین در برنامه Hercules هم باید علاوه برارسال دستورات،کلید اینتر رو فشار داد تا دستورات اجرا شوند.
باشتکر
با سلام و تشکر بابت مطالب مفیدتان
ماژول وای فای من به دستور تغییر baud rate که میخام به 9600 تغییرش بدم error میده ممنون میشم راهنمایی بفرمایید
سلام…. وقت بخیر…من دوتا esp01 رو به دوتا اردوینو 2560 متصل کردم… توسط دستورات اردوینو یکی رو به مد سرور و یکی رو به کلاینت بردم…..
مشکلی که دارم اینه که وقتی کاراکتری ارسال میکنم از طریق کلاینت در سرور چیزی دریافت نمیکنم….اما وقتی با اپلیکیشن سوکت پروتکل به سرور متصل میشم و ارسالی انجام میدم اونو در سریال مانیتور اردوینو میبینم…..
میشه راهنماییم کنید…..سپاس
سلام دوست عزیز باید همه مراحل رو کامل انجام بدهید. از جمله اینکه سرور رو روی مد اکسس پوینت قرار دهید و با کلاینت به اون اکسس پوینت متصل شوید و با آی پی محلی با ماژول ارتباط برقرار کنید
سلام من همچی رو تست میکنم و جواب میده و کامل کانکت میشه و دیتا دو دریافت میکنم ولی وقتی ماژول رو خاموش روشن میکنم کلا mode ماژول ریست میشه و باز باید از اول واسش تعریف کرد مشکل از کجاست؟
سلام دوست عزیز بله برخی از تنظیمات دائمی نیست و برای حل این مشکل کافی است در ابتدای هر بار روشن شدن سیستم از اول این تنظیمات را انجام دهید
سلام، واقعا ممنون از این آموزش خوب. هرچقدر از شما قدر دانی کنم کمه چون این زمانی که برای آموزش گذاشتید ستودنی هست. براتون آرزوی موفقیت دارم.
سلام.ممنون بابت مطالب سایت.
من وقتی که توی نرم افزار socket protocol میخام از کامپیوتر واسه ی گوشی اطلاعات بفرستم(با دستور AT+CIPSEND ) مشکلی نسیت ولی وقتی میخوام از گوشی برای کامپوتر بفرستم،هر چقدر توی نرم افزار گزینه ی SEND رومیزنم متن زیر رو توی گوشی نشون میده و هیچ پیامی واسهکامپیوتر نمیاد.مشکل چیه؟؟
NETWORK ON MAIN THREAD EXCEPTION
سلام من این آموزش را خریداری کردم، و نمیدانم چرا دو تا ماژول ESP قرار دادین ؟؟
ESP8266_12E
ESP8266 01
سلام دوست عزیز جهت آموزش هر دوی آن ها انتخاب شده است که مشابه هم هستند. 01 به صورت DIP و 12E به صورت SMD می باشد که متناسب با کار خودتان یکی را انتخاب کنید.
سلام
اینکه available ports با زدن refresh هیچی نمیاره مشکلش از کجا میتونه باشه ؟؟
سلام دوست عزیز ممکنه پورت USB و یا ماژول USB به سریال سوخته باشد یا به درستی به کامپیوتر متصل نشده باشد
از استادمون پرسیدم گفتن درایور خاصی داره باید نصب بشه …. درسته ؟
بله از این هم میتونه باشه باید درایور مخصوص سیستم خودتون رو دانلود و نصب کنید
سلام مجدد ، ی مشکل… پورت رو میشناسه و کانکتد رو سبز میکنه برام AT رو مینویسم و ارسال رو میزنم هیچی نمیشه… اوکی هم نمیاد چیکارش باید بکنم؟
با عرض سلام وخسته نباشید.
میکروکاراکتر هارو اشتباه ارسال میکنه یعنی بجای بعضب کاراکترا چرت و پرت میفرسته ممنون میشم اگه میدونید مشکل کجاست راهنمایی کنید.
سلام دوست عزیز سلامت باشید احتمالا مشکل از باودریت میکرو هستش که درست تنظیم نشده
سلام جناب ادمین
من دیتاشیت این ماژول رو از شرکت سازنده(espressif) گرفتم . توی AT command هاش دستوراتی برای خواندن ADC یا تنظیم GPIO ها در حالت مدهای دلخواه و کنترل اونها داره. ولی این کامنت ها روی ماژول من پیغام ارور رو بهم برمیگرونه. فقط کامنتهای تنظیمات اولیه که شما آموزش داده بودید ،کار میکنند. برای من ورژن 8 مگابیت هست و حتی ورژنهای جدید فیرمور رو هم روی ماژول دانلود کردم که باعث شد کامنتهای معمولی هم کار نکنن و مجدد ورژن دیفالتش رو روش دانلود کردم.
لطفا راهنماییم کنید بتونم کامنت های تنظیم پایه های ماژول رو تنظیم کنم.
سلام دوست عزیز شما باید ابتدا ورژن فریمور ماژول خودتون رو با دستور AT+GMR پیدا کرده و دستورات AT کامند مربوط به همان ورژن را اجرا کنید و به هیچ وجه اقدام به آپدیت فریمور ننمایید
سلام و عرض خسته نباشید
وقتی که من ماژول رو وصل می کنم اکثر اوقات پنج ثانیه یک بار ماژول ریست میفرسته و وقتی اینجوریه اصلا نمیشه بهش متصل شد ممنون میشم اگه راهنمایی کنید
سلام با تشکر ار مطالب خوبتون دو تا سوال داشتم
۱_ماژول وقتی وصله بسیار داغ میشه مشکل از کجا می تونه باشه؟
۲_من وقتی که با ترمینال یه چیز به میکرو می فرستم درست کار می کنه ولی وقتی که با ماژول می فرستم کار نمی کنه مشکل از کجا می تونه باشه؟
با تشکر از اموزش خوبتون.
یک سوال داشتم ایا تنها راه ارتباط و رسال دیتا از طریق این مازول همین دستور AT+CIPSEND هستش؟ راه بهینه تری برای انتقال دیتا مانند صوت و تصویر نیست؟
سلام من طلبه هستم و دانشگاه فیزیک خوندم یک ایده دارم راه اندازی شبکه ملی
با وای فای بدون نت تمام دستگاه ها به هم وصل شوند مثل شبکه شای در هنگ کنگ داده ها به وای فای در همسایگی سویچ شود تا به مقصد برسد اگر هم بتوانیم گروهی کار کنیم من ایده های دیگری دارم از طریق گرنده های دیجیتال تبادل کرد و رادیو اف ام
سلام ممنونم سایت خوب و با ارزشتون
من مشابه این پروژه ولی کمی متفاوت که نیاز به برنامه نویسی میکروی خود ماژول ESP8266-01 برای ارسال دیتای خروجی ATMEGA 32 به گوشی اندرویدی برای راه اندازی نرمافزار و کار با نرمافزار 3Systemfindr