نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی. پرتال اطلاعاتی
  • خانه
  • جالب هست
  • سیستم عامل ESP8266، برنامه نویسی در Arduino IDE. به روز رسانی سیستم عامل ESP8266

سیستم عامل ESP8266، برنامه نویسی در Arduino IDE. به روز رسانی سیستم عامل ESP8266

اهداف و دلایل

این دومین مقاله نویسنده در مورد مدار مجتمع ESP8266، حاوی یک میکروکنترلر RISC 32 بیتی با ویژگی‌های کامل و مدار Wi-Fi داخلی 802.11 b/g/n. شرح داده شده با استفاده از آردوینو IDE برای برنامه نویسی ESP8266 و شامل اطلاعات مهم، که در اینجا تکرار نمی شود. اگر آن را نخوانده اید، توصیه می کنیم این کار را بکنید.

اطلاعات در مورد ESP8266 در اینترنت کم نیست. در واقع، ممکن است مقدار زیادی از آن وجود داشته باشد... اشتباه است. توسعه دهندگان تراشه، Espressif، ظاهرا تصمیم گرفته اند نه تنها از تولید برون سپاری خودداری کنند، بلکه از دخالت مستقیم در توسعه خط ماژول های ESP که از تراشه ESP8266 استفاده می کنند نیز اجتناب کنند. در عوض، آنها اطلاعات و خدمات پشتیبانی را از طریق یک انجمن برای کسانی که مایلند با پشتکار و صبر در هزارتو حرکت کنند، ارائه می دهند. وجود یک انجمن دیگر که علیرغم نام esp8266.com، توسط Espressif اداره نمی شود، بر این سردرگمی افزوده است. علاوه بر این، فروشندگان، ولاگرها و نویسندگان بسیاری نیز وجود دارند که اطلاعاتی را ارائه می دهند که از خوب تا گیج کننده تا نقطه ای که کاملاً اشتباه است را ارائه می دهند.

ماژول های ESP در دسترس هستند منابع مختلفو سفت‌افزار موجود در تراشه‌های ESP8266 روی ماژول‌ها تقریباً همیشه قدیمی است و اغلب در مورد منشأ آنها شک و شبهه ایجاد می‌کند. همچنین گاهی اوقات "به روز رسانی ها" و ابزارهایی که از همان منابع در دسترس هستند مشکوک هستند. بنابراین، هدف این مقاله مستندسازی مراحل دانلود جدیدترین سیستم عامل موجود به طور مستقیم از Espressif و نصب آن با استفاده از ابزار برنامه نویسی ارائه شده توسط Espressif است.

اتصال تجهیزات

برای به روز رسانی سیستم عامل در هر ESP8266، باید آن را به درستی روشن کنید و به رایانه خود وصل کنید. علاوه بر این، لازم است ابزاری برای تنظیم مجدد تراشه و قرار دادن آن در حالت بوت اضافه شود. نمودار و عکس زیر اتصال توصیه شده را نشان می دهد. لطفا توجه داشته باشید که رنگ سیم در نمودار با رنگ های موجود در عکس مطابقت دارد. همانطور که می بینید، من سفت افزار را در ماژول ESP-01 به روز می کنم، اما همان اتصالات روی ماژول های دیگر کار می کنند تا زمانی که همان ورودی/خروجی ESP8266 همانطور که در نمودار نشان داده شده است استفاده شود. اطلاعات اضافینگاه کن .

یک طرح سیستم عامل قابل اعتمادتر در این مقاله ارائه شده است.


برنامه ترمینال PuTTY

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

PuTTY را باز کرده و بر روی دکمه رادیویی سریال کلیک کنید. شماره پورت COM (که باید کمتر از 10 باشد) و نرخ باود (به احتمال زیاد 115200 یا 9600 خواهد بود) را وارد کنید.

در یک پنجره کوچک جلسات ذخیره شده ESP8266 را وارد کرده و روی دکمه کلیک کنید صرفه جویی. پنجره PuTTY باید مانند تصویر زیر باشد.


روی دکمه کلیک کنید باز کن، که باید پنجره جلسه ترمینال PuTTY را باز کند.

Caps Lock را در رایانه خود روشن کنید و AT را تایپ کنید، اما Enter را فشار ندهید. شما باید AT را در پنجره ترمینال PuTTY ببینید. اگر این اتفاق نیفتد، ممکن است پورت COM یا اشتباهی را انتخاب کرده باشید سرعت اشتباهنقل و انتقالات PuTTY را ببندید و این زیرمقاله را از ابتدا شروع کنید. نرخ باود قابل قبول: 9600، 19200، 38400، 74880، 115200، 230400، 460800 و 921600. هر یک از آنها را به نوبه خود امتحان کنید تا زمانی که یکی را پیدا کنید که کار می کند.

وقتی AT را در پنجره ترمینال PuTTY مشاهده کردید، کلید Ctrl را نگه دارید، کلید M و سپس J را فشار دهید. کلید Ctrl را رها کنید. همانطور که در تصویر زیر نشان داده شده است، باید OK را در پنجره ترمینال PuTTY ببینید.


توجه داشته باشید که اگر در پنجره جلسه ترمینال با خطای تایپی مواجه شوید، ممکن است نتوانید خطا را تصحیح کنید. به جای تلاش برای ویرایش و رفع خطا، اغلب بهتر است به سادگی کلید Ctrl را نگه دارید و ابتدا کلید M و سپس کلید J را فشار دهید که یک پیام خطا ایجاد می کند. سپس می توانید دوباره شروع کنید و متن صحیح را وارد کنید.

وقتی اولین پیام OK را می‌بینید، به این معنی است که بر یک مانع بزرگ غلبه کرده‌اید. اکنون می دانید که تجهیزات به درستی متصل شده اند، ماژول ESP کار می کند و پورت COM و نرخ باود صحیح را انتخاب کرده اید. خوب

اکنون PuTTY را دوباره اجرا کنید، جلسه ذخیره شده ESP8266 را انتخاب کرده و روی دکمه کلیک کنید بار باز کن


در اولین خط بالا دستور AT+GMR را می بینید که تایپ کرده اید. همانطور که می دانید یا حدس زده اید، طرح دستوری که ما برای برقراری ارتباط با ESP8266 استفاده می کنیم "AT Command Set" نامیده می شود زیرا همه دستورات با حروف "AT" شروع می شوند.

متأسفانه، نسخه های زیادی از مجموعه دستورات AT وجود دارد. همه آنها شامل برخی از دستورات یکسان هستند، اما بسیاری از دستورات AT وجود دارند که در همه مجموعه دستورات AT استاندارد نیستند. حتی در جامعه ESP8266 چندین نسخه وجود دارد. خط دوم نشان می دهد که هست دستگاه خاص 8266 با سیستم عاملی برنامه ریزی شده است که از نسخه 0.25.0.0 دستورات AT استفاده می کند. سندی در جایی وجود دارد که دستورات موجود در نسخه 0.25.0.0 را تعریف می کند، اما حتی بدون آن سند نیز می توانید از آزمون و خطا برای تعیین اینکه کدام دستورات AT پشتیبانی می شوند استفاده کنید. این در بهترین حالت یک فرآیند بسیار خسته کننده خواهد بود، اما خوشبختانه راه حلی وجود دارد که در کمی توضیح داده خواهد شد.

خط سوم نسخه نرم افزاری (SDK) را که برای این ESP8266 خاص استفاده شده است به عنوان نسخه 1.1.1 مشخص می کند. هر SDK همچنین شامل مجموعه ای از دستورات AT است که بخشی از سیستم عامل هستند و برای کنترل آن سیستم عامل مناسب هستند. ظاهراً نسخه 0.25.0.0 دستورات AT با نسخه 1.1.1 SDK کار می کند. اما همچنان به سندی نیاز دارید که AT نسخه 0.25.0.0 را توصیف می کند تا بفهمید چه دستوراتی فعال هستند. وجود دارد بهترین راه، در بخش بعدی این مقاله توضیح داده شد، اما قبل از اینکه به آن بپردازیم، بیایید یک دستور AT دیگر را امتحان کنیم و ببینیم چه اتفاقی می افتد.

Caps Lock را در رایانه خود روشن کنید و AT+CWLAP را وارد کنید. وقتی AT+CWLAP را در پنجره ترمینال PuTTY مشاهده کردید، کلید Ctrl را نگه دارید و ابتدا کلید M و سپس کلید J را فشار دهید. کلید Ctrl را رها کنید. پس از چند ثانیه، پنجره ترمینال باید مانند تصویر زیر باشد.


AT+CWLAP ESP8266 را مجبور می‌کند تا همه چیز را فهرست کند وای فای موجودنقاط دسترسی. در مورد فوق، دو نقطه دسترسی پیدا شد: یکی به نام "ATT936" و دیگری به نام "tracecom 2.4". البته، نتایج شما متفاوت خواهد بود و باید شامل شبکه Wi-Fi خودتان و همچنین شبکه همسایگان شما باشد.

پنجره جلسه ترمینال PuTTY را ببندید و کلیک کنید خوبوقتی PuTTY از شما می پرسد که آیا مطمئن هستید.

ESP Flash Download Tool

اگرچه به ندرت به صورت آنلاین ذکر شده است، اما Espressif، توسعه دهندگان تراشه ESP8266، نرم افزاری را برای به روز رسانی سیستم عامل در تراشه های خود ایجاد کرده اند. این ESP Flash Download Tool است و این ابزار در دسترس است. آخرین نسخه را دانلود، از حالت فشرده خارج کرده و بر روی کامپیوتر خود نصب کنید. در زمان نوشتن این FLASH_DOWNLOAD_TOOLS_v2.4_150924.rar است.

ابزار را راه اندازی کنید و دو پنجره باز می بینید: یک پنجره رابط گرافیکی (GUI) با فیلدهای ورودی اطلاعات و یک پنجره ترمینال که در آن گزارشی از اقدامات انجام شده نگهداری می شود.

پنجره رابط کاربری گرافیکی (GUI) ابزار دانلود فلش ESP

چند نکته قابل توجه است، اما جای نگرانی نیست:

  • پنجره (GUI) به عنوان V2.3 شناسایی می شود، در حالی که پنجره ورود به سیستم به عنوان V2.4 شناسایی می شود. ظاهراً پنجره رابط کاربری گرافیکی اشتباه علامت گذاری شده است.
  • پورت COM و فیلدهای انتخاب نرخ باود در پنجره رابط کاربری گرافیکی ممکن است قبلاً حاوی داده باشد.
  • فیلدهای ورودی آدرس در پنجره رابط کاربری گرافیکی ممکن است قبلاً حاوی داده باشد.
  • پنجره گزارش ممکن است قبلاً حاوی داده باشد.

دریافت آخرین سیستم عامل

Espressif صفحه ای دارد که آخرین سیستم عامل را فهرست می کند. به bbs.espressif.com بروید، روی ورودی SDKs در لیست دانلودها کلیک کنید و سپس روی "آخرین نسخه" در بخش اطلاعیه ها کلیک کنید. در زمان نگارش، موارد زیر در این صفحه قابل مشاهده است:


آخرین نسخه Non-OS SDK (کیت توسعه نرم افزار) چیزی است که ما به آن نیاز داریم، و به نظر می رسد اگر روی "آخرین نسخه: 1.4.0" کلیک کنید، آخرین نسخه را دریافت خواهید کرد. اما اینطور نیست؛ لطفاً توجه داشته باشید که یک پچ موجود است که با نام esp_iot_sdk_v1.4.1_15_10_22 فهرست شده است. این یک پچ نیست. این نسخه اصلاح شده سیستم عامل نسخه 1.4.0 است. ما به او نیاز داریم و فایل های bin AT_v0.50. به ترتیب روی هر کدام کلیک کنید و فایل ها را دانلود کنید.

البته تا زمانی که این مطلب را می خوانید، ممکن است بیشتر شود آخرین نسخه ها SDKها و مکان آنها در معرض تغییر هستند، اما بر اساس حداقل، می دانید کجا را نگاه کنید. فقط مطمئن شوید که با دقت بخوانید تا مطمئن شوید که آخرین نسخه را دانلود می کنید. همانطور که قبلا دیدیم، این همیشه واضح نیست.

