آموزش کامل راه اندازی ارتباط WiFi توسط ماژول ESP8266

مقدمه

یکی از معروف ترین و ارزان ترین آی سی های دارای پروتکل ارتباطی TCP/IP ( شبکه بی سیم Wifi تحت استاندارد IEEE802.11b/g/n ) ، چیپ ESP8266 ساخت شرکت چینی Espressif System می باشد که قابلیت ارتباط سریال توسط میکروکنترلر را دارد. در شکل زیر این چیپ را مشاهده می کنید.

این چیپ در ساخت ماژول های خانواده ESP توسط تولید کننده دیگری به نام Al-thinker به کار رفته است. ESP-01 برای اولین بار در سال 2014 طراحی و ساخته شد و بعد از آن بیش از 13 سری دیگر نیز طراحی و ساخته شد که دارای بهبودها و قابلیت های بیشتری نسبت به سری قبل خود می باشند. در شکل زیر انواع مختلف این خانواده را مشاهده می کنید.

ESP8266_Series

در ساخت تمامی این ماژول ها از چیپ ESP8266 استفاده شده است. در ایران مدل های ESP-01 ( بدون شیلد ، با آنتن روی بورد ) ، ESP-07 ( دارای شیلد و سوکت آنتن ) و ESP-12E ( دارای شیلد و آنتن روی بورد ) وجود دارد.

ESP-12E

ولتاژ تغذیه و پایه های این ماژول ها 3.3 ولت است. فرکانس کاری آن2.4Ghz  و پروتکل مورد استفاده برای ارسال/دریافت دیتا در آن TCP/IP با استفاده از تکنولوژی WiFi  می باشد. امکان ارتباط با وسیله های جانبی تحت پروتکل سریال UART در تمامی ماژولها وجود دارد. بنابراین دو پایه Rx و Tx به ترتیب برای دریافت و ارسال دیتا به کار می رود که تحت عنوان AT Command این کار صورت می گیرد.

 


معرفی ماژول ESP-01

پایه های این ماژول را در شکل زیر مشاهده می کنید. همانطور که در شکل مشاهده می کنید، پروتکل مورد استفاده برای راه اندازی ماژولUART  می باشد.

esp-01

همانطور که در شکل مشاهده می کنید، پروتکل مورد استفاده برای راه اندازی ماژول UART می باشد. پایه Rx و Tx به ترتیب برای دریافت و ارسال دیتا به کار می رود. دستوراتی که برای کار با این ماژول وجود دارد تحت عنوان AT Command می باشد.

ESP-01-Simple


ماژول ESP-12E

پایه های این ماژول را در شکل زیر مشاهده می کنید. این ماژول قابلیت های بیشتری نسبت به ESP-01 دارد. به طوری که می تواند علاوه بر پروتکل UART با SPI نیز راه اندازی شود. همچنین در کنار این ماژول پایه های GPIO بیشتری وجود دارد که میتواند مستقیما مورد استفاده قرار گیرد.

ESP_12Eseries


مدار راه اندازی ESP-12

ESP12E

نکته 1: در شکل فوق ماژول به صورت ارتباط UART راه اندازی شده است. برای اینکه ماژول در حالت ارتباط UART قرار گیرد باید GPIO05 ، GPIO02 و GPIO15 به ترتیب به 3.3v ، 3.3v و GND وصل شود.

نکته 2 : در حالت عادی نمیتوان ازESP-07  و ESP-12 روی برد بورد استفاده کرد. برای این منظور میتوان از بورد مبدل همانند شکل زیر استفاده کرد.

ESP12-E


راه اندازی آسان ماژول ESP-01

با استفاده از یک ماژول USB به سریال FT232 و مقداری سیم به راحتی و بدون هیچ قطعه اضافی میتوان این ماژول را راه اندازی نمود. در این حالت تغذیه ماژول از 3.3v موجود روی بورد FT232 تامین می شود. شکل زیر مدار تکمیل شده را نشان می دهد.

ESP01-Circuit-Electrovolt

لینک خرید ماژول FT232 از فروشگاه


معرفی دستورات AT Command

ماژول های خانواده ESP دستوراتی را به صورت کاراکتری دریافت می کنند و به همان صورت نیز به آنها پاسخ می دهند. در ابتدای همه دستورات دو کاراکتر AT ارسال می شوند لذا به مجموعه آن دستورات AT Command گویند. در انتهای هر دستور نیز کاراکتر Enter باید ارسال شود تا ماژول دستور مورد نظر را انجام داده و پاسخ آن را ارسال نماید. برای مثال دستور AT  را در نظر بگیرید. این دستور برای تست سلامت ارتباط با ماژول می باشد. این دستور به صورت زیر به ماژول ارسال شده و در صورت صحیح بودن ارتباط ، ماژول در پاسخ به آن OK می دهد.

