ایجاد یک شبکهTCP SERVER از طریق ماژول ESP8266-12 و گوشی موبایل:
در قسمت اول آموزش راه اندازی ماژول ESP8266 در مورد ویژگی های این ماژول , نحوه پروگرم کردن آن از طریق رابط سریال و همچنین راه اندازی سخت افزاری این ماژول به طور کامل صحبت کردیم.وقت آن رسیده است که در مورد کدهای این قطعه و نحوه نوشتن برنامه بیشتر صحبت کنیم.همان طور که در قسمت اول آموزش گفتیم , ماژول ESP8266 معمولا با برنامه اولیه AT Command Firmware ارائه می شود.در مورد نحوه برنامه ریزی این فایل بر روی حافظه ماژول نیز توضیحات لازم ارائه شد.در صورتی که با این روند آشنا نیستید می توانید قسمت اول این آموزش را مطالعه فرمایید.
AT Command ها در واقع دستوراتی هستند که می توان به وسیله آن ها ماژول را در حالت کاری مورد نظر پیکر بندی نمود.این دستورات با عبارت’AT+X”شروع می شوند که به جای X دستور مربوطه قرار می گیرد.بسیاری از ماژول های دیگر مانند ماژول GSM نیز از این دستورات پشتیبانی می کنند.درفایل زیر لیست مهمترین دستورات AT Command به همراه توضیحات آن آورده شده است , می توانید آن را دانلود کنید.
اما در این آموزش قصد داریم یک سرویس TCP را با استفاده از ماژول ESP8266 ایجاد کنیم به طوری که با روشن نمودن WiFi هر دستگاه اندرویدی و یا کامپیوتری که دارای کارت شبکه WiFi است, می توان مانند Access Point به ماژول وصل شد و با استفاده از یک برنامه ارائه دهنده سرویس TCP دستوراتی برای ماژول ارسال کرد.ماژول نیز این دستورات را در قالب یک رشته کاراکتر برای میکروکنترلر ارسال می کند و میکرو نیز با پردازش این رشته , پین های خود را متناسب با دستور دریافتی صفر یا یک می کند. برای این پروژه مدار شکل زیر را ببندید:در این پروژه از ماژول ESP8266 ورزن ۱۲ استفاده شده است .همچنین میکروکنترلر نیز ATMEGA16A است.
میکروکنترلر با ارسال دستورات زیر برای ماژول ,آن را به عنوان TCP SERVER پیکربندی می کند.
AT+CWMODE=3 :این دستور ماژول را در مد Access Point و Station قرار می دهد.
AT+CIPMUX=1: از این دستور برای اتصال چند دستگاه به ماژول استفاده می شود.
AT+CIPSERVER=1 :این دستور ماژول را در مد TCP server پیکربندی می کند.
سورس کامل پروژه را همراه با توضیحات می توانید در پایان نوشته دانلود کنید.
برنامه های اندرویدی زیادی وجود دارند که از طریق پروتکل TCP می توانند تبادل اطلاعات کنند.یکی از این برنامه ها برنامه TCP/ UDP SERVER است که هم از طریق TCP و هم از طریق UDP می تواند با دیگر دستگاهها ارتباط برقرار کنند. این برنامه را از لینک زیر دانلود کنید.
پس از دانلود و نصب برنامه , به قسمت تنظیمات اپلیکیشن رفته ومطابق شکل زیر تنظیمات لازم را اعمال کنید.
این برنامه از یک سری کلید تشکیل شده که با فشردن هر کدام از آن ها یک رشته کاراکتر را در قالب پروتکل TCP ارسال می کند.برای هماهنگی بین دستورات ارسالی و دستورات موجود در برنامه میکروکنترلر , با نگه داشتن کلید مورد نظر عبارت command را مطابق شکل زیر تغییر دهید.
این کار را برای چهار کلید و به ترتیب LED1 تا LED4 و cmd1 تا cmd4 تکرار کنید.همچنین دو کلید برای روشن و خاموش کردن همه ی کلید ها با دستور on-all و off-all تنظیم کنید.
پس از اتصال تغذیه مدار و روشن نمودن WiFi گوشی خود ، ماژول را با نام مورد نظر جستجو کنید و به آن connect شوید.پس از این کار برنامه UDP/TCP SERVER را باز کنید و کلید های تنظیم شده را یک به یک فشار دهید . با این کار باید led های متصل به میکروکنترلر روشن شود.نکته قابل توجه در مورد این پروژه این است که شما از طریق چندین دستگاه به طور هم زمان می توانید به ماژول وصل شوید و دستورات را برای آن ارسال کنید.
برنامه میکرو کنترلر با کامپایلر CODEVISION و به زبان C نوشته شده است.
دیدگاه کاربران ...
تعداد دیدگاه : 74
سلام دوستان عزیز
از سایت خیلی خوبی داری، بهتون تبریک میگم
با این ماژول تصویر رو هم میشه به گوشی ارسال کرد؟
مثلا تصویر دوربین مداربسته یا آیفن تصویری
متشکرم دوست عزیز. بله این امکان وجود داره.
سلام
سایت مفیدی دارید
یه سوال داشتم ایا میشه ای پی ماژول رو تغییر داد؟
اگر میشه راهنمایی کنید
متشکرم
درود بر شما
بله با استفاده از دستور”AT+CIPSTA=”ip برای حالتی که ماژول در مد station قرار داره و با استفاده از دستور ” AT+CIPAP=”ip برای حالتی که ماژول رو در حالت access point پیکربندی کرده اید می توانید ip اون رو تغییر بدید.
اگه در مد both بود چیکارش کنیم؟
من هر چقدر با دستور AT+CIPSTART کار کردم نتونستم ip رو تغییر بدم
AT+CIPSTART صحیح نیست.درستش AT+CIPSTA هست.
سلام
۱-راهی هست که برقراری اتصال رو با یک کلاینت به صورت سخت افزاری متوجه بشیم مثلا یکی از پایه های ماژول تغییر وضعیت بده تا از این پایه بشه برای وقفه در میکروکنترولر استفاده کرد؟
۲-برای برقراری ارتباط از طریق SPI آیا باید AT+COMMAND ها را از طریق SPI برای ماژول بفرستم؟
ممنون
همانطور که در قسمت اول آموزش گفته شده این ماژول در واقع یک میکروکنترلر هست که یکی از واحد های جانبی اون WIFI است.پس برای یک کردن پایه اون باید توی برنامه اش تعریف بشه.AT COMMAND هم یک برنامه هست که در واقع شما را درگیر کدنویسی نمی کنه و صرفا از طریق ارسال عبارت هایی از این ماژول استفاده می کنید.با استفاده از برنامه AT COMMAND شاید بتونید از وقفه ارسال و دریافت UART استفاده کنید.اما اگر می خواهید با هر بار وصل شدن کلاینت یکی از پین های ماژول یک بشه باید برنامه ای اختصاصی برای اون بنویسید , کامپایل کنید و بر روی ماژول قرار دهید.برای نوشتن برنامه اختصاصی , نرم افزارها و کامپایلر هایی در سطح اینترنت وجود دارند که از عبارت هایی موسوم به LUA برای برنامه نویسی استفاده می کنند که البته همه آنها رایگان نیستند ولی اخیرا افرادی کتابخانه این ماژول را برای ARDUINO نوشته اند که می تونید از اون استفاده کنید.البته آموزش این کار به زودی در سایت قرار داده می شه.
در مورد سوال دوم هم باید بگم که AT+COMMAND فقط از طریق پورت UART به میکرو فرستاده می شه و برای استفاده از SPI باید از برنامه ی دیگری استفاده کنید.
سلام و خسته نباشید.
میخواستم بابت قسمت ۱ اموزش تشکر کنم.کارمونو راه انداخت.ممنون.
میخواستم ببینم برای ویندوز اپ یا صفحه html ای مانند tcp/udp server موجود هست؟
ممنون
سلام
بله وجود داره به زودی آموزشش روی سایت قرار می گیره.
سلام. از مطالب خوبتون تشکر میکنم. من از ماژول esp-01 استفاده میکنم و به صورت زیر تنظیم کردم
AT+CWMODE=3
AT+CIPMUX=1
AT+CIPSERVER=1,8888
و دستور CIFSR رو میزنم آی پی رو ۱۹۲٫۱۶۸٫۴٫۱ نشون میده ولی نمیتونم به وسیله برنامه گوشی با ماژول کانکت بشم. لطفا راهنمایی کنید؟؟؟
دقت کنید که پورت مربوطه در اپلیکیشن را روی ۳۳۳ تنظیم کنید همچنین عبارت AT+CIPSERVER=1 درسته .اگه با این کار درست نشد برنامه رو روی یه گوشی یا تبلت دیگه تست کنید.
چند بار شماره موبایل را فرستادم ولی کد ۴ رقمی را دریافت نکردم.
ممنون بابت آموزشتون.لینک دریافت سورس کد خرابه.لطفا درستش کنید
سلام.
خسته نباشید.
این سورس کد راه اندازی ارور ۴۰۴ میده.
با سلام
ممنون از پاسخگویی خوبتون به سوالات
من قصد دارم یک اکسس پوینت بسازم و طبق این دستورات پیش میرم:
AT+RST
AT+CWMODE=3
AT+CWSAP=”espAP”,”123″,5,3
اررور میده مرحله آخر!
ولی (AT+CWSAP=”espAP”,”123″,5,0) که امنیتش روی OPEN MODE باشه اکی میشه
کانال های مختلفی رو هم امتحان کردم . مشکلش با رمز گذاشتن چیه؟
SSID باید حداقل ۸ کاراکتر باشه اگه درست نشد شماره کانال رو تغییر بده مثلا .
با سلام
می خواستم بدونم تنظیماتی که با دستورات at command به ماژول داده میشه بعد از قطع جریان برق به طور کاملل باقی میمونه؟؟
بعضی از دستورات توی حافظه ماژول باقی میمونه مثل گذاشتن پسورد و…
البته برای آگاهی از این دستورات می تونید فایل PDF مربوط به AT COMMAND که برای دانلود توی همین پست قرارداده شده رو مطالعه کنید.
خیلی ممنون بابت پاسخ دهی سریع و مفیدتون
سلام.ممنون از سایت خوبتون.
من برای پروژه کارشناسی نیاز به تباذل اطلاعات بین میکرو و کامپیوتر و میکرو و گوشی اندروید دارم.چطور میتونم این کارو بکنم.لطفا هر چه زودتر راهنماییم کنید،باید سریع پروژمو تحویل بدم 🙁
ممنون
همین پروژه دقیقا همین کار رو انجام میده.کافی یه بار پست رو از اول تا آخر بخونی . برای ارسال اطلاعات می تونید از همین برنامه میکرو ایده بگیرید.
AT+CIPSERVER=1,1395
OK
۰,CONNECT
۰,CLOSED
۰,CONNECT
۰,CLOSED
۰,CONNECT
۰,CLOSED
سلام ممنون از پاسخ دهی سریعتون
یه مشکل من با ایجاد سرور دارم اونم قطع و وصل شدن اتصال هستش که مدام روی ترمینال نشون میده . راه حل چیه؟
لازمه که بگم من این دستور AT+CIPSTO? رو زدم که فکر میکردم فقط برای مشاهده تنظیمات تو زمینه time out هست و بعد از اون اینطوری شد ! چهطوری میتونم از حالت time out داشتن خارجش کنم؟ ؟
می تونید با استفاده از همین دستور مقدار time out رو تغییر بدید یا با استفاده از دستور AT+RESTORE ماژول رو به تنظیمات کارخانه ریست کنید.
ممنون
تنظیمات کارخانه باعث نمیشه نیاز به پروگرم کردن با FLASHER نیاز پیدا کنیم؟
چون ماژول من تنظیمات اولیه رو داشت و نیاز به فلش کردن نبود ..
خیلی ممنون آقای محمدی با دستور AT+RESTORE درست شد..
سلام.ممنون از پاسخ دادنتون.برنامه ای مثل udpstpserver برای کامپیوتر هست؟اگه هست نامش رو بگید.ممنون میشم
درود بر شما
بله وجود داره از این سایت می تونید دانلود کنید
http://www.hw-group.com/products/hercules/index_en.html
سلام
ممنون از پست مفید تون
من تمام تنظیمات را مطابق گفته شما انجام دادم برای تبدیل ماژول به سرور.
موبایل من به ماژول متصل شده و علامت وای فای هم حتی بالای صفحه ی گوشی قابل مشاهده است.
اما با چند تا اپلیکیشن امتحان کردم و اطلاعات را مطابق زیر وارد کردم ولی هیچ کدوم متصل نمیشوند.
IP : 192.168.4.1
PORT : 8888
وقتی هم که دستور AT+CIFSR را میزنم تا آی پی ماژول را پیدا کنم، ERROR میدهد.
لطفا راهنمایی بفرمایید.
سلام
پورت باید روی ۳۳۳ باشه .اگه درست نشد یه برنامه برای ویندوز هست که می تونید با لپتاپتون به ماژول وصل بشید اگه تونستید پس مشکل از برنامه اندروید یا گوشی موبایل هست/برنامه رو می تونید این سایت دانلود کنید.
http://www.hw-group.com/products/hercules/index_en.html
سلام. خسته نباشید.
اول از همه لینکی که انتهای پروژه قرار دادین کار نمیکنه.این:
“”برنامه میکرو کنترلر با کامپایلر CODEVISION و به زبان C نوشته شده است:….””
دوما برای روشن و خاموش کردن led ها باید به میکرو برنامه بدیم یا داخلش برنامش نوشته شده هست؟ اگه باید برنامه داد بگین چجوری و با چه برنامه ای؟ ممنون
سلام. خسته نباشید.
اول از همه لینکی که انتهای پروژه قرار دادین کار نمیکنه.این:
“”برنامه میکرو کنترلر با کامپایلر CODEVISION و به زبان C نوشته شده است:….””
دوما برای روشن و خاموش کردن led ها باید به میکرو برنامه بدیم یا داخلش برنامش نوشته شده هست؟ اگه باید برنامه داد بگین چجوری و با چه برنامه ای؟ ممنون.( اگه میشه جواب بدید.)
با عرض سلام و خسته نباشید؛ممنون از آموزشتون.
من برای تغییر باود ریت ماژول از دستورAT+CIOBAUD= استفاده میکنم.اما در برنامه ترمینال ارور میده.این کاررو برای چندین باودریت انجام دادم اما فایده ای نداشت.لطفا راهنماییم کنید.با تشکر
سلام
از این دستور استفاده کنید AT+UART
مثلاAT+UART=115200,8,1,0,0
۸ بیت دیتا
STOP BIT:1
PARITY :NONE
FLOW CONTROL NON
متاسفانه بازم ارور میده
سلام من مشکل باودریت شما رو دارم مشکلتون چطوری حل شد؟
دستور AT+CIOBAUD رو میزنم ارور میگیره
سلام،مشکل باودریتم حل شد.ممنون از راهنماییتون.
چطور با استفاده از میکرو کنترلر دستورات AT COMMAND رو به ماژول esp بفرستم؟من همونجور که تو پروژتون بود کدامو نوشتم.ولی اصلا دستورات at commadn به ماژول ارسال نمیشه.اگه میشه راهنماییم کنید.و اگه میتونید مختصری در باره کد های پروژه مخصوصا وقفه بکار برده شده توضیح بدید.
با تشکر
وقفه پورت سریال با دریافت هر بایت اجرا می شه . اطلاعات دریافتی از ماژول توی یک بافر قرار می گیره . برای اینکه هر بسته داده رو بتونی پردازش کنی اول باید منتظر دریافت کاراکتر n\ یا r\ باشی(چون دستورات AT با این کاراکتر خاتمه پیدا می کنه) بعد از اون با ید بسته داده رو با کدها و توابعی که می نویسی تجزیه و عبارت مورد نظرت رو بیرون بکشی.
سلام من مشکل باودریت شما رو دارم مشکلتون چطوری حل شد؟
دستور AT+CIOBAUD رو میزنم ارور میگیره
از دستور AT+UART استفاده کنید. دیدگاههای قبلی رو مطالعه کنید
متاسفانه زیاد متوجه توضیح هاتون نشدم.با استفاده از برنامه ترمینال میتونم به ماژول دستور بفرستم.اما با میکرو کنترلر مطابق پروژه شما عمل کردم ولی فایده نداشت.اگه میشه در این مورد توضیح بدید.ممنونتون میشم.
سلام خسته نباشید
اگه لینک رو درست کنید خیلی ممنون میشم
خیلی گیرم
مشکل برطرف شد. از بردباری شما سپاسگزارم
لینک خرابه
مشکل برطرف شد.
سلام ممنون از سایت خوبتون
در ضمن لینک سورس کد خراب شده یک لطفی بکنید ردیف کنید . با تشکر
لینک دانلود درست شد. لطفا چک بفرمایید.
درود بر شما
در صورتی که بخواهیم پورت های a را صفر و یک کنیم چه باید کرد؟
سلام و ممنون از سایت شما. من میخوام دمای محیط رو داشته باشم و تو یه درجه ای که رسید که قابل تنظیم هم باشه رله رو باز کنه و اطلاعات تو lcd و تو گوشی دیده بشه کارم سخته ؟ میشه راهنمایی کنین ؟؟ البته با آردینو
سلام
در مورد روشن و خاموش کردن رله با استفاده از http می تونید قسمت سوم رو مطالعه کنید.البته اگر مقداری با کد نویسی آشنایی داشته باشید می تونید مطالب قسمت دوم و سوم رو با هم تلفیق کنید و به اون چیزی که می خواید برسید.
سلام
ممنون برای در اختیار گذاشتن اطلاعاتتون
لینک دانلود برنامه متاسفانه کار نمیکنه!!
ممنون میشم رسیدگی کنید
با سلام و خسته نباشید
می خواستم بدونم من برای این که از دو تا ماژول وای فای برای ارتباط بی سیم بین دو تا میکرو استفاده کنم باید چکاری انجام بدهم من به راحتی می تونم اطلاعت USART میکرو را ارسال و دریافت کنم در RF ولی با وای فای تا حالا کار نکردم نمی دونم چیکار باید کنم برای فعال سازی ماژل به عنوان فرستنده و گیرنده!!!!!!!!؟
مدار من دو تا میکرو هستش که یکی اطلاعات رو ارسال می کنه و دیگری دریافت می کنه و انلایز می کنه من نمی خوام از اردیونو استفاده کنم می خوام طوری از ماژول استفاده کنم که اطلاعات که من می خوام رو از میکرو بگیره و بفرسته و دیگری اون رو بگیره و بفرسته به میکرو دیگه همین.
آیا برنامه خاصی میخواد ؟
لطفآ کمکم کنید
با سلام لینک دانلود خراب شده است
لطفا بررسی فرمایید ممنون
سلام لینک دانلود خرابه میشه , لطفا رسیدگی کنید.
اگه لینک رو درست کنید خیلی ممنون میشم
اگه لینک رو درست کنید خیلی ممنون میشم….
با تشکررر فراوان..
اگه بشه email کنید ک خیلی عالی میشه
سلام…با تشکر از سایت خوبتون…اگر امکان داره عکس های با کفیت مدار ها رو برام بفرستید لصفا (مقادیر قطعات معلوم نیستند)
سلام ممنون از سایت خوبتون
در ضمن لینک خراب شده یک لطفی بکنید ردیف کنید . با تشکر
سلام لینک دانلود که برام ایمیل کردین خراب است. لطفا پیگیری کنید. سپاس
سلام خسته نباشید
لینکتون خخرابه لطفا رسیدگی نمایید
سلام
ممنون از زحمات و سایت خوبتون.
من میخوام از طریق میکرو به ماژول وصل بشم و اون برنامه قسمت سوم آموزش رو با کدویژن به ماژول بدم.
امکانش هست؟؟
لطفا راهنمایی کنید
سلام
لینک دانلودی که به ایمیل ارسال می شه خرابه
لظفا درستش کنین
با تشکر
سلام فایل زیپ خراب است
با سلام و تشکر از آموزشتون، لینک خراب است.
با سلام من این پروژه رو بستم ولی اصلا به گوشی کانکت نمیشه . ولی وقتی ماژول esp رو روشن میکنم میتونم از طریق وای فای بهش وصل بشم ولی از طریق نرم افزار اندروید نمیشه و هیچ led روشن نمیشه .. نمیدونم مشکلم کجاست اگه بشه راهنماییم کنین ممنون میشم
با سلام و تشکر از مطلب خوبی که ارائه کردین.
لینک دانلود متاسفانه خرابه و فایل زیپ شده مشکل داره لطفا فایل رو به ایمیل بنده ارسال کنید با تشکر
سلام
لینک دانلود درست نیست
لطفا ایمیل کنید
سلام برادر خسته نباشی میشه تنظیمات esp8266 توضیح بدید؟ از چه دستوری استفاده کنم که بتونم با میکرو ارتباط برقرار کنم؟من هرکاری کردم نتونستم.
ممنون میشم راهنماییم کنید
سلام
بابت سایت خوبتون واقعا ممنون
متاسفانه لینکی برای من ارسال نمیشه ، لطفاً لینک دانلود رو برام ارسال کنید، ممنون
سلام فایل را به ایمیل ارسال نمی کند
سلام. ایمیلم رو وارد کردم اما لینک دانلود برام ارسال نشد. لطفا پروژه رو به ایمیل alizadehamir20@gmail.com یا alizadehamir21@gmail.com ارسال کنید.
سلام من ایمل رو ارسال میکنم ولی لینک واسه ی من ارسال نمیشه
جهت رفع سوالات و مشکلات خود از سیستم پشتیبانی سایت استفاده نمایید .
دیدگاه ارسال شده توسط شما ، پس از تایید توسط مدیران سایت منتشر خواهد شد.
دیدگاهی که به غیر از زبان فارسی یا غیر مرتبط با مطلب باشد منتشر نخواهد شد.