شاید متوجه شده باشید که بخشی برای دانلود اسناد وجود دارد. همه آنها حاوی اطلاعات باکیفیت هستند، اما گاهی اوقات بخش قابل توجهی از آن در ترجمه از چینی به انگلیسی گم می شود. در حال حاضر، فراموش نکنید که دریافت کنید آخرین نسخه هاراهنمای کاربر ESP8266 AT Instruction Set و Espressif IOT SDK.

نصب سیستم عامل

ابزار دانلود فلش ESP را اجرا کنید و مطمئن شوید که هیچ یک از کادرهای سمت چپ وجود ندارد گوشه بالاپنجره رابط کاربری گرافیکی بررسی نشده است. پورت COM مورد استفاده خود و نرخ باود 115200 را در قسمت های ورودی پایین پنجره وارد کنید. لطفاً توجه داشته باشید که با وارد کردن داده ها، در پنجره ورود ثبت می شود.

کیت برنامه نویسی ESP خود را روشن کنید و آن را به رایانه خود وصل کنید. دکمه Reset را فشار داده و نگه دارید و سپس فشار دهید و نگه دارید دکمه فلش. دکمه Reset را رها کرده و سپس دکمه Flash را رها کنید. روی دکمه کلیک کنید شروع کنیدپنجره ESP Flash Tool GUI. برنامه فلش بوت باید ESP8266 را در بیلد شما بررسی کند و گزارشی مشابه گزارش زیر ایجاد کند. دکمه Reset را روی تخته نان خود فشار داده و رها کنید تا از حالت سیستم عامل ESP8266 خارج شوید و عملکرد عادی خود را از سر بگیرید.


توجه داشته باشید که پنجره GUI اکنون حاوی اطلاعاتی در مورد ESP8266 است، از جمله اندازه حافظه فلش (در مثال 8 مگابیت)، فرکانس ساعت(در مثال 26 مگاهرتز) و دو آدرس مک برای تراشه. همان اطلاعات در پنجره ورود به سیستم موجود است.

سپس بر روی چک باکس در پنجره رابط کاربری گرافیکی کلیک کنید که می گوید: SpiAutoSet"، که باعث می شود ابزار بوت به طور خودکار اندازه فلاش و سرعت ساعت صحیح را انتخاب کند.

حال باید فایل هایی را برای نصب در ESP8266 انتخاب کنیم و آدرس حافظه شروع را برای هر فایل تنظیم کنیم. برای به روز رسانی تراشه ESP باید چهار فایل به درستی نصب شود. راهنمای کاربر Espressif IOT SDK را باز کنید و به دنبال بخش نوشتن تصاویر در حافظه فلش بگردید. در نسخه 1.4 راهنما، از صفحه 20 شروع می شود. سپس زیربخشی را که نسخه پشتیبانی شده توسط Cloud Update (FOTA) را توصیف می کند، پیدا کنید و در آن بخش فرعی، جدولی در مورد اندازه حافظه فلش در ESP8266 خود پیدا کنید. در این مثال، اندازه فلش مموری 8 مگابیت است که برابر با 1024 کیلوبایت است، بنابراین جدول 2 در صفحه 25 دفترچه راهنما حاوی اطلاعات مورد نیاز برای مثال است. بیایید به تصویر زیر نگاه کنیم.


این چهار فایل مورد نیاز است: esp_init_data_default.bin، blank.bin، boot.bin و user1.bin. آدرسی که هر فایل باید در آن نصب شود در کنار نام فایل نمایش داده می شود. سه فایل اول مورد نیاز در دایرکتوری esp_iot_sdk_v1.4.1_15_10_22 که قبلاً از bbs.espressif.com دانلود شده بود، و چهارمی در فایل های AT_v0.50 bin قرار دارد. به جایی که این فایل های دانلود شده قرار دارند بروید و مسیرهای آنها را در قسمت های ورودی بالای پنجره کپی کنید. برنامه های رابط کاربری گرافیکیفلش دانلود ابزار; آدرس صحیح هر فایل را در فیلد کنار نام فایل وارد کنید. برای هر فایل مراحل زیر را دنبال کنید:

  • داخل فیلد ورودی "set firmware path" کلیک کنید.
  • روی دکمه ... در سمت راست فیلد ورودی کلیک کنید.
  • به محلی که فایل در آن ذخیره شده است بروید و روی فایل کلیک کنید. رابط کاربری گرافیکی به طور خودکار مسیر فایل را در قسمت ورودی وارد می کند.
  • آدرس صحیح (از جدول) را برای هر فایل وارد کنید.

لطفاً توجه داشته باشید که فایل هایی که باید دانلود شوند ممکن است با موارد ذکر شده در جدول در این مثال یکسان نباشند، اما نزدیک به آنها باشند.

حال بر روی چهار چک باکس سمت چپ نام هر فایل کلیک کنید. پنجره Flash Download Tool GUI باید مانند شکل زیر باشد. آدرس ها را در جدول بررسی کنید.

در طرح بندی سیستم عامل ESP خود، دکمه Reset را فشار داده و نگه دارید و سپس دکمه Flash را فشار داده و نگه دارید. دکمه Reset را رها کرده و سپس دکمه Flash را رها کنید. روی دکمه کلیک کنید شروع کنیدپنجره ESP Flash Tool GUI. دانلود باید شروع شود و پیشرفت آن باید در پنجره رابط کاربری گرافیکی و پنجره ورود به سیستم Flash Download Tool مانند شکل زیر نشان داده شود.


همانطور که در بالا نشان داده شده است، یک عملیات سیستم عامل فلش موفق منجر به ارسال تمام فایل ها به ESP8266 و بسته شدن پورت COM می شود.

بررسی موفقیت سیستم عامل

پس از اتمام عملیات فلش کردن، Flash Download Tool را ببندید. برق را از طرح برنامه نویسی ESP جدا کنید و سپس دوباره برق را وصل کنید.

PuTTY را دوباره راه اندازی کنید، جلسه ذخیره شده ESP8266 خود را انتخاب کرده و کلیک کنید بار. این باید محل انتخاب قبلی شما باشد تنظیمات COMپورت و سرعت انتقال در ویندوز مناسب. کلیک باز کن، و یک پنجره جدید جلسه ترمینال PuTTY باز می شود.

Caps Lock را در رایانه خود روشن کنید و AT را تایپ کنید، اما Enter را فشار ندهید. شما باید AT را در پنجره ترمینال PuTTY ببینید. علامت + و سپس GMR را وارد کنید. وقتی AT+GMR را در پنجره ترمینال PuTTY مشاهده کردید، کلید Ctrl را نگه دارید و ابتدا کلید M و سپس کلید J را فشار دهید. کلید Ctrl را رها کنید. در پنجره ترمینال PuTTY، باید اطلاعات مربوط به سیستم عامل ESP8266 را مشابه آنچه در زیر نشان داده شده است مشاهده کنید.


همانطور که می بینید، ESP8266 به وضوح دارای سیستم عامل جدید نصب شده است. از SDK نسخه 1.1.1 به SDK نسخه 1.4.0 به روز شده است. علاوه بر این، نسخه مربوطه 0.50.0.0 مجموعه دستورات AT نیز نصب شد.

پنجره جلسه ترمینال PuTTY را ببندید و کلیک کنید خوبوقتی PuTTY از شما می پرسد که آیا مطمئن هستید.

و در نهایت

چند تمرین و کل فرآیند به روز رسانی سیستم عامل زمان بسیار کمتری نسبت به خواندن این مقاله می برد. هنگامی که این کار را انجام دادید، به آنچه در داخل ESP8266 است اطمینان خواهید داشت و می توانید به جای حدس زدن سیستم عامل ESP و امید به پشتیبانی، روی پروژه Wi-Fi خود تمرکز کنید. مجموعه مورد نیازدستورات AT

... به طور کلی این مطالب تنها به یک موضوع آردوینو محدود نمی شود.

موضوع ESP8266 بسیار مشکل است. اما اگر با اینها کار کنید ماژول های وای فایدر محیط توسعه آردوینو IDE، آستانه ورود به سطح قابل قبولی برای کاربر متوسط ​​آردوینو کاهش می یابد. و نه تنها مرد آردوینو، بلکه هر شخصی که می‌خواهد چیزی را در مورد موضوع مطرح کند، و بدون صرف زمان زیادی برای خواندن مستندات تراشه و مطالعه API برای این ماژول‌ها.

این ویدیو مطالب ارائه شده در مقاله زیر را به طور کامل کپی می کند.

خوب، ما قبلاً می دانیم که چگونه ESP8266 را وصل کنیم و آن را در حالت برنامه نویسی قرار دهیم، حالا بیایید به چیز مفیدتر برویم.

فوراً می گویم که وقتی ماژول را در محیط توسعه آردوینو برنامه ریزی می کنیم، سیستم عامل اصلی را از بین می بریم و دیگر نمی توانیم با استفاده از دستورات AT با ماژول کار کنیم. شخصاً، این من را سرد و گرم نمی کند، اما اگر کسی به آن نیاز داشته باشد، در پایان مقاله به شما نشان خواهم داد که چگونه سیستم عامل اصلی را به ماژول یا نوعی بوت لودر مانند NodeMcu فلش کنید.

برای شروع، آخرین نسخه Arduino IDE را در وب سایت رسمی دانلود کنید این لحظهاین 1.6.7 است. نسخه های قدیمی تر مانند 1.0.5. مناسب نخواهند بود زیرا آنها به سادگی ندارند عملکرد مورد نیاز، اما رقصیدن با تنبور برای ما جالب نیست، اینطور نیست؟

ما محیط توسعه را راه اندازی می کنیم و بلافاصله به File/Settings می رویم:

Http://arduino.esp8266.com/stable/package_esp8266com_index.json

سپس به Tools/Board:/Board Manager... بروید:

یک پنجره مدیر هیئت مدیره در مقابل ما ظاهر می شود، از طریق آن به سمت پایین حرکت کنید و اگر همه چیز به درستی انجام شود، چیزی شبیه به این را خواهیم دید:

روی نشانگر کلیک کنید " esp8266توسط انجمن ESP8266"پس از آن، ما دکمه "Install" را داریم، انتخاب کنید نسخه مورد نیازاخرینش رو میگیرم از امروز 2.1.0 هستش. و آن را نصب کنید. محیط توسعه فایل های مورد نیاز خود را (حدود 150 مگابایت) و در مقابل کتیبه دانلود می کند. esp8266توسط انجمن ESP8266""INSTALLED" ظاهر می شود، یعنی نصب شده است:

لیست بردها را به پایین اسکرول می کنیم و می بینیم که ESP های مختلف زیادی در لیست داریم، از "Generic ESP8266 Module" استفاده کنید:

به «ابزار» بروید و پورت COM مورد نظر را انتخاب کنید (برای من COM32 است)، سپس سرعت آپلود را تنظیم کنید: «115200»:

سرعت را روی 74880 و "NL & CR" تنظیم می کنیم و دوباره خاموش می کنیم و پاور را اعمال می کنیم و با مقداری اطلاعات اشکال زدایی پاسخ می دهد:

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

به طور پیش فرض سرعت باید 115200 باشد اما در برخی موارد می تواند 9600 باشد و موارد دیگر ... پس سعی کنید آن را پیدا کنید.

پس از انتخاب سرعت مورد نیاز، ماژول "AT" را ارسال می کنیم و باید پاسخ دهد که همه چیز "OK" است. دستور "AT+GMR" اطلاعات مربوط به سیستم عامل را نمایش می دهد.

قبل از شروع فلش ESP8266 در Arduino IDE، به شما توصیه می کنم که مقاله را تا انتها بخوانید.

حالا بیایید سعی کنیم ESP8266 را از طریق Arduino IDE فلش کنیم. ما ماژول را در حالت برنامه نویسی قرار دادیم (من نوشتم که چگونه این کار را انجام دهم).

بیایید یک LED استاندارد به فلاشر اضافه کنیم:

// توسط آقای PodelkinTs youtube.com/RazniePodelki // ویژه سایت/post/271754/ #define TXD 1 // GPIO1/TXD01 void setup() ( pinMode(TXD, OUTPUT); ) void loop() ( digitalWrite( TXD، HIGH (1000) DigitalWrite (TXD، LOW);

فلش شد؟ بنابراین همه چیز به درستی انجام شد. از کجا فهمیدم که ال ای دی به پین ​​اول وصل شده؟ در مقاله قبلی تصویری با پین‌آوت‌های ماژول‌های مختلف وجود دارد و هنگام استفاده از بوت لودر آردوینو، درگاه‌ها علامت‌گذاری شده است (پین‌ها با رنگ صورتی مشخص شده‌اند).

چشمک زدن LED البته خوب است، اما ما باید نوعی وب سرور نصب کنیم یا حداقل با استفاده از دکمه های مرورگر شروع به کنترل LED کنیم، درست است؟ اما در این مورد یک وقت دیگر به شما خواهم گفت.

و حالا نحوه فلش بک فریمور بومیو به طور کلی چگونه یک ماژول را فلش کنیم لودرهای شخص ثالث. برای ESP8266 برنامه ای مانند NodeMCU Flasher وجود دارد که در اصل برای فلش کردن بوت لودر NodeMCU در نظر گرفته شده است. اما همانطور که مشخص شد، سیستم عامل دیگر را کاملاً فلش می کند.

من یک آرشیو با این برنامه و سیستم عامل را برای راحتی به مقاله پیوست می کنم، اما همیشه می توانید نسخه جدید NodeMCU Flasher را دانلود کنید.

در پوشه "nodemcu-flasher-master" 2 پوشه Win64 و Win32 وجود دارد و بسته به عمق بیت سیستم عامل خود، پوشه مورد نیاز خود را انتخاب کنید. سپس، در پوشه Release، "ESP8266Flasher.exe" را اجرا کنید و رابط برنامه را ببینید:

پورت COM مورد نظر را انتخاب کنید و به تب "Config" بروید، ضربدر کنار "INTERNAL://NODEMCU" را بردارید و آن را مانند تصویر یک نقطه پایین تر قرار دهید:

(اگر می خواهید بوت لودر NodeMCU را فلش کنید، ضربدر را از جایی که نبود، بردارید و در جایی که بود، یعنی نزدیک «INTERNAL://NODEMCU» قرار دهید).

سپس روی چرخ دنده کلیک می کنیم و محل قرار گرفتن فریمور ما را انتخاب می کنیم، فریمور معمولا با فرمت *.bin است (در آرشیو پیوست "v0.9.5.2 AT Firmware.bin" است که در پوشه اصلی است) و همچنین "0x00000" را به عنوان و بالاتر انتخاب کنید.

دوباره به تب "عملیات" برمی گردیم، ماژول را در حالت برنامه نویسی قرار می دهیم و روی "فلش" کلیک می کنیم:

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

با دستور AT "AT+GMR" بررسی می کنیم که آیا همه کارها را به درستی انجام داده ایم:

همانطور که می بینید همه چیز به آرامی پیش رفت.

نحوه تست ESP8266

برای تست ESP8266 که به تازگی خریداری کرده اید، به آن نیاز دارید.

توجه!محدوده ولتاژ تغذیه مجاز برای ماژول ESP8266 از 3.0 تا 3.6 ولت است. اینینگ ها ولتاژ بالاتضمین ماژول باعث از کار افتادن ESP8266 می شود.

برای آزمایش ESP8266 ESP-01، فقط سه پایه: VCC و CH_PD (چپ فعال) را به منبع تغذیه 3.3 ولت و GND را به زمین وصل کنید. اگر ESP-01 ندارید، اما ماژول دیگری و GPIO15 روی آن خروجی است، علاوه بر این باید GPIO15 را به زمین متصل کنید.

اگر سیستم عامل کارخانه با موفقیت در ماژول ESP8266 راه اندازی شود، LED قرمز روشن می شود (نشانگر روشن/خاموش، در برخی از نسخه های ماژول، به عنوان مثال ESP-12، ممکن است وجود نداشته باشد) و LED آبی چند بار چشمک می زند. (این نشانگر انتقال داده از ماژول به ترمینال از طریق خط TX-RX است، ممکن است رنگ متفاوتی داشته باشد) و در مال شما شبکه بی سیمیک نقطه دسترسی جدید باید با نام "ESP_XXXX" ظاهر شود، که می توانید آن را از هر کدام ببینید دستگاه های وای فای. نام نقطه دسترسی به سازنده سیستم عامل بستگی دارد و ممکن است متفاوت باشد، به عنوان مثال AI-THINKER_AXXXXC. اگر نقطه دسترسی ظاهر شد، می توانید آزمایشات را ادامه دهید، اگر نه، دوباره منبع تغذیه، CH_PD، GND را بررسی کنید، و اگر همه چیز به درستی وصل شده باشد، به احتمال زیاد شما یک ماژول معیوب دارید، اما امید وجود دارد که سیستم عامل موجود در ماژول تنظیمات غیر استانداردی دارد و شاید فلش کردن آن به شما کمک کند.

نحوه اتصال سریع ESP8266

که در حداقل مجموعهبرای اتصال و فلش ماژول ESP8266 شامل:

توجه! در شکل سمت راست، UTXD (TX) و URXD (RX) ماژول ESP8266 را با خطر و خطر خود به منطق پنج ولتی TTL متصل می کنید! مستندات مربوط به ESP8266 SoC بیان می کند که ماژول فقط 3.3 ولت منطقی را تحمل می کند. در بیشتر موارد، اتصال ESP8266 به منطق پنج ولت به ESP8266 آسیب نمی رساند، اما ممکن است ماژول شما بدشانس باشد. برای از بین بردن خطر خرابی ماژول ESP8266، توصیه می شود از مبدل USB-TTL 3.3 ولتی یا مبدل های TTL 5v-3.3v یا تقسیم کننده مقاومت (در شکل نشان داده نشده است) استفاده کنید. جزئیات بیشتر در مورد تایید سطوح منطقیتو میتوانی بخوانی. گیک های ریسکی مثل من ESP8266 رو مستقیم به منطق پنج ولتی TTL وصل می کنن و اذیت نمی کنن.

توجه! شکل سمت راست اتصال تثبیت کننده برق 1117 را بدون سیم کشی اضافی نشان می دهد. این کار می کند، اما با این حال، توصیه می کنیم از یک نمودار اتصال با تریم خازن استفاده کنید - نمودار اتصال را با برگه داده برای تثبیت کننده خود بررسی کنید یا از یک ماژول آماده بر اساس 1117 استفاده کنید.

ESP8266 - اتصال

قرمز - منبع تغذیه 3.3 ولت

سیاه - GND

زرد - در سمت ESP8266 - RX، در سمت USB-TTL - TX

سبز - سمت ESP8266 - TX، سمت USB-TTL - RX

نارنجی - CH_PD (CHIP ENABLE) - همیشه باید به برق وصل باشد

آبی - GPIO0 - از طریق سوئیچ به زمین متصل می شود تا حالت چشمک زن ماژول فعال شود. برای شروع معمولی ماژول، GPIO0 را می توان در جایی وصل نکرد.

صورتی در نمودار سمت راست - منبع تغذیه ناپایدار 5-8 ولت

4. برای راه اندازی ماژول، مدار GPIO0 - GND را بشکنید و می توانید برق را اعمال کنید (و دقیقا به این ترتیب: ابتدا مطمئن می شویم که GPIO0 در هوا معلق است، سپس به VCC و CH_PD برق می رسانیم)

توجه! در مثال های بالا، در واقع کار، نمونه هایی از اتصال ESP8266، آنها از اتصال پین های ESP8266 "مستقیم" به زمین و برق، یا "هنگ زدن در هوا" استفاده می کنند، زیرا ما RESET را در جایی وصل نکرده ایم، که کاملا نادرست است و فقط برای دو آزمایش اول مناسب است، اگرچه در اکثریت قریب به اتفاق ماژول ها به خوبی کار می کند. فقط پایه VCC "مستقیما" به منبع تغذیه متصل است: CH_PD، RESET، GPIO0، GPIO2 باید از طریق یک مقاومت از 4.7 تا 50 کیلو اهم به منبع تغذیه (VCC) کشیده شود. "مستقیم"، ما فقط GND را به منفی (سیم مشترک) منبع تغذیه وصل می کنیم و GPIO0 را نیز از طریق یک مقاومت تا 10 کیلو به GND می کشیم تا ماژول را در حالت دانلود سیستم عامل قرار دهیم. اگر قصد دارید به آزمایش ESP8266 ادامه دهید، آن را به همان روشی که برای هر میکروکنترلر دیگر انجام می دهید انجام دهید. توصیف همراه با جزئیات pullup و pulldown خارج از حوصله این مقاله است، اما می توانید به راحتی توضیحی در مورد اتصال صحیح پورت های I/O را در گوگل جستجو کنید. اتصال " " به شما این امکان را می دهد که از بسیاری از "معجزات" و مشکلات جلوگیری کنید و در صورت بروز مشکل در راه اندازی یا فلش ماژول ESP8266 به ناچار ضروری خواهد بود.

نحوه اتصال صحیح ESP8266

اگر قصد دارید از ESP8266 برای بیش از یک شب استفاده کنید، به یک گزینه اتصال نیاز دارید که پایداری بیشتری ارائه دهد. در زیر دو نمودار اتصال وجود دارد: با پشتیبانی از بارگیری خودکار سیستم عامل از و بدون آن.

نمودار اتصال ESP8266 (بدون بارگذاری خودکار سیستم عامل، ابتدا با نصب جامپر BURN و راه اندازی مجدد ماژول، آن را فلش می کنیم)

نمودار اتصال با پشتیبانی از بارگذاری خودکار سیستم عامل از Arduino IDE، UDK، Sming. Flash Download Tool و XTCOM_UTIL ممکن است نیاز به غیرفعال کردن RTS/DTR داشته باشند. اگر غیرفعال کردن RTS و DTR برای شما ناخوشایند است، می توانید جامپرها را به مدار اضافه کنید.

این نمودارها اتصال ADC و GPIO های رایگان را نشان نمی دهند - اتصال آنها به آنچه می خواهید پیاده سازی کنید بستگی دارد، اما اگر پایداری می خواهید، فراموش نکنید که همه GPIO ها را به برق (کشش) و ADC به زمین (کششی) بکشید. ) از طریق مقاومت های کششی.

مقاومت های 10k را می توان با مقاومت های دیگر از 4.7k تا 50k جایگزین کرد، به استثنای GPIO15 - مقدار آن باید تا 10k باشد. مقدار خازن که ضربان های فرکانس بالا را صاف می کند، ممکن است متفاوت باشد.

اگر از حالت خواب عمیق استفاده می کنید، باید RESET و GPIO16 را از طریق یک مقاومت خواب عمیق 470 اهم وصل کنید: برای خروج از حالت خواب عمیق، ماژول با اعمال سطح پایین در GPIO16 خود را راه اندازی مجدد می کند. بدون این ارتباط، خواب عمیق برای ماژول شما ابدی خواهد بود.

در نگاه اول، به نظر می رسد این نمودارها نشان می دهد که GPIO0، GPIO2، GPIO15، GPIO1 (TX)، GPIO3 (RX) مشغول هستند و شما نمی توانید از آنها برای اهداف خود استفاده کنید، اما اینطور نیست. سطح بالا در GPIO0 و GPIO2، سطح پایین در GPIO15 فقط برای راه‌اندازی ماژول مورد نیاز است و متعاقباً می‌توانید از آنها به صلاحدید خود استفاده کنید، فقط به یاد داشته باشید که قبل از راه‌اندازی مجدد ماژول از سطوح مورد نیاز اطمینان حاصل کنید.