نکته : کد ASCII کاراکتر Enter در مبنای Hex برابر 13 می باشد.

 


دستورات AT کار با ماژول ESP8266

عملیاتدستور(به ماژول ارسال می شود)پاسخ(از ماژول دریافت می شود)
تست سلامت اتصال ماژولATOK
ریستارت کردن ماژولAT+RSTOK [System Ready, Vendor:www.ai-thinker.com]
مشاهده ورژن نرم افزاری ماژولAT+GMR00160901

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+CWQAPOK
آدرس آی پی  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+CWLIFAT+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+CIFSRAT+CIFSR 192.168.0.106

OK

دریافت دیتا از کلاینت+IPD(CIPMUX=0): + IPD, <len>:

(CIPMUX=1): + IPD, <id>, <len>: <data>

تنظیم دلخواه آدرس MACماژول در حالت StationAT+CIPSTAMAC=”mac”OK
تنظیم دلخواه آدرس MAC ماژول در حالت AccesPointAT+CIPAPMAC=”mac”OK
تنظیم دلخواه آدرس IP ماژول در حالت StationAT+CIPSTA=”ip”OK
تنظیم دلخواه آدرس IP ماژول در حالت AccessPointAT+CIPAP=”ip”OK

تذکر : بعد از تمامی این دستورات باید کاراکتر Enter به ماژول ارسال شود.

نکته : ارسال هر Packet دیتا در پروتکل TCP/IP تقریبا 20 میلی ثانیه طول می کشد و حداکثر تعداد بایت هایی که میتواند در یک Packet ارسال شود 2048 بایت می باشد.


انجام تنظیمات اولیه ماژول

جهت ارتباط با ماژول از نرم افزارهای ترمینال استفاده می شود. نرم افزارهای ترمینال متفاوتی وجود دارند که ما در اینجا از نرم افزار  Serial_Port_Terminal.exeاستفاده می کنیم. درون این نرم افزار به محض اتصال کابل USB به کامپیوتر، با زدن Refresh شماره پورت COM شناسایی شده در بخش Available Ports ، نمایان می شود. سپس با تنظیم باودریت نرم افزار روی 115200 و ارسال AT به ماژول میتوان OK را دریافت کرد. مراحل کار را روی تصویر شکل زیر مشاهده می کنید.

ESP-01_Terminal1

در مرحله بعد قسمت Send Data را پاک کرده و دستور AT+CWMODE=3 را وارد می کنیم.

این ماژول در 3 مد زیر کار میکند :

  1. STATION : ماژول میتواند به دستگاه های WiFi اطراف خود متصل شود
  2. Acces Point : ماژول به عنوان یک سرویس دهنده WiFi عمل می کند و دستگاه های دیگر میتوانند به آن متصل شوند.
  3. both : در این مد ماژول به طور همزمان در دو حالت بالایی قرار میگیرد.

بهتر است که ماژول را با دستور AT+CWMODE=3 به مد BOTH ببریم.

ESP-01_Terminal2

با دستور AT+CWSAP? میتوان اطلاعات کنونی SSID، Password ،CHL و ENC ماژول را از خود ماژول بدست آوریم. SSID نامی است که ماژول WiFi به همگان نشان می دهد. Password رمز عبور برای اتصال به آن است. CHL  آی دی کانال متصل شده به دستگاه و ENC نوع پروتکل رمزشده Encryption را مشخص می کند. در زیر انواع پروتکل های رمز برای اتصال به WiFi را مشاهده می کنید. عدد CHL معمولا 0 و عدد ENC بهتر است روی 4 باشد.

نوع پروتکل رمزعدد ENCتوضیحات
Openبدون رمز نگاری
WEP1
WPA_PSK2
WPA2_PSK3
WPA_WPA2_PSK4قوی ترین نوع رمز

ESP-01_Terminal3

همانطور که مشاهده می کنید، در پاسخ به دستور AT+CWSAP? ماژول SSID و Password را به همراه اطلاعات CH,ENC,Other ارسال کرده است. بنابراین در اولین راه اندازی نام ماژول Al-THINKER_82B46D ، بدون پسورد ، کانال 1 و بدون رمز نگاری می باشد.

