مقدمه:
یکی از سادهترین کاربردهای ماژول ESP8266 استفاده از firmware پیش فرض AT Command میباشد که براحتی میتوان به کمک پورت سریال و یک میکرو یا کامپیوتر به ماژول متصل شد و عملیات مورد نظر مثل اتصال به اینترنت یا غیره را انجام داد. اما متاسفانه برخی از ماژولهای ESP مثل ماژول ESP8266-01S معمولاً فاقد فرمویر AT Command بوده و در وهله اول با اتصال به پورت سریال و ارسال دستور AT هیچ پاسخی برنمیگردد. همچنین ممکن است ماژولی را به آردوینو متصل کرده و در آن برنامه نویسی کرده باشید و بعداً بخواهید که پروژه دیگری با AT Command اجرا کنید. به هر روی برای آپگرید ماژول ESP8266 بهترین روش استفاده از اسکریپت پایتون esptool.py میباشد که در ادامه شرح داده می شود.
نکته: نوشتن فرمویر بصورت فریمور اشتباه است و باید از آن پرهیز شود.
نصب پایتون و esptool.py
قبل ازنصب پایتون باید از عدم وجود آن در سیستم خود اطمینان حاصل کنید. برای اینکار روی منوی استارت کلیک کرده و CMD را سرچ کنید و سپس در محیط خط فرمان عبارت زیر را تایپ و اینتر کنید:
python –version
اگر شماره نسخه ای چاپ شود یعنی پایتون نصب است. در غیر این صورت وارد سایت
شده و آخرین نسخه را دانلود و نصب کنید.
پس از نصب، مجدداً وارد خط فرمان شده و مطابق دستور زیر نسخه نصب شده را چک کنید:
python –version
حال نوبت نصب esptool.py است. esptool یک برنامه یا اسکریپت پایتون است که برای برنامه ریزی ماژولهای ESP8266 بکار میرود.
برای نصب esptool ابتدا روی منوی start کلیک کرده و CMD را سرچ کنید و سپس در محیط خط فرمان عبارت زیر را تایپ و اینتر کنید:
python -m pip install esptool
یا
py -m pip install esptool
اگر نصب نشد قند شکن را روشن کنید تا تحریم ها را دوربزنید.
بعد از نمایش خطوطی esptool نصب میشود. برای اطمینان از نصب این اسکریپت در CMD تایپ کنید:
esptool.py version
یا
esptool version
اگر شماره نسخه نمایش داده شد یعنی این اسکریپت که در واقع برنامه پروگرمر ESP8266 میباشد روی سیستم شما نصب شده است.
مرحله بعدی نحوه استفاده از این برنامه است.
سخت افزار مورد نیاز برای آپدیت ESP8266
برای برنامه ریزی فلش ESP8266 باید آن را با کمک یک ماژول USB به TTL به کامپیوتر متصل کنیم. نکته مهم این است که اکثر مبدلهای USB به سریال خروجی دیتای 5 ولت دارند ولی منطق ESP8266 کمتر و در محدوده 3.3 ولت است. برای حل این مشکل یا از ماژول با منطق 3.3 ولت استفاده کنید و یا از یک شبکه مقاومتی متشکل از مقاومتهای 2.2 کیلو و 3.3 کیلو بر روی پایه RX ماژول ESP8266 استفاده نمایید. ضمنا تغذیه 3.3 ماژول را نیز با جریان مناسب در حدود 300 میلی آمپر و حتما با خازنهای 100 نانوفاراد و 1000 میکروفاراد موازی کنید تا ماژول در هنگام عملکرد ریست نشود. (خازن 100 نانوفاراد در نزدیکترین حالت ممکن به پایههای تغذیه ESP8266 نصب شود و اهمیت این خازن به حدی است که در برخی از موارد با قرار ندادن آن، ماژول درعملکرد خود چه در حالت برنامه ریزی و چه در حالت عملکرد عادی با ریستهای مداوم مواجه خواهد شد. همچنین خازن 1000 میکروفاراد نیز جریانهای لحظهای ماژول را تامین میکند)
برای ساخت پروگرمر از شکل بالا استفاده کنید. مقاومتها می تواند بین 2.2 تا 10 کیلواهم باشد. در شکل زیر هم نحوه تبدیل منطق ماژول مبدل USB به سریال 5 ولت به 3.3 ولت را مشاهده میفرمایید:
بعد از اتصال ماژول ESP به ماژول سریال و در نهایت اتصال به کامپیوترمطابق نقشه بالا، ابتدا کلید فشاری Prog را نگه داشته و بعد از لحظه کوتاهی کلید Reset را فشار دهید و رها کنید، سپس بعد از یک لحظه کوتاه دست خود را روی کلید Prog بردارید. در واقع مطابق شکل زیر باید پس از ریست شدن ماژول ESP پایه GPIO0 در وضعیت Low منطقی باشد تا وارد مد برنامه ریزی شود.
پنج ثانیه اول فیلم زیر نحوه فشار کلیدها را نشان می دهد. (ضمناً می توانید برد خام (PCB) پروگرمر ESP8266 را از این لینک تهیه کنید)
پس از این کار برای تست صحت ارتباط عبارت زیر را در CMD وارد کرده و اینتر کنید:
esptool.py chip_id
یا
esptool chip_id
همچنین برای تشخیص سایز حافشه فلش ESP8266 می توان در cmd دستور زیر را وارد کرد:
esptool.py flash_id
یا
esptool flash_id
دانلود فرمویر firmware مناسب AT Command برای ESP8266
در این مرحله باید آخرین نسخه از firmware مربوط به AT Command ماژول ESP8266 را دانلود کنید . این فایل از لینک زیر قابل دریافت است:
ESP8266_AT_Firmware_1.7.4.0_avr64.com.zip
آپدیت، آپگیرد یا پروگرم کردن ماژول ESP8266
برای پروگرام کردن محتوای فایل دانلود شده بر روی فلش ESP8266 باید دستور زیر را در CMD وارد کنید:
esptool.py write_flash –flash_mode dout –flash_size 1MB 0x0 boot_v1.7.bin 0x01000 at/512+512/user1.1024.new.2.bin 0xfb000 blank.bin 0xfc000 esp_init_data_default_v08.bin 0xfe000 blank.bin 0x7e000 blank.bin
اما با توجه به اینکه احتمال بروز خطا در تایپ این دستور زیاد است ما این دستور را داخل یک فایل bat به نام prog.bat نوشتهایم و در داخل پوشه firmware دانلودی قرار دادهایم. کافیست روی این فایل دابل کلیک کنید تا محتوای این اسکریپت اجرا شود و ماژول شروع به پروگرم شدن نماید.
بررسی نسخه AT Command
بعد از آپدیت ماژول مای فای ESP822 برای بررسی نسخه firmware ابتدا یک بار دکمه Reset را فشار دهید تا ماژول بصورت عادی و در مد آماده به کار روشن شود. سپس یک نرم افزار ترمینال مثل Hype Terminal را باز کرده و روی باودریت 115200 قرار دهید. با ارسال دستور AT+GMR باید شماره نسخه firmware نمایش داده شود:
1 2 3 4 5 6 |
AT+GMR AT version:1.7.4.0(May 11 2020 19:13:04) SDK version:3.0.4(9532ceb) compile time:May 27 2020 10:12:17 Bin version(Wroom 02):1.7.4 OK |
منبع:
بازدیدها: 827
با سلام
من وقتی دستور esptool.py chip_id رو اجرا میکنم خطای زیر رو نمایش میده:
C:\Users\Farzad>esptool.py chip_id
esptool.py v3.3
Found 1 serial ports
Serial port COM6
Connecting………………………………..
COM6 failed to connect: Failed to connect to Espressif device: Serial data stream stopped: Possible serial noise or corruption.
For troubleshooting steps visit: https://docs.espressif.com/projects/esptool/en/latest/troubleshooting.html
A fatal error occurred: Could not connect to an Espressif device on any of the 1 available serial ports.
ایراد از کجاست؟
سلام
ترتیب فشردن دکمه های ریست و پروگ چک بشه
ارتباط صحیح پورت سریال رو چک کنید
ترمینال با دسترسی ادیمن اجرا بشه
آیا ماژول وای فای سالمه؟
دمت گرم عالی بود
من تبدیل USB رو نداشتم به جاش از اردوینو استفاده کردم خیلی هم قشنگ جواب داد
دمت گرم
خواهش میکنم دوست من
خوشحالم که مفید واقع شده
سلام مهندس
آیا
ESP8266-01
نیز به آپدیت نیاز دارد؟
سلام اگه کار میکنه نیازی نداره، ولی اگه می خواید بهتر بشه و نسخه فرمویرش که با دستور AT+GMR مشاهده میشه از 2020 کمتره (مثلا 2016 هست) با آپدیت سرعت و کیفیت کارش خیلی بهتر میشه.