می‌توانید از TX، RX به‌عنوان GPIO1 و GPIO3 استفاده کنید، فراموش نکنید که هنگام راه‌اندازی ماژول، هر سیستم‌افزاری TX را می‌کشد و اطلاعات اشکال‌زدایی را با سرعت 74480 به UART0 ارسال می‌کند، اما پس از بارگیری موفقیت‌آمیز می‌توانید از آنها نه تنها به عنوان UART0 برای تبادل داده با دستگاه دیگری، بلکه مانند GPIO های معمولی.

برای ماژول‌هایی که تعداد پایه‌های سیمی کمتری دارند، مانند ESP-01، اتصال پین‌های بازگردانده شده لازم نیست. در ESP-01، فقط VCC، GND، GPIO0، GPIO2، CH_PD و RESET سیمی هستند - فقط آنها را سفت کنید. نیازی به لحیم کردن مستقیم به تراشه ESP8266EX و جذب پین های بدون مسیر نیست، فقط در صورت نیاز.

این نمودارهای اتصال پس از آزمایش‌های زیادی که توسط اعضای انجمن ما انجام شد و ذره ذره از اسناد پراکنده و در ابتدا غیرقابل دسترس جامعه ما جمع‌آوری شد، متولد شدند، من فقط سعی کردم این دانش را در یک مکان ترکیب کنم. نکات اتصال زیادی پیدا خواهید کرد. در آنجا می توانید سؤالاتی را که به آنها علاقه دارید یا پیدا کنید بپرسید. اگر در این مقاله خطایی، عدم دقت مشاهده کردید، یا چیزی برای اضافه کردن دارید، پس .

توجه! حتی این طرح ها را نمی توان "ایده آل" نامید. هیچ محدودیتی برای کمال وجود ندارد: اتصال USB-TTL دوم به UART1 راحت است (با ESP8266 فقط می توانید GND و UTXD1 یعنی GPIO2 را برای اتصال ترمینال اشکال زدایی استفاده کنید (شما به یک مبدل USB-TTL دوم نیاز دارید) - سپس می توانید ماژول ESP8266 را از طریق UART0 بدون غیرفعال کردن ترمینال اشکال زدایی در UART1 فلش کنید. ایده خوبی است که مقاومت های کوچک را به پین ​​های هر دو UART وصل کنید، یک دیود در خط RTS قرار دهید، یک خازن به خط برق اضافه کنید تا پالس های فرکانس پایین را کم کند و غیره. به عنوان مثال، در این برد اشکال زدایی بسیار راحت است: LED ها به همه GPIO ها متصل هستند، یک مقاومت نوری به ADC متصل است، اما حیف است که دکمه RESET وجود ندارد و تنها یک جامپر در GPIO0 وجود دارد.

درست است اگر به شما بگوییم که هیچ ایده آلی وجود ندارد و در عین حال طرح جهانیاتصالات ESP8266 مسئله این است که خیلی به سیستم عاملی که می خواهید در آنجا آپلود کنید بستگی دارد. نمودارهای بالا برای مبتدیانی طراحی شده اند که به تازگی شروع به تسلط بر ESP8266 برای آزمایش کرده اند. برای پروژه های واقعی، ممکن است مجبور شوید نمودار را کمی تغییر دهید. برای مثال، باید RTS را به GPIO15 و CTS را به GPIO13 متصل کنید. همچنین در پروژه های واقعیتوصیه می کنم به تغذیه توجه ویژه ای داشته باشید.

اتصال ESP8266 از طریق آردوینو

اگر مبدل USB-TTL 3.3 ولتی در دسترس ندارید، اما آردوینو با مبدل USB-TTL داخلی دارید، می توانید از این نمودار اتصال استفاده کنید.

به چه نکاتی باید توجه کرد:

1. آردوینو ریست به GND (سیم آبی) وصل می شود تا میکروکنترلر روی آردوینو راه اندازی نشود، در این فرم از آردوینو به عنوان مبدل USB-TTL شفاف استفاده می کنیم.

2. RX و TX به صورت متقاطع وصل نمی شوند، بلکه مستقیماً - RX - RX (سبز)، TX - TX (زرد)

3. بقیه چیزها به همان روشی که در مثال های قبلی وجود داشت به هم متصل می شوند

توجه! این مدار همچنین نیاز به تطبیق سطوح TTL 5 ولت در آردوینو و 3.3 ولت در ESP8266 دارد، اما این روش به خوبی کار می کند.

توجه!ممکن است آردوینو یک تثبیت کننده برق نصب کرده باشد که جریان مورد نیاز ESP8266 را تحمل نکند، بنابراین قبل از برقراری اتصال، برگه داده را برای تثبیت کننده ای که نصب کرده اید بررسی کنید. به دلیل خطر آسیب رساندن به تنظیم کننده برق تعبیه شده در آردوینو، سایر اجزای پر مصرف را همزمان با ESP8266 وصل نکنید.

با اتصال به درگاه سریالشما باید کمی جادو کنید: با توجه به انواع سیستم عامل برای ESP8266، اتصال را می توان با سرعت های مختلف انجام داد. سرعت مورد نیاز را می توان با جستجوی ساده از طریق سه گزینه 9600، 57600 و 115200 تعیین کرد. چگونه جستجو کنیم؟ با تنظیم پارامترهای زیر به پورت سریال مجازی خود در برنامه ترمینال متصل شوید: 9600 8N1، سپس ماژول را با جدا کردن CH_PD (فعال کردن تراشه) از منبع تغذیه (USB-TTL همچنان به USB متصل می‌ماند) راه‌اندازی مجدد کنید و دوباره آن را روشن کنید (یعنی. به سادگی CH_PD را تغییر دهید، چرا ما قدرت را تحریف نمی کنیم - بخوانید، همچنین می توانید برای راه اندازی مجدد ماژول، RESET را به زمین متصل کنید) و داده ها را در ترمینال مشاهده کنید. ابتدا، LED های ESP8266 باید همانطور که در ابتدای مقاله در بخش توضیح داده شد روشن شوند. در مرحله دوم، در ترمینال باید "آشغال" را از آن ببینید شخصیت های مختلف، با خط "آماده" به پایان می رسد. اگر «آماده» را نمی‌بینیم، با سرعت دیگری دوباره به ترمینال متصل می‌شویم و ماژول را دوباره راه‌اندازی می‌کنیم.

در یکی از گزینه های سرعت "آماده"، همچنان خواهید دید - تبریک می گویم، ماژول شما آماده استفاده است. اگر نه، پس خوش آمدید - ما سعی خواهیم کرد کمک کنیم، اما ابتدا بخوانید.

کمی بیشتر در مورد "زباله". واقعیت این است که وقتی سیستم عامل شروع می شود، UART ماژول ESP8266 به نرخ باود 74880 تغییر می کند (این چینی ها خیلی بامزه هستند)، اطلاعات اشکال زدایی را به UART خروجی می دهد، سپس سرعت پورت را به 115200 (یا 9600 یا 57600) تغییر می دهد. بسته به نسخه سیستم عامل)، بنابراین این اطلاعات اشکال زدایی به عنوان زباله به نظر می رسد، زیرا ما با سرعت متفاوتی به ماژول متصل می شویم. شما می توانید با سرعت 74880 به ESP8266 متصل شوید (از این سرعت پشتیبانی می کند) و این اطلاعات اشکال زدایی را خواهید دید، چیزی شبیه به این خواهد بود:

c مجموع 0x0d

wdt ریست

بار 0x40100000، لن 25052، اتاق 16

بارگذاری 0x3ffe8cf0، len 6576، اتاق 4

دم 12

chksum 0x0d

csum 0x0d

ولی! شما "آماده" را نمی بینید و نمی توانید ماژول را کنترل کنید تا زمانی که دوباره به سرعتی که سیستم عامل در آن در حال اجرا است وصل شوید.

کار بعدی چیه

اگر تو داری ماژول جدید، به احتمال زیاد یکی از فریمورهای سفارشی قدیمی AT را در آن فلش کرده است. به احتمال زیاد این نوعی AI-THINKER AT v0.16 SDK v0.9.2 است. شما می توانید نسخه سیستم عامل را با استفاده از دستور "AT+GMR" بررسی کنید. مستقیماً در برنامه ترمینال، AT+GMR را بدون نقل قول تایپ کرده و Enter را فشار دهید. ماژول باید "OK" را پاسخ دهد و نسخه سیستم عامل را نمایش دهد (به عنوان مثال، "0016000092" - در نسخه های مختلففرمت خروجی نسخه سیستم عامل AT متفاوت است). کنترل ماژول ESP8266 با دستورات AT مستحق یک مقاله جداگانه است، اما شما به راحتی می توانید آن را با استفاده از یکی از کتاب های مرجع ما در مورد دستورات AT کشف کنید:

در زمان نگارش این مقاله)

2. یکی از ابزارهای کاربردی برای فلش ESP8266 بسته به سیستم عامل خود را از بخش وب سایت ما دانلود کنید.

آنقدر عالی که علاوه بر فریمور برای استفاده از ESP8266 به عنوان یک ماژول WiFi که توسط یک میکروکنترلر خارجی کنترل می شود، فریمورهای زیادی برای استفاده از آن به عنوان یک میکروکنترلر برای اهداف مختلف از جمله در زمینه اینترنت اشیا وجود دارد. در این سری از مقالات، احتمالات را بررسی خواهیم کرد ESP8266با سیستم عامل NodeMCUو یک زبان برنامه نویسی یاد بگیرید LUA.

ESP8266 چیست؟

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

مزایای ESP8266: رابط WiFi، هسته 32 بیتی با عملکرد کافی، قیمت پایین.
معایب: در مقایسه با سایر میکروکنترلرهای 32 بیتی، تجهیزات جانبی بسیار ضعیف هستند.

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

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

ESP-01
ESP-02
ESP-03
ESP-04
ESP-05
ESP-06
ESP-07
ESP-08
ESP-09
ESP-10
ESP-11
ESP-12S
ESP-12E
ESP-12F

نسخه های مختلفی از بردها با ماژول های ESP8266 از قبل لحیم شده، تثبیت کننده های ولتاژ، یک ریزمدار برای ارائه عملکرد پورت سریال UART از طریق USB و پین ها، دکمه ها و غیره وجود دارد که به یک شانه هدایت می شوند. برای کار با چنین تخته هایی کافی است آنها را به آن وصل کنید پورت USBکامپیوتر. هیچ تجهیزات اضافی مورد نیاز نیست. خیلی راحت است. یکی از این بردها NodeMCU است. در مثال ها از برد NodeMCU با ماژول ESP-12F استفاده خواهم کرد. اما، شما به راحتی می توانید یک ماژول، مثلا ESP-01 را بردارید، یک آداپتور UART-USB را به آن وصل کنید و با آن کار کنید. به همان شیوه. ESP-01 خواهد داشت حافظه کمترو پین های کمتری قابل استفاده است اما در غیر این صورت کار با آن مشابه است.


NodeMCU چیست؟

NodeMCU یک پروژه باز و رایگان بر اساس زبان برنامه نویسی Lua است. سیستم عامل بسیار قدرتمند است و به شما اجازه می دهد تا پروژه های استاندارد مختلف را به سرعت پیاده سازی کنید. به عنوان مثال، امروز به عنوان مقدمه، ما یک سوکت وای فای کنترل شده توسط تلفن همراهو با رابط وب. سیستم عامل می تواند اسکریپت های Lua را هم از پورت سریال UART (مشابه دستورات AT) و هم از حافظه فلش داخلی (اسکریپت های اجرایی) اجرا کند. اسکریپت های Lua در Flash در سیستم فایل داخلی ذخیره می شوند. سیستم فایل مسطح و ساده شده است. آن ها هیچ شاخه فرعی با این حال، باحال است. فراموش نکنید که ESP8266 فقط یک میکروکنترلر است. از اسکریپت ها همچنین می توانید به فایل ها دسترسی داشته باشید، اطلاعات مختلف را بخوانید و ذخیره کنید. NodeMCU ماژولار است. که از یک طرف به شما امکان می دهد عملکرد را افزایش دهید و از طرف دیگر سیستم عامل را فقط از ماژول های مورد نیاز بدون هدر رفتن حافظه مونتاژ کنید.