حال می خواهیم با استفاده از دستور AT+CWSAP=”esp8266”,”1234”,1,4 ، مشخصات اولیه ماژول را به دلخواه خود تغییر دهیم.

ESP-01_Terminal4

نکته : در رمز نگاری های پیشرفته تر ( شماره 3 و 4 ) برای پسورد کوتاه و ساده Error می گیرد.

ESP-01_Terminal5

اگر بار دیگر دستور AT+CWSAP?[Enter] را وارد کنیم، مشاهده می کنیم که مشخصات ماژول تغییر کرده است.

ESP-01_Terminal6


راه اندازی ماژول ESP8266 به صورت سرور

در این مرحله ماژول را به صورت Server ( سرویس دهنده WiFi ) راه اندازی خواهیم کرد و توسط موبایل و لپ تاپ به آن وصل می شویم و به ارسال و دریافت دیتا می پردازیم. برای ارتباط با ماژول در دستگاه های اندرویدی نیاز به نرم افزار SocketProtocol و در کامپیوتر نیاز به نرم افزار ServerClient داریم.

برای راه اندازی یک سرور در ماژول ESP8266 کافی است دستورات زیر را به ترتیب به ماژول ارسال کنیم :

که در آن mode=1 و port بسته به نوع اتصال میتواند یکی از اعداد زیر باشد:

  • 80 : پورت http برای اتصال به اینترنت
  • 8080 : پورت http در شبکه هایی که پورت 80 بلاک است
  • 23 : پورت Telnet
  • 8888 : یک پورت خالی

ESP-01_Terminal7

سپس در صورتی که بخواهیم توسط موبایل به ماژول متصل شویم ابتدا باید با وارد کردن پسورد 123456789 به ماژول متصل شویم. شکل زیر این اتصال را نشان می دهد.

ESP-01_Connect2

سپس نرم افزار SocketProtocol را باز کرده و در قسمت Client ، آی پی ماژول ( 192.168.4.1 ) و پورتی 8888 که سرور روی آن ساختیم را وارد می کنیم سپس Connect را لمس می کنیم. در صورت متصل شدن عبارت Socket Connected نمایش داده می شود. شکل زیر این اتصال را نشان می دهد.

ESP-01_Connect3

در همین زمانی که گوشی متصل به ماژول متصل می شود اگر به نرم افزار Serial_Port_Terminal مراجعه کنیم، مشاهده می شود که عبارت 0,CONNECT توسط ماژول پاسخ داده شده است.

ESP-01_Terminal8

همچنین زمانی که درون نرم افزار سوکت پروتکل چیزی بنویسیم و بفرستیم در طرف ماژول با ساختار زیر به نمایش در می آید :

که در آن id ، شماره اتصال و length طول دیتا دریافت شده می باشد.

برای مثال در شکل زیر یک عبارت از گوشی برای ماژول ارسال کردیم.

ESP-01_Connect4

دیتایی که در سمت ماژول دریافت می شود به صورت زیر است:

ESP-01_Terminal9

برعکس حالت فوق هم میتوانیم عمل نماییم. یعنی ماژول به عنوان فرستنده و کامپیوتر به عنوان گیرنده در شبکه عمل کند. بدین منظور از دستور AT+CIPSEND به صورت زیر استفاده می شود.

که در آن id شماره اتصال و length طول دیتا برای ارسال است.

برای مثال می خواهیم Electrovolt.ir که 14 حرف دارد را ارسال نماییم.

ESP-01_Terminal10

همانطور که مشاهده می کنید ماژول OK می دهد و با ارسال > منتظر دریافت داده می شود. با ارسال عبارت مورد نظر ماژول تعداد بایت های دریافتی و SEND OK را پاسخ می دهد که به معنای موفقیت آمیز بودن ارسال می باشد.

ESP-01_Terminal11

اگر در همین زمان به نرم افزار SocketProtocol روی موبایل نگاه کنیم ، دیتای دریافت شده را در قسمت Answer From Server مشاهده خواهیم کرد.

ESP-001

حال میخواهیم مراحل ارتباطی فوق را در یک کامپیوتر دیگر انجام دهیم و بدینوسیله به انتقال دیتا میان کامپیوتری که به ماژول وصل است و یک لپ تاپ یا PC دیگر بپردازیم. برای این کار نیاز به یک PC دیگر و نرم افزار ServerClient  در آن داریم. که در شکل زیر آن را مشاهده می کنید. این نرم افزار دقیقا کار SocketProtocol را درون لپ تاپ یا رایانه شخصی انجام می دهد.

ESP-01_ServerClient1

ابتدا میبایست به ماژول ESP-01 با پسورد 123456789 توسط لپ تاپ متصل شد. سپس بعد از وارد کردن IP و PORT به صورت شکل زیر و با کلیک بر روی Connect اگر همه چیز درست باشد ، Connected to Server نمایش داده می شود.

ESP-01_ServerClient2

در همین زمانی که لپ تاپ متصل به ماژول می شود اگر به نرم افزار Serial_Port_Terminal مراجعه کنیم، مشاهده می شود که عبارت 0,CONNECT توسط ماژول پاسخ داده شده است. سپس یک عبارت دلخواه به ماژول ارسال کردیم.

ESP-01_ServerClient3

زمانی که در طرف کامپیوتر چیزی بفرستیم در طرف ماژول با ساختار زیر به نمایش در می آید :

که در آن id ، شماره اتصال و length طول دیتا دریافت شده می باشد.


راه اندازی ماژول ESP8266 به صورت کلاینت

در این بخش با فرض اینکه سرور در محل دیگری راه اندازی شده است و ماژول به عنوان کلاینت ( Client ) به آن متصل شده باشد ، به ارسال/دریافت دیتا خواهیم پرداخت.  در مرحله اول می بایست یک سرور ایجاد کرد. برای ایجاد سرور در تلفن همراه از نرم افزار SocketProtocol و برای ایجاد سرور در رایانه های شخصی از نرم افزار ServerClient استفاده می شود. ابتدا به ماژول دستورات زیر را ارسال می کنیم.

ESP-Client1

بعد از اتصال wifi گوشی به ماژول به سراغ نرم افزار SocketProtocol و بخش Server مراجعه می کنیم. در این مرحله یک سرور روی پورت دلخواه برای مثال پورت 9999 ایجاد می کنیم. ابتدا عدد پورت را وارد کرده و سپس Listen را میزنیم.  عبارت Socket in Listen نمایش داده می شود.

ESP-Client2

در مرحله بعدی باید آی پی تلفن همراه (سرور) را بدانیم تا بتوانیم توسط ماژول به سرور وصل شویم. نرم افزار SocketProtocol این قابلیت را دارد که با مراجعه به بخش Setting&Help آدرس آی پی تلفن همراه را نشان می دهد. همانطور که در شکل زیر مشاهده می کنید آی پی دستگاه مورد استفاده 192.168.4.2می باشد.

ESP-Client3

برای اتصال کلاینت به سرور از دستور CIPSTART استفاده می شود. نحوه استفاده از این دستور به صورت زیر است.

که در آن id شماره ارتباط ، type نوع ارتباط ( TCP یا UDP ) ، ip آدرس آی پی سرور و port شماره پورت جهت اتصال را مشخص می کند. دستور فوق برای ارتباط ماژول ( کلاینت ) به تلفن همراه ( سرور ) به صورت زیر می شود:

ESP-Client4

بعد از ارسال دستور فوق عبارت 0,CONNECT به معنای اتصال صحیح ، توسط ماژول برگشت داده می شود. بعد از اتصال صحیح سرور و کلاینت می توانند دیتا مبادله نمایند. اگر دیتایی از طرف تلفن همراه ( سرور ) ارسال کنیم در طرف ماژول به صورت زیر دریافت می شود.

که در آن id ، شماره اتصال و length طول دیتا دریافت شده می باشد. برای مثال عبارت ELECTROVOLT را بعد از تایپ درون نرم افزار SocketProtocol با زدن SEND برای ماژول ارسال می کنیم.

ESP-Client5

برای ارسال دیتا از ماژول ( کلاینت ) به تلفن همراه ( سرور ) از دستور CIPSEND به صورت زیر استفاده می شود:

که در آن id شماره اتصال و length طول دیتا برای ارسال است. برای مثال عبارت TEST را ارسال می کنیم.

ESP-Client7

بعد از ارسال صحیح عبارت SEND OK توسط ماژول برگشت داده می شود. بعد از ارسال توسط کلاینت دیتای دریافت شده در سمت سرور به نمایش در می آید.

ESP-Client8

برای خاتمه به ارتباط و بستن آن از دستور CIPCLOSE به صورت زیر استفاده می گردد:

که در آن id همان آی دی است که در هنگام شروع ارتباط ساخته شده بود.

ESP-Client9


اتصال ماژول به یک روتر WiFi