NodeMCU با پروتکل های تبادل داده - HTTP، MQTT، JSON، CoAP کار می کند.
پشتیبانی سنسورهای مختلف
شتاب سنج ADXL345،
مغناطیس سنج HMC5883L،
ژیروسکوپ L3G4200D
سنسورهای دما و رطوبت AM2320, DHT11, DHT21, DHT22, DHT33, DHT44
سنسور دما، رطوبت، فشار اتمسفر BME280،
سنسورهای دما، فشار اتمسفر BMP085،
نمایشگرهای زیادی که بر روی اتوبوس های I2C و SPI کار می کنند. با قابلیت کار با فونت های مختلف.
نمایشگرهای TFT ILI9163، ILI9341، PCF8833، SEPS225، SSD1331، SSD1351، ST7735،
LED های هوشمند و کنترلرهای LED - WS2812، tm1829، WS2801، WS2812،
رابط های پشتیبانی شده - 1-Wire، I2C، SPI، UART،

همچنین می‌توانید از یک ماژول رمزگذاری، یک زمان‌بندی کار، یک ساعت بی‌درنگ، یک پروتکل همگام‌سازی ساعت از طریق اینترنت SNTP، تایمر، یک کانال ADC (یکی)، پخش فایل‌های صوتی، تولید سیگنال PWM در خروجی‌ها (حداکثر تا 6)، از سوکت ها استفاده کنید، از FatFS پشتیبانی می شود، یعنی می توانید کارت های SD و غیره را متصل کنید.

زبان لوا چیست؟

Lua یک زبان تفسیری است که مانند اکثر زبان های تفسیری مدرن، می تواند نسخه های کامپایل شده اسکریپت ها را ذخیره کند. این به شما امکان می دهد سرعت کار را افزایش دهید. لوا به عنوان چند پارادایم قرار می گیرد. این پیچیده نیست و اگر قبلاً به هر زبانی برنامه نویسی کرده باشید، Lua را خیلی سریع یاد خواهید گرفت. اگر به تازگی برنامه نویسی را شروع کرده اید، Lua با دسترسی آن برای مبتدیان شما را شگفت زده خواهد کرد.

هنگام کار با Lua در NodeMCU برخی ویژگی ها وجود دارد. این عمدتا به دلیل ظرفیت حافظه محدود میکروکنترلر ESP8266 است. نیاز به چسبیدن قوانین سادهو سبک کار با لوا را حفظ کنید. در مورد این قوانین کمی بعد به شما خواهم گفت. اگر همان سبکی را که هنگام نوشتن برنامه‌ها به زبان C انجام می‌دهید، حفظ کنید، دیگر نمی‌توانید قدرت کامل Lua و میان‌افزار NodeMCU را احساس کنید. وقتی شروع به نوشتن در Lua می کنید، جذاب می شود و شروع به اجرای کارهای بزرگتر می کنید. این احساس را از دست می دهید که با یک میکروکنترلر کار می کنید و ناخواسته خود را با کارهایی که فراتر از توانایی های یک میکروکنترلر است، بار می کنید. باید به خاطر داشت که ESP8266 منابع محدودی دارد و نباید با کارهایی که میکروکامپیوترها یا رایانه های کامل می توانند انجام دهند بارگذاری شود.

اسناد LUA به زبان روسی: http://www.lua.ru/doc/
یادگیری LUA در 15 دقیقه: http://tylerneylon.com/a/learn-lua/

NodeMCU را از کجا دانلود کنیم؟

البته می توانید سورس کدهای NodeMCU (https://github.com/nodemcu/nodemcu-firmware/releases/) را دانلود کرده و با پارامترهای لازم کامپایل کنید. اما ما این کار را نمی کنیم. یک وب سایت وجود دارد https://nodemcu-build.com، که می توانید NodeMCU را با ماژول های مورد نیاز خود روی آن مونتاژ کنید. شما به سادگی ماژول های مورد نیاز خود را علامت گذاری کنید، ایمیل خود را نشان دهید و روی دکمه “ زیر کلیک کنید ساخت خود را شروع کنید". اول در ایمیل مشخص شدهنامه ای دریافت می کنم که می گوید مجمع شروع شده است. و سپس اعلان تکمیل و لینک دانلود عدد صحیحو شناورنسخه ها اگر از محاسبات ممیز شناور در پروژه خود استفاده نمی کنید، دانلود کنید عدد صحیح". حریص نباشید و ماژول هایی را که قصد استفاده از آنها را ندارید در آن قرار دهید. با افزودن ماژول از دست رفته می توانید در هر زمان سفت افزار جدید را کامپایل کنید. برای مثال، من NodeMCU را با ماژول های زیر ساختم:

چگونه NodeMCU را در ESP8266 آپلود کنیم؟

اکنون که فایل سیستم عامل NodeMCU را داریم، باید آن را در ESP8266 آپلود کنیم. اول از همه، هنگامی که برد NodeMCU را به کامپیوتر خود وصل می کنید، یک مجازی است Comبندر. به طور معمول آخرین نسخه ها نصب ویندوزبدون نیاز به درایور اوبونتو بلافاصله دستگاه متصل را تشخیص می دهد.

سیستم عامل NodeMCU برای ویندوز

کلون git https://github.com/themadinventor/esptool.git

با دستور فلش کنید:

Sudo python esptool.py --port /dev/ttyUSB0 write_flash 0x00000 The_Path_To_The_NodeMCU_Firmware.bin

/Dev/ttyUSB0– پورتی که ESP8266 روی آن آویزان است.
The_Path_To_The_NodeMCU_Firmware.bin– مسیر فایل سیستم عامل

راستی، اسپتولدر ویندوز نیز قابل استفاده است. اسپتولنوشته شده در پایتون، برای کار در ویندوز باید پایتون را نصب کنید.

اسپتولبرای پر کردن برای ما مفید است فایل های باینریبر سیستم فایل NodeMCU. می توانید هر فایلی از جمله اسکریپت ها را آپلود کنید. شما می توانید اسکریپت ها را حتی در Notepad بنویسید، اما من ترجیح می دهم ESPlorer.

ESPlorer، init.lua – نوشتن اولین اسکریپت

برای نوشتن و آپلود اسکریپت ها از برنامه ESPlorer استفاده می کنیم. این یک برنامه چند پلتفرمی است که در آن نوشته شده است جاواو همچنین نیازی به نصب ندارد. هم در ویندوز و هم در اوبونتو یکسان کار می کند.

آرشیو را باز کنید.

در ویندوز ما فایل را اجرا می کنیم ESPlorer.bat

Sudo java-jar ESPlorer.jar

پورت و سرعت را مشخص کنید 9600 :

و ” را فشار دهید باز کن". در ادامه خواهیم دید

ESPlorer یک ویژگی کثیف دارد. همیشه به طور واضح به NodeMCU متصل نمی شود. اگر سعی می کنید هر دستوری را ارسال کنید (با استفاده از ارسال) زباله ها به جای پاسخ عادی در کنسول پرواز می کنند. گاهی بعد از چند بار تکرار همه چیز بهتر می شود. اگر این موضوع شما را آزار می دهد، سعی کنید سرعت اتصال را به 115200 تغییر دهید.


بیایید شروع به ایجاد اولین اسکریپت در Lua کنیم. اسکریپت با نام init.luaپس از شروع NodeMCU به طور خودکار شروع می شود. بیایید یک فایل ایجاد کنیم init.lua.

بیایید فقط یک خط چاپ کنیم:

چاپ ("بله کار می کند!")

فایل را به عنوان ذخیره کنید init.lua. پس از ذخیره، فایل اجرا می شود و باید شاهد اجرای اولین اسکریپت باشیم.

به طور پیش فرض، فایل در دیسک کامپیوتر ذخیره شده و در ESP8266 آپلود می شود.

حالا در مورد بزرگترین مشکلی که NodeMCU دارد. در صورت بروز برخی از خطاهای بحرانی (این اغلب اتفاق نمی افتد، اما اگر اتفاق بیفتد، برای مدت طولانی در خاطر می ماند) NodeMCU ممکن است راه اندازی مجدد شود. و بدترین چیزی که می تواند اتفاق بیفتد راه اندازی مجدد چرخه ای است. اگر در اسکریپتی که به طور خودکار شروع می شود، خطای مهمی ایجاد کنید، این اتفاق می افتد. NodeMCU شروع می شود، یک اسکریپت "buggy" را اجرا می کند، با یک خطای بحرانی مواجه می شود و به راه اندازی مجدد می رود. و غیره تا بی نهایت.

برای محافظت از خودم در حین یادگیری NodeMCU، از تکنیک توضیح داده شده در زیر استفاده می کنم. در اسکریپت شروع init.luaما یک تایمر را شروع می کنیم که فقط یک بار کار می کند و پس از یک زمان مشخص (در این مورد، 5 ثانیه) روند راه اندازی یک اسکریپت دیگر (در این مورد) را انجام می دهیم. main.lua). هیچ چیز دیگری در فیلمنامه وجود ندارد init.luaما نمی کنیم. تمام عملیات در اسکریپت انجام می شود main.lua. بنابراین، اگر در فیلمنامه اشتباه کنیم main.lua، و NodeMCU به راه اندازی مجدد چرخه ای، پس از راه اندازی مجدد 5 ثانیه فرصت داریم تا اسکریپت "باگی" را حذف یا رفع کنیم.

متن init.lua:

چاپ ("در انتظار...") tmr.register (0, 5000, tmr.ALARM_SINGLE, تابع (t) tmr.unregister (0)؛ چاپ ("شروع...")؛ dofile ("main.lua") پایان) tmr.start (0)

علاوه بر این، این رویکرد گنجاندن هر یک را آسان می کند اسکریپت مورد نیاز، در فایل کافی است init.luaبجای main.luaنام یک اسکریپت دیگر را مشخص کنید. این بسیار راحت است زمانی که چندین پروژه یا چندین نسخه از یک اسکریپت را روی یک برد آزمایش می کنید.

به Wifi متصل شوید یا نقطه Wifi خود را ایجاد کنید

برای اتصال به وای فای main.lua ایجاد کنید و بنویسید:

تنظیم WiFi wifi.setmode(wifi.STATION) local cfg=() cfg.ssid="MyWiFi" cfg.pwd="MyWiFiPassword" wifi.sta.config(cfg) cfg = جمع آوری زباله()

پس از اتصال موفق، ماژول یک آدرس IP دریافت می کند. با استفاده از دستور می توانید آن را پیدا کنید:

Wifi.sta.getip()

اگر می خواهیم ESP8266 هات اسپات وای فای خودش را ایجاد کند:

راه اندازی WiFi AP wifi.setmode(wifi.STATIONAP) cfg=() cfg.ssid="ESPWIFI" cfg.pwd="1234567890" wifi.ap.config(cfg) cfg = جمع آوری زباله()

توجه داشته باشید: هات اسپات وای فایاگر رمز عبور کمتر از 8 کاراکتر باشد کار نخواهد کرد. به طور پیش فرض، آدرس IP نقطه همیشه 192.168.4.1 است

می توانید با دستور زیر متوجه شوید:

Wifi.ap.getip()

چه اتفاقی افتاده است جمع آوری زباله ()? تابع جمع آوری زبالهزباله جمع کن است باید در انتهای هر اسکریپت فراخوانی شود. لطفا به متغیر توجه کنید cfgبه عنوان اعلام کرد محلی. فقط در اسکریپت فعلی در دسترس خواهد بود. اگر محلیحذف، سپس متغیر cfgجهانی خواهد بود و در اسکریپت های دیگر موجود است.

GPIO. LED چشمک زن

برای کنترل رله (بالاخره، ما قصد داریم یک سوکت WiFi بسازیم)، باید نحوه کار با پین ها را یاد بگیرید. GPIO. فعلا سعی کنیم استفاده کنیم GPIOبه عنوان خروجی پین کنید و سطح سیگنال را بالا و پایین تنظیم کنید. برای وضوح، بیایید LED را همانطور که در نمودار نشان داده شده است وصل کنیم.