در این بخش اصول اتصال به یک روتر WiFi توضیح داده می شود که این روتر میتواند به اینترنت نیز متصل باشد. با ارسال دستور CWLAP ماژول کلیه دستگاه های WiFi اطراف به همراه Mac آدرس و قدرت سیگنال آنها را نشان می دهد.

ESP-Router1

با استفاده ازدستور AT+CWJAP=”SSID”,PASSWORD” میتوان به هر یک از وسایل اطراف متصل شد. برای مثال به یک روتر WiFi با نام Mohamad متصل شدم.

ESP-Router2

نکته : زمانی که ماژول به روتر مورد نظر متصل شود ابتدا WIFI CONNECTED پاسخ می دهد و بعد از لحظاتی WIFI GOT IP و OK را به کامپیوتر می فرستد. این نشان می دهد که یک IP منحصر به فرد از طرف روتر برای ماژول ایجاد شده است. این آدرس منحصر به فرد اهمیت زیادی دارد و در ارتباط میان دستگاه های متصل به روتر از آن استفاده می شود.

برای اینکه بفهمیم آی پی ماژول و Access point وصل شده در این اتصال چیست از دستور CIFSR استفاده می کنیم.

ESP-Router3

در این حالت ماژول به یک شبکه WiFi که یک روتر اینترنت می باشد متصل شده است و مشخصاتی را برای ما ارسال کرده است که شامل آی پی ماژول و آی پی ماژول از نظر روتر می باشد. این مشخصات برای کارهای بعدی بسیار مفید هستند.

APIP: Access Point IP

APMAC : Access Point MAC

STAIP: Static IP

STAMAC: Static MAC

نکته : Static IP ، آی پی اختصاص داده شده به ماژول زمانی که به روتر وصل می شود را نشان می دهد.

در حالی که ماژول به روتر WiFi وصل است ، من لپ تاپ خود را نیز به Mohamad وصل کردم. شکل زیر نحوه اتصال دستگاهها به یکدیگر را نشان می دهد.

ESP-Router4

نکته 1 : دستگاه هایی که در یک شبکه به هم متصل هستند، میتوانند از طریق IP دیتا رد و بدل کنند.

نکته 2 : در یک شبکه Server دستگاه سرویس دهنده و Client دستگاه سرویس گیرنده است.

نکته 3 : بدست آوردن آی پی کامپیوتر در حین اتصال به یک شبکه WiFi

ESP-Router5

نتیجه : در شکل زیر آی پی های مختلف موجود در شبکه را مشاهده می کنید.

ESP-Router6

در این حالتی که دستگاه ها به یکدیگر متصل هستند میتوان کارهای زیر را با ماژول ESP8266 انجام داد :

  1. ارتباط ماژول با دیگر دستگاه های متصل به روتر
  2. اتصال ماژول به اینترنت

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

برای مثال ابتدا در طرف ماژول یک سرور روی پورت دلخواه ایجاد می کنیم. سپس در طرف کامپیوتر درون نرم افزار ServerClient ، آدرس آی پی مقصد ( ماژول ) را آدرس شناسایی شده توسط روتر تایپ می کنیم یعنی در اینجا باید بنویسیم 192.168.1.5 . شکل زیر انجام این عملیات در طرف ماژول و در طرف کامپیوتر را نشان می دهد.

ESP-Router-Server

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

برای اتصال ماژول به اینترنت نیز از پورت 80 به جای پورت دلخواه استفاده می شود و آدرس آی پی مقصد ( آدرس آی پی سایت یا وب سرویس مورد نظر ) قرار می گیرد.

>برای آموزش بیشتر در مورد شبکه های کامپیوتری به این لینک مراجعه کنید <


راه اندازی ماژول ESP-01 با AVR

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

ESP-01_Micro

نکته 1 : همانطور که در شکل مشاهده می کنید، به علت اینکه ولتاژ ارسال از طرف میکرو یا کامپیوتر 5 ولت است، نیاز به مدار تقسیم مقاومتی برای کاهش ولتاژ به 3.3 ولت هستیم. ( تغذیه ماژول و ولتاژ کلیه پایه ها 3.3 است )

نکته 2 : ماژول ESP-01 را نمیتوان مستقیما روی برد بورد نصب نمود. برای نصب این ماژول روی برد بورد سه راهکار زیر وجود دارد :

1- ساخت مبدل با پین هدر و برد هزار سوراخ :

ESP-01_Breadboard

2- استفاده از کابل برد بورد :

ESP-01_Connect

3- لحیم کاری مستقیم روی ماژول :

ESP-01_connect


 راه اندازی ماژول ESP-01 با میکروکنترلر AVR

در این مرحله برنامه ای مینویسیم که کارهای انجام گرفته در مراحل قبلی را توسط میکروکنترلر انجام دهد. بنابراین به جای استفاده از USBtoTTL در سمت ماژول یک میکروکنترلر Atmega32 قرار خواهد گرفت که دستورات AT را به ماژول ارسال می کند.

نکته مهم : برای ارتباط ماژول با میکروکنترلر نیاز است تا باودریت روی 9600 تنظیم شده باشد. زیرا در این فرکانس خطای ارتباط کمتر می باشد. بنابراین قبل از اتصال به میکرو این کار را انجام می دهیم.

ESP-01_Terminal12

اتصالات میکرو همانند شکل قبل خواهد بود با این تفاوت که در این نوع اتصال پایه های Rx و Tx میکرو و ماژول را به صورت ضربدری به هم وصل می کنیم. برای این ارتباط تغدیه 5v و 3.3v مجزا نیاز است. بنابراین مداری نهایی به صورت شکل زیر می باشد. یک LED نیز صرفا جهت تست و عیب یابی به مدار اضافه شده است.

ESP01-Atmega32

تنظیمات کدویزارد :

ESP-01_CodeWizard

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

توضیح برنامه :

بعد از ارسال دستورات مورد نیاز، یک سرور روی پورت 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 برای ماژول ارسال می گردد.

 

پیاده سازی :

ESP-01_Micro2

نحوه تست مدار :

بعد از انجام همه مراحل قبل و روشن کردن مدار ، نوبت به ارتباط با ماژول می رسد. برای موبایل های اندرویدی نرم افزار Socket Protocol را نصب کنید.

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

درون نرم افزار Socket Protocol بروید و در قسمت Client ، آی پی ماژول و پورت مورد اتصال را وارد نمایید.

نکته : آی پی ماژول 192.168.4.1 و پورت 8888 می باشد.

سپس Connect را لمس می‌کنیم. اگر تمام مراحل را درست انجام داده باشید در بالای نرم افزار عبارت Socket connected  به نمایش در می‌آید.

حال برای ارتباط با ماژول باید یک عبارت 5 حرفی مانند START را Send نمایید.

سپس ماژول هر ثانیه عبارت Electrovolt.ir را به گوشی شما می فرستد.

ESP-AVR-Test


طراحی مدار راه اندازی ESP-01 و ESP-12E

در این مرحله برای آموزش و راحتی کار با ماژول های 01 و 12E مداری طراحی می کنیم که بتوان هر دو ماژول را از طریق مبدل UART به USB به کامپیوتر متصل کرده و مستقیما ماژول را راه اندازی نمود. در این طراحی از مبدل USB به سریال FT232RL استفاده می کنیم که قابلیت ارتباط با ماژول در ولتاژ 3.3 ولت را دارد. از دو جامپر p2 و p3 جهت تعیین ماژول فعال، استفاده می کنیم. شکل زیر شماتیک مدار نهایی و اصلاح شده را نشان می دهد.

ESP01-12-Schematic

همانطور که در شکل مشاهده می شود از پورت USB جهت تغذیه 5 ولت مدار استفاده شده است که توسط رگولاتور AMS1117  به 3.3 ولت تبدیل شده و تغذیه ماژول های ESP-01 و ESP-12E را فراهم می کند. همچنین آی سی FT232RL مبدل USB به UART است که پایه 4 آن ( VCCIO )، حداکثر ولتاژ پایه های UART می باشد و برای برقراری ارتباط با ماژول ها به ولتاژ 3.3 ولت متصل می شود. شکل زیر مدار ساخته و تست شده توسط الکترو ولت را نشان می دهد.

ESP-PCB-Electrovolt


دانلود سورس پروژه شامل :

  • سورس پروژه در نرم افزار کدویژن
  • سورس شماتیک و PCB در نرم افزار Altium
  • گزارش کامل پروژه در قالب pdf
  • نرم افزار ServerClient
  • نرم افزار Socket Protocol
  • نرم افزار Terminal Serial Port
  • دیتاشیت ESP8266 و کلیه دستورات AT Command

قیمت : 12هزار تومان

لینک خرید آنلاین

83+

کاربرانی که این مطلب را پسندیده اند:

  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
این مطلب را با دوستانتان به اشتراگ بگذارید