My_pin_number = 1 -- حالت عملیات را به عنوان خروجی gpio.mode تنظیم کنید (my_pin_number، gpio.OUTPUT) -- تنظیم کنید سطح بالا gpio.write (my_pin_number، gpio.HIGH) -- سطح پایین gpio.write را تنظیم کنید (my_pin_number, gpio.LOW) -- LED را 10 بار gpio.serout فلاش بزنید (1, gpio.HIGH, (990000,990000+)، 10، 1)

شماره گذاری پین:

شاخص IOپین ESP8266
0 GPIO16
1 GPIO5
2 GPIO4
3 GPIO0
4 GPIO2
5 GPIO14
6 GPIO12
7 GPIO13
8 GPIO15
9 GPIO3
10 GPIO1
11 GPIO9
12 GPIO10

D0 (GPIO16) فقط می تواند به عنوان خواندن/نوشتن gpio استفاده شود. بدون پشتیبانی از open-drain/interrupt/pwm/i2c/ow

برد NodeMCU

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

سوکت وب

اکنون سروری می سازیم که روی پورت مشخص شده کار کند (بگذارید 333 باشد). سپس با استفاده از برنامه ترمینال و مشخص کردن IP و پورت آن به سرور خود متصل می شویم. و سپس ما به تبادل اطلاعات خواهیم پرداخت.

اسکریپت Main.lua:

تنظیم AP WiFi wifi.setmode(wifi.STATIONAP) cfg=() cfg.ssid="ESPTEST" cfg.pwd="1234567890" wifi.ap.config(cfg) --ایجاد سرور sv=net.createServer(net.TCP ) تابع گیرنده (sck، داده) -- چاپ داده های دریافتی print(داده) -- ارسال پاسخ sck:send("دریافت شده: "..داده) end if sv سپس sv:listen(333, function(conn) conn:on ("دریافت"، گیرنده) conn:send ("سلام!") پایان) پایان چاپ ("شروع شد.")

اکنون اسکریپت ما نقطه Wi-Fi را بالا می برد، سروری ایجاد می کند که منتظر اتصال در پورت 333 است. در زمان اتصال، سرور رشته " را برای مشتری ارسال می کند. سلام!"، و با دریافت داده از مشتری، رشته را برمی گرداند" اخذ شده:و سپس همه چیز را پذیرفت.

اکنون می توانیم تلفن همراه خود را به نقطه وای فای ESP8266 متصل کنیم. اصولاً نیازی به ایجاد نقطه نیست. می توانید اسکریپت را بازنویسی کنید و ESP8266 را به شما متصل کنید شبکه های وای فای. سپس باید IP آن را پیدا کنید و سپس به جای 192.168.4.1 از آن استفاده کنید که بیشتر در مثال ها استفاده شده است.

اما ما همچنان به یک برنامه ترمینال برای اتصال به آدرس IP ESP8266 (192.168.4.1) و پورت مشخص شده (333) نیاز داریم. می توانید PuTTY را روی یک کامپیوتر معمولی نصب کنید. برای گوشی های اندرویدی که استفاده می کنم JuiceSSH.

انتقال داده ها از تلفن همراه با استفاده از JuiceSSH

نصب و راه اندازی کنید RoboRemoFree

ما یک اتصال به سرور ایجاد می کنیم. توصیه می شود تلفن همراه/تبلت به همان شبکه WiFi که سرور در آن قرار دارد متصل شود. در این مورد، ESP8266 ما. به "منو" بروید، "اتصال" را انتخاب کنید

نوع اتصال "اینترنت (TCP)" را انتخاب کنید

IP و پورت را مشخص کنید

انتخاب رابط این برنامه به شما امکان می دهد چندین رابط با کنترل های مختلف ایجاد کنید.

سپس به حالت ویرایش رابط بروید

را کلیک کنید فضای خالیو آنچه را که می خواهیم نصب کنیم را انتخاب کنیم. ما از دکمه ها استفاده خواهیم کرد. "دکمه" را انتخاب کنید

پس از آن یک دکمه روی رابط نصب می شود. می توان آن را جابجا کرد و اندازه آن را تغییر داد.

برای تغییر نام روی یک دکمه، باید روی آن کلیک کرده و "تنظیم متن" را انتخاب کنید.

سپس یک پارامتر دیگر را مشخص می کنیم - "set press action". بیایید آن را روی "1" تنظیم کنیم. وقتی روی دکمه کلیک می کنید، رشته مشخص شده از طریق اتصالی که ایجاد کردیم ارسال می شود. آن ها ESP8266 ما کاراکتر "1" را دریافت می کند و LED را روشن می کند.

بیایید دکمه "خاموش" را به همین ترتیب ایجاد کنیم و عملکرد فشار را "0" تنظیم کنیم.

رابط ما آماده است. با اجرای آیتم منوی “do not edit UI” از حالت ویرایش خارج شوید.

اگر اتصال به سرور (ESP8266) موفقیت آمیز بود، می توانید از آن استفاده کنید. با فشار دادن دکمه "روشن"، LED باید روشن شود و با فشار دادن دکمه "خاموش"، LED باید خاموش شود.

رابط وب

راه دیگری وجود دارد - می توانید یک رابط وب ایجاد کنید و LED را از طریق مرورگر کنترل کنید.

همان اسکریپت + رابط وب:

WiFi AP Setup wifi.setmode(wifi.STATIONAP) cfg=() cfg.ssid="ESPTEST" cfg.pwd="1234567890" wifi.ap.config(cfg) --تنظیم حالت پین my_pin_number = 1 gpio.mode(my_pin_number ، gpio.OUTPUT) --Create Server sv=net.createServer(net.TCP) تابع گیرنده (sck, data) if string.sub (داده, 0, 1) == "1" سپس gpio.write(my_pin_number, gpio .HIGH) else if string.sub (داده، 0، 1) == "0" سپس gpio.write(my_pin_number, gpio.LOW) end end print(data) end if sv سپس sv:listen(333, function(conn ) conn:on("دریافت") conn:send("سلام!") پایان --ایجاد سرور HTTP http=net.createServer(net.TCP) تابع receive_http(sck، داده) درخواست محلی = رشته (data,"([^\r,\n]*)[\r,\n]",1) if request == "GET /on HTTP/1.1" سپس gpio.write(my_pin_number, gpio.HIGH) پایان یابد اگر درخواست == "GET /off HTTP/1.1" سپس gpio.write(my_pin_number, gpio.LOW) end sck:on("sent", function(sck) sck:close() end) پاسخ محلی = "HTTP/ 1.0 200 OK\r\nسرور: NodeMCU در ESP8266\r\nنوع محتوا: text/html\r\n\r\n".. " NodeMCU در ESP8266".. "

NodeMCU در ESP8266

".. "
".. "بر خاموش".. "" sck:send(response) end if http سپس http:listen(80, function(conn) conn:on("receive", receive_http) end) end print("شروع شد.")

توضیح کوتاهی درباره نحوه عملکرد یک وب سرور به طور کلی و اسکریپت ما به طور خاص. پورت استاندارد برای وب سرور 80 است. وقتی در مرورگر تایپ می کنید http://192.168.4.1/، سپس مرورگر به سرور (192.168.4.1) در پورت 80 متصل شده و درخواست ارسال می کند. درخواست چیزی شبیه به این است:

میزبان GET/HTTP/1.1: 192.168.4.1 عامل کاربر: Mozilla/5.0 (Windows NT 5.1; rv: 2.0.1) Gecko/20100101 Firefox Accept: text/html, application/xhtml + xml, application/xml; q = 0.9، * / *; q = 0.8 Accept-Language: ru-RU, ru; q = 0.8، en-US; q = 0.5، en; q = 0.3 Accept-Encoding: gzip، deflate اتصال: keep-alive Upgrade-Insecure-Requests: 1

خط اول پرس و جو برای ما جالب است: GET / HTTP/1.1". حاوی URL است. اگر در مرورگر خود تایپ کنید http://192.168.4.1/ بر ، سپس خط اول پرس و جو خواهد بود " گرفتن /بر HTTP/1.1". و اگر در مرورگر تایپ کنید http://192.168.4.1/ خاموش آنگاه خواهد بود " گرفتن / خاموش HTTP/1.1". این خط است که اسکریپت تجزیه و تحلیل می کند و بسته به URL دریافتی، LED را روشن یا خاموش می کند.

بعد، اسکریپت یک صفحه html ارسال می کند. اما پس از ارسال، باید اتصال را قطع کنید. از آنجایی که ارسال کمی زمان می برد و انتظار برای پایان ارسال از نظر فنی احمقانه است، رویداد " ارسال شد” (ارسال شده) تابع را با رشته وصل کنید sck:close(). این در خط انجام می شود: sck:on("ارسال"، تابع(sck) sck:close() end). پپس از آن ارسال انجام می شود صفحات html sck:send (پاسخ). بادخمه به کار خود ادامه می دهد. وقتی پاسخ به طور کامل ارسال شد، کار خواهد کرد sck:close().

صفحات سایز بزرگبه این ترتیب شما قادر به ارسال آن نخواهید بود. محتویات سنگین باید تکه تکه ارسال شوند. این موضوع در مقاله دیگری با جزئیات بیشتر مورد بحث قرار خواهد گرفت.

رله را با بار وصل می کنیم

توجه! ولتاژ بیش از 40 ولت برای زندگی انسان خطرناک است! هنگام مونتاژ مدار و اتصال لوازم خانگی مراقب باشید. به قطعات زنده دست نزنید.

حالا به جای LED، یک ماژول رله وصل می کنیم و به عنوان بار، یک لامپ، یک بخاری، یک کمپرسور برای آکواریوم، یک فن و غیره را می گوییم.

هنگام اتصال رله ممکن است تفاوت های ظریف وجود داشته باشد. اگر بلوک رله از نظر نوری ایزوله شده باشد (با یک اپتوکوپلر)، به احتمال زیاد نیازی به انجام مجدد کاری نخواهید داشت. اگر بلوک رله مانند من بدون ایزولاسیون نوری باشد، باید کار را با GPIO دوباره انجام دهید، زیرا اولاً رله در سطح پایین روشن می شود نه زیاد و دوم اینکه سطح بالای ESP8266 3.3 ولت است. ، برای یک بلوک رله 5 ولتی این کافی نیست، بنابراین من مجبور شدم خروجی را روی OPENDRAIN تنظیم کنم، پس از آن همه چیز همانطور که باید کار کرد.

نسخه نهایی اسکریپت به شکل زیر است:

WiFi AP Setup wifi.setmode(wifi.STATIONAP) cfg=() cfg.ssid="ESPTEST" cfg.pwd="1234567890" wifi.ap.config(cfg) --تنظیم حالت پین my_pin_number = 1 --gpio.mode (my_pin_number، gpio.OUTPUT) gpio.mode(my_pin_number، gpio.OPENDRAIN) --Create Server sv=net.createServer(net.TCP) گیرنده تابع (sck، داده) if string.sub (داده، 0، 1) = = "1" سپس --gpio.write(my_pin_number, gpio.HIGH) gpio.write(my_pin_number, gpio.LOW) وگرنه اگر string.sub (داده، 0، 1) == "0" سپس --gpio.write (شماره_pin_my، gpio.LOW) gpio.write(my_pin_number، gpio.HIGH) end end print(data) end if sv سپس sv:listen(333, function(conn) conn:on("دریافت"، گیرنده) conn:send ("سلام!") پایان) پایان --Create HTTP Server http=net.createServer(net.TCP) تابع receive_http(sck, data) print(data) local request = string.match(data,"([^\r ,\n]*)[\r,\n]،1) اگر درخواست == "GET /on HTTP/1.1" سپس --gpio.write(my_pin_number, gpio.HIGH) gpio.write(my_pin_number, gpio. LOW) end if request == "GET /off HTTP/1.1" سپس --gpio.write(my_pin_number, gpio.LOW) gpio.write(my_pin_number, gpio.HIGH) end sck:on("sent", function(sck ) sck:close() collectgarbage() end) محلی پاسخ = "HTTP/1.0 200 OK\r\nسرور: NodeMCU در ESP8266\r\nContent-Type: text/html\r\n\r\n".. " NodeMCU در ESP8266".. "

NodeMCU در ESP8266

".. "
".. "بر خاموش".. ""sck:send(response) end if http سپس http:listen(80, function(conn) conn:on("receive", receive_http) end) end print("Started.")

اکنون می توانیم با استفاده از برنامه RoboRemoFree یا با استفاده از مرورگر، "سوکت" را از تلفن همراه روشن و خاموش کنیم. البته می توانید آن را از طریق یک رایانه معمولی و از طریق مرورگر نیز کنترل کنید.



همه اینها خوب است، اما بعد چه؟ اگر 5، 10، 20 داشته باشیم دستگاه های مشابه? چگونه آنها را ترکیب کنید تا مجبور نباشید به هر دستگاه جداگانه متصل شوید. یک پروتکل MQTT برای این کار وجود دارد، اما این یک موضوع جداگانه خواهد بود. در این بین، قابلیت های ESP8266 و NodeMCU را بررسی خواهیم کرد.

برخی قوانین برای کار با زبان Lua در NodeMCU

1. فیلمنامه های طولانی ننویسید. اندازه حافظه ESP8266 بی نهایت نیست. برنامه را به ماژول های کاربردی تقسیم کنید و آنها را به عنوان اسکریپت های جداگانه بسازید و با استفاده از آنها اجرا کنید dofile(). به عنوان مثال، کد اتصال Wifi:

تنظیم WiFi wifi.setmode (wifi.STATION) local cfg = () cfg.ssid = "MyWiFi" cfg.pwd = "MyWiFiPassword" wifi.sta.config (cfg) cfg = جمع آوری زباله ()

را می توان در یک اسکریپت جداگانه قرار داد " wifi.lua” و با دستور آن را از اسکریپت اصلی اجرا کنید dofile ("wifi.lua").

2. متغیرهایی که فقط در اسکریپت فعلی استفاده می شوند را به عنوان اعلام کنید محلی. در پایان اسکریپت، زمانی که متغیر دیگر مورد نیاز نیست، یک مقدار به آن اختصاص دهید صفرو صریحاً با زباله گرد تماس بگیرید جمع آوری زباله ()

بسیاری از کاربران در حال حاضر توجه خود را به تراشه ESP8266-12 که توسط Espressif منتشر شده است معطوف کرده اند. هزینه آن در مقایسه با برد آداپتور بلوتوث استاندارد به طور قابل توجهی ارزان تر است و با وجود ابعاد کوچکتر، قابلیت های قابل توجهی بیشتری دارد. اکنون همه علاقه مندان به خانه این فرصت را دارند که در یک شبکه Wi-Fi در دو حالت به طور همزمان کار کنند، یعنی رایانه خود را به هر نقطه دسترسی متصل کنند یا آن را به عنوان چنین نقطه ای روشن کنند.

از سوی دیگر، باید به درستی درک کنید که چنین بردهایی فقط سپرهایی نیستند که فقط برای ارتباطات Wi-Fi در نظر گرفته شده اند. ESP8266 خود یک میکروکنترلر است که دارای رابط های UART، GPIO و SPI مخصوص به خود است، یعنی می توان از آن به عنوان تجهیزات کاملاً مستقل استفاده کرد. پس از عرضه این تراشه، بسیاری آن را یک انقلاب واقعی نامیدند و با گذشت زمان، چنین دستگاه هایی حتی در بیشتر موارد ساخته می شوند. انواع سادهتکنولوژی، اما تا کنون دستگاه نسبتا جدید است و وجود ندارد سیستم عامل پایدارنه بر او بسیاری از کارشناسان در سراسر جهان در تلاش برای اختراع هستند سیستم عامل خوداز این گذشته ، ریختن آنها در تخته در واقع دشوار نیست ، اما با وجود مشکلات مختلف ، دستگاه را می توان برای کار کاملاً مناسب نامید.

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

  • استفاده از برد در ترکیب با یک میکروکنترلر اضافی یا رایانه ای که ماژول را از طریق UART کنترل می کند.
  • نوشتن مستقل سیستم عامل برای تراشه، که به شما امکان می دهد بعداً از آن به عنوان یک دستگاه خودکفا استفاده کنید.

کاملا طبیعی است که باید در نظر بگیریم سیستم عامل مستقلدر این مورد ما نمی خواهیم.

با توجه به سهولت استفاده و عملکرد خوب، بسیاری از افراد مدل ESP8266 را در میان بسیاری از میکروکنترلرها ترجیح می دهند. اتصال و به روز رسانی فریمور این دستگاه فوق العاده ساده و مقرون به صرفه است و بر روی همان سخت افزاری که تجهیزات روی آن به کامپیوتر متصل است انجام می شود. یعنی همچنین از طریق یک مبدل USB-TTL یا اگر کسی گزینه های دیگر اتصال را ترجیح می دهد، می تواند از طریق RPi و آردوینو انجام شود.

چگونه بررسی کنیم؟

برای بررسی عملکرد دستگاهی که به تازگی خریداری شده است، باید از یک منبع ولتاژ تثبیت شده ویژه با ولتاژ 3.3 ولت استفاده کنید. شایان ذکر است فوراً محدوده ولتاژ تغذیه واقعی این ماژول از 3 تا 3.6 ولت است و افزایش ولتاژ بلافاصله منجر به این واقعیت می شود که شما به سادگی به ESP8266 خود آسیب می زنید. پس از چنین شرایطی، سیستم عامل و سایر نرم افزارها ممکن است شروع به کار نادرست کنند و شما باید دستگاه را تعمیر کنید یا به نحوی آن را تعمیر کنید.

برای تعیین عملکرد این مدل میکروکنترلر، فقط باید سه پایه را به هم وصل کنید:

  • CH_PD و VCC به منبع تغذیه 3.3 ولت متصل هستند.
  • GND به زمین متصل می شود.

اگر از ESP-01 استفاده نمی کنید، بلکه از ماژول دیگری استفاده می کنید، و در ابتدا دارای خروجی GPIO15 است، در این صورت باید آن را به زمین متصل کنید.

اگر سیستم عامل کارخانه به طور عادی راه اندازی شود، در این صورت می توانید ببینید و سپس نور آبی چند بار چشمک می زند. با این حال، شایان ذکر است که همه دستگاه های سری ESP8266 دارای نشانگر پاور قرمز نیستند. سیستم عامل در برخی از دستگاه ها روشن شدن نشانگر قرمز را در صورت نداشتن ماژول فراهم نمی کند (به ویژه، این در مورد مدل ESP-12 صدق می کند).

پس از اتصال، یک نقطه دسترسی جدید در شبکه بی سیم شما فعال می شود که ESP_XXXX نام دارد و از هر دستگاهی که به Wi-Fi دسترسی داشته باشد قابل شناسایی خواهد بود. در این مورد، نام نقطه دسترسی مستقیماً به سازنده سیستم عاملی که استفاده می کنید بستگی دارد و بنابراین ممکن است چیزی متفاوت باشد.

اگر نقطه ظاهر شد، می توانید به آزمایش ادامه دهید، در غیر این صورت باید منبع تغذیه و همچنین صحت اتصالات GND و CH_PD را دوباره بررسی کنید، و اگر همه چیز به درستی وصل شده باشد، به احتمال زیاد هنوز در تلاش هستید تا از یک ماژول شکسته استفاده کنید یا روی آن به سادگی سیستم عامل با تنظیمات غیر استاندارد نصب شده است.

چگونه سریع آن را وصل کنیم؟

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

  • خود ماژول؛
  • تخته نان بدون لحیم کاری;
  • مجموعه ای کامل از سیم های مادر و پدر طراحی شده برای تخته نانیا یک کابل مخصوص DUPONT M-F؛
  • مبدل USB-TTL بر اساس PL2303، FTDI یا برخی تراشه های مشابه. بهترین گزینه این است که RTS و DTR نیز به آداپتور USB-TTL خروجی داده شوند، زیرا این می تواند به اندازه کافی برسد. بارگذاری سریعسیستم عامل برخی از UDK، Arduino IDE یا Sming، بدون نیاز به تغییر دستی GPIO0 به زمین.

اگر از مبدل 5 ولتی استفاده می کنید، در این صورت باید یک تثبیت کننده برق اضافی بر اساس تراشه 1117 یا مشابه آن، و همچنین یک منبع تغذیه (برای یک 1117 استاندارد، حتی یک 5- معمولی) خریداری کنید. شارژر ولت گوشی هوشمند کاملا مناسب است). توصیه می شود از Arduino IDE یا USB-TTL به عنوان منبع تغذیه برای ESP8266 استفاده نکنید، بلکه از یک منبع تغذیه جداگانه استفاده کنید، زیرا در نهایت می توانید از بسیاری از مشکلات خلاص شوید.

مجموعه گسترده برای اطمینان از راحتی و شغل دائمبا ماژول نیاز به استفاده از مقاومت های اضافی، LED و سوئیچ های DIP دارد. علاوه بر این، می توانید از یک مانیتور USB ارزان قیمت نیز استفاده کنید که به شما امکان می دهد به طور مداوم بر میزان جریان مصرف شده نظارت داشته باشید و همچنین محافظت کمی را ارائه دهید. اتوبوس USBاز وقوع

چی کار باید بکنیم؟

اول از همه، شایان ذکر است که در ESP8266 ممکن است بسته به مدل خاصی که استفاده می کنید، کنترل ها کمی متفاوت باشند. امروزه تعداد زیادی از این ماژول ها در دسترس هستند، و اولین چیزی که نیاز دارید این است که مدلی را که استفاده می کنید شناسایی کنید و در مورد پینوت آن تصمیم بگیرید. در این دستورالعمل در مورد کار با ماژول ESP8266 ESP-01 V090 صحبت خواهیم کرد و اگر از مدل دیگری با پایه GPIO15 (HSPICS, MTDO) استفاده می کنید، باید آن را برای شروع استاندارد به زمین بکشید. ماژول و برای استفاده از حالت سیستم عامل.

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

اگر از مبدل USB-TTL 3.3 ولت استفاده می کنید، ماژول را دقیقاً مانند سمت چپ تصویر زیر وصل کنید. اگر منحصراً از USB-TTL پنج ولتی استفاده می کنید، به سمت راست شکل توجه کنید. شاید برای بسیاری به نظر برسد که مدار مناسب به دلیل استفاده از منبع تغذیه مجزا کارآمدتر است، اما در واقع در مورد استفاده از مبدل 5 ولتی USB-TTL، ساخت یک مدار نیز بسیار مطلوب است. تقسیم کننده مقاومت اضافی برای اطمینان از تطابق سطوح منطقی سه ولت و پنج ولت، یا به سادگی از ماژول تبدیل سطح استفاده کنید.

ویژگی های اتصال

شکل سمت راست اتصال UTXD (TX) و همچنین URXD (RX) این ماژول به منطق پنج ولتی TTL را نشان می دهد و چنین رویه هایی فقط با خطر و خطر شما انجام می شود. برای ESP8266، توضیحات می گوید که ماژول فقط با منطق 3.3 ولت کار می کند. در اکثریت قریب به اتفاق موارد، حتی هنگام کار با منطق پنج ولت، تجهیزات خراب نمی شوند، اما چنین موقعیت هایی گهگاه رخ می دهد، بنابراین چنین اتصالی توصیه نمی شود.

اگر فرصت استفاده از مبدل تخصصی 3.3 ولت USB-TTL را ندارید، می توانید از تقسیم کننده مقاومت استفاده کنید. همچنین شایان ذکر است که در تصویر سمت راست، تثبیت کننده برق 1117 بدون سیم کشی اضافی وصل شده است، و این یک فناوری واقعا کارآمد است، اما همچنان بهتر است از نمودار اتصال 1117 با سیم کشی خازن استفاده کنید - باید آن را با برگه داده ESP8266 برای تثبیت کننده خود یا از یک ماژول کاملاً آماده بر اساس پایه 1117 استفاده کنید.

برای راه اندازی ماژول، باید مدار GPIO0-TND را باز کنید، پس از آن می توانید برق را اعمال کنید. شایان ذکر است که همه چیز باید دقیقاً به این ترتیب انجام شود، یعنی ابتدا مطمئن شوید که GPIO0 "در هوا معلق است" و تنها پس از آن برق را به CH_PD و VCC اعمال کنید.

چگونه به درستی وصل شویم؟

اگر می توانید بیش از یک شب برای اتصال صحیح ماژول ESP8266 وقت بگذارید، می توانید از گزینه پایدارتری استفاده کنید. در نمودار بالا گزینه اتصال با دانلود خودکارسیستم عامل.

شایان ذکر است که تصویر بالا استفاده از GPIO یا ADC رایگان را نشان نمی‌دهد و اتصال آنها مستقیماً به آنچه دقیقاً می‌خواهید پیاده‌سازی کنید بستگی دارد، اما اگر می‌خواهید از ثبات اطمینان حاصل کنید، به یاد داشته باشید که همه GPIO‌ها را به برق و ADC بکشید. به زمین با استفاده از مقاومت های کششی.

در صورت لزوم، مقاومت های 10k را می توان با هر مقاومت دیگری در محدوده 4.7k تا 50k جایگزین کرد، به استثنای GPIO15، زیرا مقدار آن نباید بیشتر از 10k باشد. مقدار خازنی که امواج فرکانس بالا را صاف می کند ممکن است کمی متفاوت باشد.

اتصال RESET و GPIO16 از طریق استفاده از یک مقاومت خواب عمیق 470 اهم ممکن است هنگام استفاده از حالت مربوطه ضروری باشد، زیرا برای خروج از حالت خواب عمیق، ماژول این کار را انجام می دهد. راه اندازی مجدد کامل، در حین خدمت سطح پاییندر GPIO16. با غیبت از این ارتباطحالت خواب عمیق برای ماژول شما برای همیشه دوام خواهد داشت.

در نگاه اول، ممکن است به نظر برسد که GPIO0، GPIO1 (TX)، GPIO2، GPIO3 (RX) و GPIO15 مشغول هستند، بنابراین شما نمی توانید از آنها برای اهداف خود استفاده کنید، اما در واقع این موضوع دور از ذهن است. سطح به اندازه کافی بالا در GPIO0 و GPIO2 و همچنین سطح پایین در GPIO15 ممکن است فقط برای راه اندازی اولیه ماژول مورد نیاز باشد و در آینده می توانید بنا به صلاحدید خود از آنها استفاده کنید. تنها چیزی که شایان ذکر است این است که قبل از انجام بازنشانی کامل تجهیزات خود از سطوح مورد نیاز اطمینان حاصل کنید.

همچنین می توانید از TX، RX به عنوان جایگزینی برای GPIO1 و GPIO3 استفاده کنید، اما فراموش نکنید که پس از شروع ماژول، هر سیستم عامل شروع به کشیدن TX می کند، در حالی که همزمان اطلاعات اشکال زدایی را با سرعت 74480 به UART0 ارسال می کند، اما پس از دانلود موفقیت آمیز خواهد بود، آنها می توانند نه تنها به عنوان UART0 به منظور تبادل داده با دستگاه دیگری، بلکه به عنوان GPIO استاندارد نیز مورد استفاده قرار گیرند.

برای ماژول هایی که ندارند تعداد زیادی ازپین های سیمی (مثلا ESP-01)، نیازی به اتصال پین های بازگردانده نیست، یعنی در ESP-01 فقط GND، CH_PD، VCC، GPIO0، GPIO2 و RESET سیمی هستند و اینها هستند که شما می توانید نیاز به سفت کردن نیازی به لحیم کردن مستقیم به تراشه ESP8266EX و کشیدن پین های خالی نیست مگر اینکه واقعاً به آن نیاز داشته باشید.

چنین نمودارهای سیم کشی پس از تعداد زیادی آزمایش انجام شده توسط متخصصان واجد شرایط و جمع آوری از اطلاعات مختلف بسیار مورد استفاده قرار گرفت. شایان ذکر است که حتی چنین طرح هایی را نمی توان ایده آل در نظر گرفت، زیرا می توان از تعدادی گزینه دیگر، نه کمتر موثر استفاده کرد.

اتصال از طریق آردوینو

اگر به دلایلی مبدل USB-TTL 3.3 ولتی ندارید، ماژول WiFi ESP8266 را می توان از طریق آردوینو با مبدل داخلی متصل کرد. در اینجا ابتدا باید توجه خود را به سه عنصر اصلی معطوف کنید:

  • هنگام استفاده با ESP8266، آردوینو ریست ابتدا به GND متصل می شود تا از راه اندازی میکروکنترلر جلوگیری کند و در این شکل به عنوان یک مبدل USB-TTL شفاف استفاده می شود.
  • RX و TX "در چهارراه" متصل نشدند، بلکه مستقیما - RX-RX (سبز)، TX-TX (زرد).
  • همه چیز دیگر دقیقاً همانطور که در بالا توضیح داده شد متصل است.

چه چیزی را در نظر بگیرید

این مدار همچنین نیاز به تطبیق سطوح TTL 5 ولتی در آردوینو و همچنین 3.3 ولت در ESP8266 دارد، اما در هر صورت می تواند به خوبی کار کند.

هنگامی که به ESP8266 متصل می‌شوید، ممکن است آردوینو به یک تنظیم‌کننده برق مجهز باشد که نتواند جریان مورد نیاز ESP8266 را کنترل کند، بنابراین قبل از فعال‌سازی باید دیتاشیت مورد استفاده خود را بررسی کنید. سعی نکنید اجزای پرمصرف دیگری را با ESP8266 وصل کنید، زیرا ممکن است باعث شود رگولاتور برق تعبیه شده در آردوینو به سادگی از کار بیفتد.

همچنین یک طرح اتصال ESP8266 و Arduino دیگر وجود دارد که از SoftSerial استفاده می کند. از آنجایی که برای کتابخانه SoftSerial سرعت پورت 115200 خیلی زیاد است و نمی تواند تضمین کند کار پایدار، این روش اتصال توصیه نمی شود، اگرچه مواردی وجود دارد که در آن همه چیز کاملاً پایدار کار می کند.

اتصال از طریق RaspberryPi

اگر اصلاً مبدل USB-TTL ندارید، می توانید از RaspberryPi استفاده کنید. در این حالت ، برای ESP8266 ، برنامه نویسی و اتصال تقریباً یکسان انجام می شود ، اما همه چیز در اینجا چندان راحت نیست و علاوه بر این ، باید از تثبیت کننده برق 3.3 ولت نیز استفاده کنید.

برای شروع، ما RX، TX و GND دستگاه خود را به ESP8266 متصل می کنیم و GND و VCC را از دستگاهی که برای 3.3 ولت طراحی شده است، می گیریم. در اینجا باید توجه ویژه ای به این واقعیت داشت که باید تمام دستگاه های GND یعنی تثبیت کننده RaspberryPi و ESP8266 را وصل کنید. اگر تثبیت کننده تعبیه شده در مدل دستگاه شما می تواند تا 300 میلی آمپر بار اضافی را تحمل کند، در این صورت اتصال ESP8266 کاملاً طبیعی است، اما همه این کارها فقط با خطر و خطر شخصی شما انجام می شود.

تنظیم پارامترها

هنگامی که نحوه اتصال ESP8266 را فهمیدید، باید مطمئن شوید که درایورهای دستگاه های شما به درستی نصب شده اند، در نتیجه یک پورت سریال مجازی جدید به سیستم اضافه شده است. در اینجا شما باید از یک برنامه استفاده کنید - ترمینال پورت سریال. در اصل، شما می توانید هر ابزاری را متناسب با سلیقه خود انتخاب کنید، اما باید به درستی درک کنید که هر دستوری که به پورت سریال ارسال می کنید باید دارای کاراکترهای انتهایی CR+LF در انتها باشد.

ابزارهای CoolTerm و ESPlorer کاملاً گسترده هستند و دومی به شما امکان می دهد خودتان ESP8266 را وارد نکنید و در عین حال کار با اسکریپت های lua را در NodeMCU آسان تر می کند ، بنابراین می توان از آن به عنوان یک ترمینال استاندارد استفاده کرد.

برای اتصال به طور معمول، باید کارهای زیادی انجام دهید، زیرا سیستم عامل ESP8266 عمدتاً متنوع است و فعال سازی را می توان با سرعت های مختلف انجام داد. برای تصمیم گیری در مورد بهترین گزینه، باید از سه گزینه اصلی عبور کنید: 9600، 57600 و 115200.

چگونه مرتب کنیم؟

برای شروع، در یک برنامه ترمینال به سریال متصل شوید پورت مجازی، پارامترها را روی 9600 8N1 تنظیم کنید، سپس یک راه اندازی مجدد کامل ماژول را انجام دهید، CH_PD (فعال کردن تراشه) را از منبع تغذیه جدا کنید و سپس دوباره آن را فعال کنید و CH_PD را مخدوش کنید. همچنین می‌توانید برای تنظیم مجدد ماژول و مشاهده داده‌های موجود در ترمینال، یک RESET کوتاه به زمین انجام دهید.

اول از همه، LED های دستگاه باید دقیقاً همانطور که در روش تست نشان داده شده است ظاهر شوند. همچنین باید مجموعه ای از کاراکترهای مختلف را در ترمینال مشاهده کنید که با خط آماده به پایان می رسد و در صورت نبودن آن، اتصال مجدد به ترمینال با سرعت متفاوت انجام می شود و به دنبال آن ماژول راه اندازی مجدد می شود.

وقتی این خط را در یکی از گزینه های سرعت مشاهده کردید، می توانید ماژول را آماده کار در نظر بگیرید.

چگونه فریمور را آپدیت کنیم؟

پس از نصب ESP8266، اتصال دستگاه فقط چند ثانیه طول می کشد و سپس می توانید به روز رسانی سیستم عامل را شروع کنید. برای نصب نرم افزار جدید باید موارد زیر را انجام دهید.

برای شروع، نسخه جدید سیستم عامل را از وب سایت رسمی دانلود کنید و همچنین یک ابزار ویژه برای سیستم عامل دانلود کنید. در اینجا باید به چه چیزی توجه ویژه ای شود سیستم عاملروی دستگاهی که ESP8266 با آن کار می کند نصب شده است. بهتر است دستگاه را به سیستم های قدیمی تر از ویندوز 7 وصل کنید.

برای سیستم عامل های استاندارد ویندوز، استفاده از برنامه ای به نام XTCOM UTIL بهینه خواهد بود، که به خصوص اگر سیستم عامل فقط از یک فایل تشکیل شده باشد، استفاده از آن راحت است. بهترین گزینه چند پلتفرمی، ابزار esptool است که به پایتون و همچنین نیاز به تعیین پارامترها از طریق آن نیاز دارد. خط فرمان. علاوه بر این، در ESP8266، اتصال توابع اساسی به شما اجازه می دهد تا به راحتی برنامه فلشابزار دانلود که دارای تنظیمات نسبتاً زیادی است و همچنین تکنولوژی مناسبنصب سیستم عامل از چندین فایل

در مرحله بعد، برنامه ترمینال خود را از پورت سریال جدا کنید و همچنین CH_PD را به طور کامل از منبع تغذیه جدا کنید، GPIO0 ماژول را به GND وصل کنید و پس از آن CH_PD را می توان برگرداند. در نهایت، فقط برنامه سیستم عامل ماژولار را اجرا کنید و آن را در رله ESP8266 بارگذاری کنید.

در اکثر موارد، سیستم عامل با سرعتی در حدود 115200 در ماژول بارگذاری می شود، اما در همان زمان حالت ویژهتوزیع خودکار سرعت را ارائه می دهد که در نتیجه می توان سیستم عامل را با سرعت بیش از 9600 انجام داد و عملکردهای موجود ESP8266 را به روز می کند. آردوینو برای اتصال یا USB-TTL استفاده شد - در اینجا و اینجا نقش خاصی ندارد حداکثر سرعتدر حال حاضر به طول سیم ها، مبدل مورد استفاده و تعدادی از عوامل دیگر بستگی دارد.

بهترین مقالات در این زمینه