دیدگاه (94)

  • امید پاسخ

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

    ۲۵/۰۹/۱۳۹۵ در ۰۹:۴۲
  • Ali پاسخ

    سلام . من الان میخام دیتایی مثل “on” “off” بفرستم تا لامپ روشن یا خاموش بشه میشه کمک کنید توی کد نویسیش . لطفا راهنمایی کنید . با سپاس

    ۲۱/۱۰/۱۳۹۵ در ۲۲:۱۶
  • مهدی پاسخ

    سلام ممنون از مطالب اموزنده تون

    ۲۶/۱۰/۱۳۹۵ در ۱۶:۳۷
  • امیر پاسخ

    سلام وممنون از سایت خوبتون
    میخواستم بدونم در بین فایل هایی که برا فروش گذاشتین سورس نرم افزار server/client هم هست؟
    با تشکر

    ۲۸/۱۰/۱۳۹۵ در ۰۵:۲۰
    • ادمین الکترو ولت پاسخ

      سلام دوست عزیز خیر

      ۲۸/۱۰/۱۳۹۵ در ۱۹:۵۶
  • amirkrz پاسخ

    با سلام و تشکر بابت مطالب فوق
    ممنون میشم به سوال بنده پاسخ بدید
    در حالت “اتصال ماژول به روتر wifi” اگر بخوام به وسیله کامپیوتری که به همون روتر متصل هست با ماژول ارتباط برقرار کنم، باید از آی پی که روتر به ماژول اختصاص میده استفاده کنم؟ اگر بله، اسم تخصصی این آی پی چیه؟
    در ضمن اگر بخوایم از یه مکان دیگه و با استفاده از اینترنت به ماژول وصل بشیم باید چیکار کنیم؟
    خیلی ممنون و متشکر

    ۱۸/۱۱/۱۳۹۵ در ۲۳:۲۲
    • ادمین الکترو ولت پاسخ

      سلام دوست عزیز بله هر بار که هر وسیله ای به روتر وصل میشه یک آی پی خصوصی ( private ) بهش اختصاص داده میشه که در ماژول ESP8266 میتوان با کامند AT+CIFSR آن را فهمید. اگر بخواهیم از یک مگان دیگه وصل بشیم باید با آی پی پابلیک ( Public ) ابتدا به روتر متصل شده و سپس توسط MAC با وسیله موجود در شبکه روتر ارتباط برقرار کنیم

      ۱۹/۱۱/۱۳۹۵ در ۰۵:۱۱
  • saeed729352 پاسخ

    سلام و عرض ادبممنون بابت آموزش خوبتونببخشید من میخوام یکی از ماژول هارو سرور و یکی رو کلاینت کنم و از کلاینتدیتا بفرستم برای سرور چوری باید این کارو انجام بدم؟ ممنون میشم منو راهنمایی کنید

    ۲۶/۱۱/۱۳۹۵ در ۱۳:۵۸
    • ادمین الکترو ولت پاسخ

      سلام دوست عزیز آموزش کاملش در همین پست داده شده است.

      ۲۷/۱۱/۱۳۹۵ در ۰۷:۳۵
  • moch24 پاسخ

    سلام زمانی که باودریت را با pc بر روی ۹۶۰۰ قرار میدهیم و از pc جدا کرده و وارد مدار میکنیم باودریت بر روی پیش فرض یعنی ۱۱۵۲۰۰ قرار میگیرد لطفا راهنمایی کنید

    ۲۶/۱۱/۱۳۹۵ در ۱۷:۵۸
    • ادمین الکترو ولت پاسخ

      سلام دوست عزیز ماژول بنده چنین مشکلی نداشته است اما میتوانید به صورت دائمی با باودریت 115200 توسط میکرو با ماژول ارتباط داشته باشید.

      ۲۷/۱۱/۱۳۹۵ در ۰۷:۳۵
  • محمد پاسخ

    با عرض سلام و خسته نباشید میخواستم بدونم که این ماژول قابلیت اینو داره که یه فایلی از روی کارت mmc رو  برداره(با میکروکنترلر) و به دستگاهی مثلا گوشی بفرسه ؟  خواهشا راهنمایی کنید.

    ۲۲/۱۲/۱۳۹۵ در ۱۷:۵۳
    • ادمین الکترو ولت پاسخ

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

      ۲۲/۱۲/۱۳۹۵ در ۲۰:۰۹
  • مجید پاسخ

    آموزش عالی و کاربردی بود، سپاسگذارم.

    ۳۰/۰۱/۱۳۹۶ در ۱۱:۳۲
  • هوشیار پاسخ

    سلام ممنون از اموزش کامل شماایا دستوری هست که تمام تنظیمات ماژول را به حالت اول برگردونه؟

    ۰۳/۰۲/۱۳۹۶ در ۲۰:۴۷
    • ادمین الکترو ولت پاسخ

      سلام دوست عزیز تنها دستور در این رابطه AT+RST هستش

      ۰۵/۰۲/۱۳۹۶ در ۰۵:۴۵
  • نادیا پاسخ

    سلام ، خسته نباشید ، برای اینکه این ماژول رو به اینترنت و یک micro controller وصل کنیم و از طریق اینترنت یک LED را روشن خاموش کنیم چه کار باید انجام بدیم .من مطالب بالا را خواندم متوجه نشدم که برای این کار از کدام قسمت باید استفاده کنم یا اینکه دقیقا چه کاری باید کرد.ممنون میشم که جواب بدید.

    ۱۵/۰۲/۱۳۹۶ در ۱۵:۲۸
    • ادمین الکترو ولت پاسخ

      سلام برای اینکه بتونید از طریق وب به میکرو متصل بشید باید “وب سرویس Http ” روی میکروکنترلر پیاده کنید. معمولا روی میکروکنترلرهای ARM نظیر رسپری پای این کارو انجام میدن ولی روی AVR هم میشه

      ۱۶/۰۲/۱۳۹۶ در ۱۸:۱۴
  • اشکان پاسخ

    ایول سایته جدید عالیه دعا دعا میکردم زودتر بیاید بالا

    ۲۳/۰۲/۱۳۹۶ در ۰۹:۵۲
    • ادمین الکترو ولت پاسخ

      ممنون از همراهی و حسن نظرتون

      ۲۳/۰۲/۱۳۹۶ در ۱۵:۰۷
  • Mahdi پاسخ

    سلام من یه کاری میخوام با نرم افزار اردیونو انجام بدم لطفا راهنماییم کنید، میخوام تو فلش این ماژول چندتا عکس بریزم و توسط وای فای ارسال کنم تو براوزر،اما نمیدونم کطور عکس بریزم تو فلش ماژول، ممنون میشم راهنمایی کنید

    ۲۵/۰۲/۱۳۹۶ در ۰۶:۰۲
    • ادمین الکترو ولت پاسخ

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

      ۲۵/۰۲/۱۳۹۶ در ۱۸:۴۷
  • مجتبی پاسخ

    سلام با تشکر از مطالب مفیدتون
    میخواستم بپرسم که عدد 13 در این دستور (sprintf ( str,”AT+CIPMUX=1%c”, 13 به چه منظور هست ؟
    اگه یه عدد دیگه بذاریم چه اتفاقی میفته؟
    ممنون

    ۰۱/۰۳/۱۳۹۶ در ۱۴:۴۳
    • ادمین الکترو ولت پاسخ

      سلام دوست عزیز
      عدد 13 کد اسکی کاراکتر اینتر ( یا Line Feed ) است که در پایان هر دستور باید باشد

      ۰۱/۰۳/۱۳۹۶ در ۲۳:۱۱
  • فراهانی پاسخ

    مهندس سلام من یه پروژه دانشجویی دارم با wemosd1که esp8266روش سواره یا انبرد هستش
    ومیخام با یک اپ یا صفحه وب کنترلش کنم
    میتونید کد هاشو برام بنویسید؟المانهام ۴تا لامپ هستش با یک استپ موتور
    Jazromaad@
    ایدی تلگرامم هست بیزحمت پیغام بدید تا باهاتون مستقیم حرف بزنیم
    با تشکر

    ۱۱/۰۴/۱۳۹۶ در ۰۹:۱۷
  • hasti پاسخ

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

    ۰۱/۰۵/۱۳۹۶ در ۰۱:۵۷
  • mohaaamad پاسخ

    سلام ببخشیدمیخواستم بدونم چرادستورات کامل راه اندازی ماژول رونذاشتید؟مثلادستوری که اپراتوررومشخص کنه یادستوری که قدرت سیگنال رومشخص کنه و…
    استادمن واسه پروژه گفتن که دستورات راه اندازی حداقل300تامیشه،اینایی که شماگذاشتیدرواجراکردم گفتن کامل نیست

    ۰۳/۰۵/۱۳۹۶ در ۲۰:۱۶
    • ادمین الکترو ولت پاسخ

      سلام چون همین دستورات برای شروع کافیست

      ۰۳/۰۵/۱۳۹۶ در ۲۰:۲۴

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

هجده + 10 =